slovensko-digital / autogram

Nový, krajší a lepší nástroj na podpisovanie.
European Union Public License 1.2
104 stars 19 forks source link

Try pdf box to render pdf as images #452

Closed celuchmarek closed 2 weeks ago

celuchmarek commented 3 weeks ago

Je to pri dlhých dokumentoch trochu pomalšie na vyrenderovanie, ale tak väčšina podpisovaných dokumentov nie je dlhá.

Skúšal som 102 stranové PDF. Latest verzia 5,5 sekundy, túto verzia 9,5 sekundy.

celuchmarek commented 3 weeks ago
Snímka obrazovky 2024-06-03 o 14 33 51
slavino commented 3 weeks ago

mozno off-topic kedze som s PDFBox od Apache este nerobil - ale preco je pouzita ver. 2.0.x ked uz releasli aj 3.0.2 (a pripravuje sa 4.x)? V sekcii https://pdfbox.apache.org/3.0/migration.html popisuju vylepsenia, tak mozno to okrem vplyvu na RAM bude mat vplyv i na celkovu rychlost.

celuchmarek commented 3 weeks ago

@slavino Pôvodne som tam tiež dával 3.0.2, ale zistil som, že DSS knižnica má dependency na PDFBox 2.0.x a teda neviem tam dať inú.

V DSS Jire už existuje priradená issue pre upgrade na 3.x, čiže niekedy to hádam spravia. Ale zatiaľ to má nízku prioritu, takže si na to určite počkáme ešte niekoľko mesiacov.

slavino commented 3 weeks ago

I've added a comment to JIRA of DSS - let's see if @bsanchezb will find some time any soon :)

celuchmarek commented 2 weeks ago

Upravil som to zobrazovanie do JavaFX Image v ScrollPane namiesto webview. Je to pocitovo rýchlejšie a najmä sa to o dosť lepšie scrolluje než kedysi PDF (aspoň u mňa). Pridal som DPI setting pre usera, aby si ho vedel znížiť, ak mu to pôjde príliš pomaly pri väčších dokumentoch.

Snímka obrazovky 2024-06-12 o 20 11 36 Snímka obrazovky 2024-06-12 o 20 05 56 Snímka obrazovky 2024-06-12 o 20 07 50
celuchmarek commented 2 weeks ago

Skúšal som 110 stranové pdf 40MB. Pri 100 dpi to na mojom m2 air trvalo 6 sekúnd od výberu súboru po zobrazenie. To dpi robí veľký časový rozdiel pri generovaní obrázkov.

Ale pri 150 dpi to nielen dlhšie generovalo, ale potom aj veľmi sekalo pri scrollovaní. To scrollovanie ale ovplyvňuje iba počet strán, nie samotná veľkosť súboru. Veľkosť súboru hrá rolu pri rýchlosti generovania.

jsuchal commented 2 weeks ago

Skúšal som 110 stranové pdf 40MB. Pri 100 dpi to na mojom m2 air trvalo 6 sekúnd od výberu súboru po zobrazenie. To dpi robí veľký časový rozdiel pri generovaní obrázkov.

Ale pri 150 dpi to nielen dlhšie generovalo, ale potom aj veľmi sekalo pri scrollovaní. To scrollovanie ale ovplyvňuje iba počet strán, nie samotná veľkosť súboru. Veľkosť súboru hrá rolu pri rýchlosti generovania.

IMHO je to preto lebo tie canvasy co to generuje su bitmapy, ak tam das len nejaky rectangle prazdny, tak to nemusi kazdy pixel generovat (tak to fungovalo v tom pdf.js - ja som tam dal len prazdny div, nie canvas)

celuchmarek commented 2 weeks ago

@jsuchal ja som tam zámerne dal aj border okolo celého scrollpane a nielen na page, pretože takto, ako si to upravil, nevidno, kde končí náhľad PDF - chýba mi tam tá spodná čiara.

Naozaj sa ti toto pozdáva viac? Ak je to kvôli tomu scrollbaru, vieme dať vpravo nejaký ten inset 30px, aby bol border vľavo od scrollbaru.

Snímka obrazovky 2024-06-13 o 7 37 41