Skip to content

Commit e253e4e

Browse files
authored
Updated readme
1 parent 7b12013 commit e253e4e

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

README.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,42 @@ Therefore, I developed through the powerful go programming language a new tool c
1313

1414
## How it works
1515

16-
From a technical point of view, the tool is very simple and trivial. Pdf-diff uses pdftoppm to generate a series of images from the pdfs to be compared (one for each page). It then uses a very trivial pixel comparison algorithm to draw some red rectangles that display the differences between one pdf and another. The go script also uses golang's very powerful native encoding/decoding engine (which I personally was not familiar with!). I was very impressed with what is possible to do co Go in just a few lines of code.
16+
From a technical point of view, the tool is very simple and trivial. Pdf-diff uses pdftoppm to generate a series of images from the pdfs to be compared (one for each page). It then uses a very trivial pixel comparison algorithm to draw some red rectangles that display the differences between one pdf and another. The difference is based on RGB values of the pixel, so it can basically compare whatever you want. The go script also uses golang's very powerful native encoding/decoding image engine (which I personally was not familiar with!). I was very impressed with what is possible to do with Go in just a few lines of code.
17+
18+
The images generated by pdf are inserted into a folder named as the hash of the content of the pdf file. E.g. the file has the hash `fc324..`, the images are in the `fc324` folder. If a folder with that name already exists, pdf-diff will not create any images since it consider that images were already generated.
1719

1820
The code is not very clean and certainly can be optimized. I am asking some person much more knowledgeable than me in graphics if it is possible to create a simple algorithm that can apply a background color only locally, and not on the whole row where the pixel is changed.
1921

2022
## How to use
2123

22-
work in progress
24+
The only requirement asked for running this tool is the `pdftoppm` program. Based on your operating system or distro, you might want to check `poppler-utils` package. A command for installing that tool in Ubuntu/Debian distro might be:
25+
26+
```
27+
apt install poppler-utils
28+
```
29+
30+
To run the script, you can simply open a new shell and type:
31+
32+
```
33+
go run main.go ./pdf-1.pdf ./pdf-2.pdf
34+
```
35+
36+
or:
37+
38+
```
39+
go build
40+
./main pdf-1.pdf pdf-2.pdf
41+
```
42+
43+
Once ran, the images are created in the folder `generated`.
2344

2445
### Contact
2546

26-
If you wish to use this for your project, go ahead. If you have any issues or improvements, feel free to open a new [ISSUE]. Lastly, if you have a good algorithm to implement or just to discuss about any other tools for editor, you can [email me](hi@serhack.me)
47+
If you wish to use this for your project, go ahead. If you have any issues or improvements, feel free to open a new [ISSUE]. Lastly, if you have a good algorithm to implement or just to discuss about any other tools for editor, you can [email me](hi@serhack.me).
2748

2849
#### Donation
2950

51+
If you think my work contributed a little bit to your projects, goals or company, please let me know.
52+
3053
Monero: `47VFueCo1yvc6nq688QsBt9UZSrg5z2JLFUwWFs4WtHBSwDsybDbnmLiydo46ybPeqSMxypnjmz5pdz87t4VjngfQfmMd4S`
3154
Bitcoin: `1Pt3YwkFoexAA3s9pV3saoJ2EAXzpqBmrp`

0 commit comments

Comments
 (0)