Backend JPEG 2000

Od verzie 3.9.0 používa podpora JPEG 2000 OpenJPEG 2.5.4. Verejné API TJpeg2000Bitmap je nezmenené, ale načítanie a ukladanie teraz používajú životný cyklus kodeku OpenJPEG 2.x a streamové API založené na spätnom volaní

Win32 aj Win64 zostavy prepájajú pribalené súbory objektov OpenJPEG staticky. Skripty Lib\thirdparty\build-openjpeg-bcc32.bat a Lib\thirdparty\build-openjpeg-bcc64x.bat znovu zostavujú skontrolované objekty priamo do Lib\thirdparty\Win32 a Lib\thirdparty\Win64. Cesta Win64 používa bcc64x so zakázanými skokovými tabuľkami, aby dcc64 mohol spracovať statické COFF64 objekty bez runtime DLL OpenJPEG

Backend podporuje detekciu JP2 a surových J2K codestreamov cez existujúci stream loader. Smerovanie farebných zložiek sa odvodzuje z farebného priestoru OpenJPEG 2.5, počtu komponentov a alfa metadát, pretože pôvodné rozšírenie comp_type už v upstream PDFlibPas nie je prítomné

Spoľahlivosť výstupu JPEG v 3.9.1

Verzia 3.9.1 opravuje väzby libjpeg-turbo používané v TPDFJPEGImage a pri vykresľovaní stránok PDF. Export JPEG teraz používa ABI zladené booleovské polia, deklarácie callbackov, zarovnanie štruktúr a výstupné buffery v pamäti na Win32 aj Win64

Rovnaké vydanie opravuje aj dekompresiu FlateDecode vo Win32 pomocou pribaleného backendu zlib, takže xref streamy v linearizovaných súboroch sa načítajú správne ešte pred začiatkom vykresľovania stránok

Aplikácie, ktoré volajú TPDFJPEGImage.SaveToStream, LoadFromFile alebo vykresľujú PDF stránky do súborov JPG, nepotrebujú zmeny zdrojového kódu. Prekompilujte výstupy knižnice pre Win32 a Win64, aby existujúce projekty prevzali opravené backendy obrázkov a FlateDecode

Backend AES vo verzii 3.9.3

Verzia 3.9.3 obnovuje pribalenú implementáciu AES podľa zdrojov Briana Gladmana z roku 2018 na Win32 aj Win64. Verejné šifrovacie API PDFlibPas zostáva nezmenené, ale objektové súbory AES sa dajú znovu zostaviť z Lib\thirdparty\AES pomocou príslušných build skriptov

Lib\thirdparty\build-aes-bcc32.bat vytvára Win32 OMF objekty a Lib\thirdparty\build-aes-bcc64x.bat vytvára Win64 COFF64 objekty. PDFlibAES.pas deklaruje vstupné body AES s volacou konvenciou C, takže šifrovanie a dešifrovanie AES-CBC zodpovedá skompilovanému C ABI na oboch platformách

Spracovanie DEVMODE pri tlači v 3.9.4

Verzia 3.9.4 mení nastavenie PDF tlače tak, aby sa vlastnosti ako vlastný zásobník papiera, typ média, duplex, kvalita, počet kópií, farba a orientácia nastavovali cez handle DEVMODE vrátený TPrinter.GetPrinter. Kód už nepovažuje TPrinter.Handle za globálny handle pamäte, pretože táto vlastnosť je HDC tlačiarne, nie blok DEVMODE

To zlepšuje tlač cez zdieľané serverové a sieťové tlačiarne vrátane scenárov, v ktorých aplikácie tlačia cez IP adresu servera alebo pred tlačou vyberú iný než predvolený zásobník papiera. Existujúce volania API ako SetPrinterDevModeFromString a možnosti nastavenia tlače si zachovávajú rovnaké verejné správanie