Delphi HotPDF Hello World: Váš prvý PDF program
Každá knižnica PDF obsahuje príklad "hello world" a pri HotPDF sa pri ňom oplatí pristaviť, pretože aj ten najmenší program, ktorý niečo robí, si vyžaduje dve rozhodnutia, ktoré budete opakovať v…
Blog o vývoji softvéru
Prečítajte si technické poznámky o PDF, Delphi a dokumentovom softvéri od losLab v slovenčine
Každá knižnica PDF obsahuje príklad "hello world" a pri HotPDF sa pri ňom oplatí pristaviť, pretože aj ten najmenší program, ktorý niečo robí, si vyžaduje dve rozhodnutia, ktoré budete opakovať v…
Chybová správa zniePlease load the document before using BeginDoca takmer vždy sa zobrazí až na druhýkrát. Prvý dokument sa zapíše bez problémov. Potom je však rovnaká inštanciaTHotPDFpožiadaná o…
Akcia AcroForm je slovník (dictionary) priradený k prvku (widgetu), ktorý prehliadaču hovorí, čo má urobiť, keď s daným prvkom používateľ interaguje. Kliknite na tlačidlo a prehliadač prečíta jeho…
Príznak oprávnenia v PDF nie je zámok. Je to len požiadavka, ktorú súbor kladie na program, ktorý ho otvára, a prehliadač ju môže slobodne ignorovať. Táto jediná skutočnosť určuje, ako by ste mali…
Čiarový kód nie je iba obrázok, ktorým ozdobíte dokument. Predstavuje presné meranie a skener je prístrojom, ktorý ho číta. Tento pohľad rozhoduje takmer o všetkom, čo sa týka jeho vykresľovania do…
Knižnica HotPDF vykresľuje vektorovú grafiku tak, že zostaví cestu (path) na aktuálnej stránke a potom ju požiada o vykreslenie. Medzi týmito krokmi neprebieha žiadna bitmapová konverzia. Čiara,…
Knižnica HotPDF neobsahuje objekt grafu. Nenájdete tu žiadnyTPDFChart,AddBarSeriesani nič, čo by prijalo pole čísel a vrátilo hotový vykreslený graf. Namiesto toho poskytuje plátno stránky s…
Skúste odovzdať arabskú frázuيوضح ملف PDFmetódeTextOuta otvorte výsledný súbor. Písmená smerujú opačne a každé z nich stojí samostatne s viditeľnou medzerou pred ďalším, akoby niekto písal anglický…
Každý viditeľný reťazec v dokumente HotPDF sa vykresľuje prostredníctvom jedného volania:TextOut(X, Y, angle, Text). Príklad Hello World ho používa v najjednoduchšej forme, kde je písmo nastavené iba…
Otvorte japonský román na ľubovoľnej strane a prvá vec, ktorú si všimnete, je, že text beží zhora nadol v stĺpcoch, nie vodorovne v riadkoch, a že stĺpce postupujú od pravého okraja listu smerom k…
Podpis PDF je z veľkej časti o počítaní bajtov a práve v tom nastávajú chyby. Kryptografia beží na kóde, ktorý bol auditovaný dve desaťročia, a táto časť takmer nikdy nezlyhá. To, čo zlyháva v…
Spočítanie stránok v 1,4 GB naskenovanom archíve by malo byť nenáročné. Zavolajte však na tento súbor metóduLoadFromFilea náročnosť prudko stúpne: HotPDF spracuje údaje o krížových odkazoch a vytvorí…
Generujte report, vložte TrueType písmo a výstup sa otvorí správne v každom prehliadači, ktorý vyskúšate. Glyfy sú správne, text sa dá vybrať, súbor je platný. Jediné, čo je nesprávne, je veľkosť.…
Funkcie PDF patria k menej známym častiam špecifikácie. Väčšina vývojárov sa s nimi stretne len raz, ako s prvkom, ktorý axiálne tieňovanie typu 2 (Type 2 axial shading) potrebuje na plynulý prechod…
Otvorte PDF vytvorené v programe Microsoft Word alebo Excel, prechádzajte ním a nič nevyzerá nezvyčajne. Načítajte ho do programu v Delphi, prečítajte počet stránok a číslo je správne. Potom ho znova…
Odkazy v PDF sú anotáciami typu URI: obdĺžnik pokrývajúci určitú plochu stránky, ktorý po kliknutí inštruuje prehliadač, aby otvoril danú adresu URL. Anotácia a text pod ňou sú úplne nezávislé…
Verzia PDF 1.5 priniesla dve úložné štruktúry, ktoré staršie formáty súborov nedokázali vyjadriť: prúd objektov (object stream) a prúd krížových odkazov (cross-reference stream). Prúd objektov je…
Dizajnér vyberie písmo s jednoposchodovýmapre nadpisy, prečiarknutou nulou pre tabuľky alebo sadou ozdobných veľkých písmen (swash capitals) pre obálku. Tieto glyfy už v písme sú. Len nie sú…
PDF/A, PDF/X a PDF/UA sú tri odlišné normy riešiace tri rôzne problémy: dlhodobú archiváciu, tlačovú výmenu a prístupnosť. Nejedná sa o tri zaškrtávacie políčka na jednom formulári o zhode a…
Keď podpisujete PDF, zvyčajne si myslíte, že podpisový kľúč je niečo, čo máte pod kontrolou. Nachádza sa v súbore.pfx, ktorý ste vygenerovali, chránený vami zvoleným heslom. Kód, ktorý číta tento…
Súbor sa na vašom počítači otvorí bez problémov. Acrobat ho zobrazí správne, náhľad tlače vyzerá v poriadku a nechýba žiadna stránka. Potom sa však dostane do tlačiarne alebo archívneho systému,…
Generovanie reportu sa v zásade scvrkáva na umiestnenie troch vecí na stránku a zabezpečenie toho, aby sa zhodovali na svojich pozíciách: text na známych súradniciach, písma (fonty), ktoré sa…
Dataset (dátová sada) pozostáva z riadkov a stĺpcov; stránka PDF je však prázdna súradnicová mriežka, ktorá nemá o riadkoch ani stĺpcoch žiadnu predstavu. Preklenutie tejto medzery je hlavnou úlohou…
Dva formuláre môžu obsahovať rovnaké polia, no ich správanie môže byť úplne odlišné. AcroForm uchováva svoje polia ako bežné PDF objekty umiestnené nad samotným obsahom stránky, takže ich dokáže…
XFA (XML Forms Architecture) je zastaraný formát. ISO 32000-1 ho nesie v §12.7 s poznámkou, že z PDF 2.0 bol odstránený, a moderné prehliadače postupne odstraňujú svoje enginy pre XFA. Nič z toho…
Anotácia nie je obsahom stránky. Keď zavoláteTextOutalebo nakreslíte obdĺžnik, značky sa stanú súčasťou prúdu obsahu (content stream) stránky, zapísané priamo do bajtov, ktoré vykresľuje prehliadač.…
Pošlite arabskú vetuيوضح ملف PDF هذاdo obyčajnéhoTextOuta výsledná stránka bude nesprávna hneď v dvoch smeroch. Slová budú plynúť zľava doprava namiesto sprava doľava a písmená zostanú oddelené vo…
Každý viditeľný znak v PDF nesie odkaz na písmo, ktoré ho vykreslilo, a PDFium Component vám umožňuje tento odkaz sledovať späť k objektu písma a prečítať to, čo o sebe vie. Jednotkou prístupu je znak, nie…
PDF nie je len papier. Je to kontajner, ktorý môže niesť skripty spúšťané pri otvorení súboru, odkazy spúšťajúce externé programy, odkazy kontaktujúce webové servery, súbory vnorené do iných súborov…
Prehliadač PDF v Delphi sa opiera o dva komponenty a ich vzájomné prepojenie.TPdfspravuje samotný dokument: otvára súbor, dešifruje ho a poskytuje informácie o počte strán a metadátach.TPdfViewje…
Tím pre spracovanie pohľadávok mal k dispozícii tridsať rokov papierových spisov, ktoré prechádzali cez prieťahový skener. Skener ukladal jeden obrázok JPEG na stránku do priečinka s názvami…
Prevod stránky PDF na obrázok JPEG predstavuje dve operácie, ktoré vývojári často spájajú dohromady a následne ladia oddelene. Najprv musíte stránku vykresliť (rasterizovať) do bitmapy v pixeloch pri…
PDFium má povesť prehliadacieho jadra, teda vykresľovača, ktorý stojí za záložkou PDF v prehliadači Chrome. Prvou vecou, ktorú je potrebné objasniť, je, že PDFium Component dokáže vytvoriť aj dokument,…
PDF ukladá obrázky ako plnohodnotné objekty vo svojich prúdoch obsahu (content streams). Keď stránka odkazuje na fotografiu, sken alebo diagram, pixelové dáta žijú v slovníku XObject vedľa geometrie…
Extrahia textu z PDF vyzerá jednoducho, kým nenarazíte na dokument, kde textová vrstva úplne chýba, je poškodená alebo rozdelená do desiatok malých úsekov bez akéhokoľvek zmysluplného poradia. PDFium…
Pascal binding nad C knižnicou sa číta ako obyčajný Pascal. Zavoláte metódu, dostanete späť záznam, uvoľníte to, čo ste alokovali. Problém je v tom, že PDFium je knižnica v C a C++ s vlastnou volacou…
PDFium Component sprístupňuje spájanie PDF prostredníctvom jedinej metódy:ImportPages. Postup je vždy rovnaký: vytvoríte prázdny cieľový dokument, otvoríte každý zdrojový súbor, zavoláteImportPagesna…
Zlúčenie (merge) a rozdelenie (split) sú dve operácie so stránkami, po ktorých každý siahne ako po prvých, a pokrývajú veľa scenárov. Nepokrývajú však všetko. Existuje samostatná rodina prác, ktorá…
Nevidiaci používateľ otvorí štvrťročnú správu vo vašom novom prehliadači v Delphi, zapne čítačku NVDA a počuje najprv pätu stránky, potom stĺpec s číslami a nakoniec nadpis, ktorý by každý vidiaci…
Anotácia PDF je slovník pripojený k stránke, nie značka nakreslená na nej. Norma ISO 32000-1 §12.5 definuje približne dva tucty podtypov, pričom každý z nich obsahuje kľúč /Subtype, obdĺžnik v…
Stlačíte kláves Tab vo formulári PDF vytvorenom vaším kódom a kurzor skončí o dve polia ďalej, než by mal, prípadne úplne vynechá druhý stĺpec alebo skočí späť na začiatok po treťom poli namiesto…
Delphi a Lazarus kompilujú rovnaký Object Pascal, no práve táto povrchná podobnosť robí prenos prehliadača medzi nimi zradným. Tieto dva nástroje sa rozchádzajú v troch dôležitých oblastiach pre…
Slabozraký čitateľ nedokáže prečítať čierny text na bielej stránke pri predvolenom kontraste, preto požaduje tmavý režim. Jednoduchou odpoveďou je invertovať každý pixel vykreslenej stránky. Takáto…
Nástroj na kontrolu prijatých PDF (intake review workbench) je malý program s jedinou úlohou: preveriť každý súbor predtým, než ho spracujú nadväzujúce procesy. Na splnenie tejto úlohy musí v jednom…
Nástroj na dávkový preflight je konzolový program bez grafického rozhrania. Ukážete mu priečinok so súbormi PDF, program každý z nich skontroluje voči zadaným štandardom zhody a zanechá po sebe…
Podržte tlačidlo priblíženia v jednoduchom prehliadači PDF a sledujte graf vyťaženia CPU. Jediné stlačenie ovládacieho prvku priblíženia s automatickým opakovaním vyvolá desiatku alebo viac krokov za…
Zobrazenie ukážky nedôveryhodného súboru PDF vo vašej vlastnej aplikácii je rozhodnutím o spustení, pričom dôležitý nie je vzhľad samotného prehliadača, ale to, čo panel odmietne vykonať sám.…
Funkcia hlasitého čítania má okrem samotného hlasu jednu viditeľnú úlohu: pri vyslovení každého slova ho musí na stránke zvýrazniť a udržať ho v zornom poli. Na to potrebujete ohraničujúci rámec…
Súradnice PDF sú v bodoch, súradnice tlačiarne v jednotkách zariadenia a tieto dva systémy nemajú nič spoločného, pokiaľ ich zámerne neprepočítate. Tento nesúlad je príčinou väčšiny nekvalitných…
Opečiatkovanie každej stránky dokumentu vodotlačou alebo logom vyzerá ako päťminútová práca, kým neotvoríte výsledok inšpektora veľkosti súborov. Zrejmým prístupom je prejsť stránky a na každej z…
PDFium Component poskytuje jednu metódu na rozdelenie PDF:ImportPages. Všetko ostatné, či už izolujete jednu stránku, rozdeľujete na ľubovoľných hraniciach alebo nasledujete vlastnú štruktúru záložiek…
Naskenovaný archív môže mať v jedinom PDF veľkosť niekoľkých gigabajtov. Prehliadač, ktorý takýto súbor otvorí, zvyčajne chce zobraziť jednu stránku, možno obsah, možno stránku, na ktorú používateľ…
Dva dokumenty otvorené súčasne, rovnaké číslo stránky, každý vo vlastnom rolovateľnom paneli: to je základ porovnávacieho prehliadača. PDFium Component to poskytuje prostredníctvom priameho objektového…
Napíšete malý validátor. Otvorí PDF, presunie sa na koniec, nájdestartxref, prečíta posun a očakáva, že pristane na kľúčovom slovexrefs tabuľkou krížových odkazov s pevnou šírkou pod ním. Z tejto…
Súborové prílohy PDF sú uložené v strome vložených súborov dokumentu, čo je štruktúra, ktorú väčšina prehliadačov zobrazuje ako panel so sponkou alebo bočný panel príloh. V kóde Delphi sprístupňuje…
Čiarový kód na prepravnom štítku alebo faktúre má jedinú úlohu – byť prečítaný skenerom na prvý pokus. O tom, či prežije tento pokus, sa rozhoduje dlho predtým, ako balík dorazí do prístavu.…
Pracovné prostredie, ktoré spája overovanie zhody s digitálnym podpisovaním, musí koordinovať štyri kroky v presnom poradí a udržiavať ich prepojené s jedinou sadou bajtov po celú dobu. Vykoná…
Tu je problém, ktorý sa objaví v momente, keď knižnica PDF opustí svoj domovský programovací jazyk. Máte prepojenie, ktoré funguje dokonale z C# v systéme Windows. Potrebujete rovnaké volania z…
Príznak oprávnenia nie je bezpečnostný mechanizmus. Bit, ktorý hovorí „nekopírovať“, sa nachádza v tom istom slovníku /Encrypt ako samotné šifrovanie, čo mu dodáva zdanie vynútiteľnosti, ktoré v…
Väčšina vývojárov si pod PDF stránkou predstaví list papiera s textom a obrázkami. Georeferencované PDF je však viac než to. Nesie dostatok informácií na to, aby zobralo bod na stránke, nameraný v…
Samotné pole PDF formulára je len políčko, ktoré obsahuje hodnotu. To, čo robí formulár podobným malej aplikácii, je k nemu pripojená akcia: kliknutie, ktoré skryje sekciu, načíta uložené hodnoty zo…
Spájanie alebo rozdeľovanie dvojgigabajtového PDF bežným spôsobom vás stojí dve veci naraz: čas a adresný priestor. Bežným spôsobom je načítať každý vstup, vykonať prácu a zapísať výstup. Problém…
Tri rastrovacie moduly môžu načítať rovnaký súbor PDF a nezhodnúť sa na jeho zobrazení. Integrovaný modul v PDFlibPas je ten, ktorý sa dodáva bez akýchkoľvek dodatočných súborov a vykresľuje všetko…
Geodet otvorí plán staveniska a chce, aby boli vrstevnice skryté, zatiaľ čo inžinierske siete zostanú zobrazené. Recenzent chce, aby boli červené poznámky viditeľné na obrazovke a zmizli z výtlačku.…
Validácia jedného podpisu PAdES znamená kontrolu troch nezávislých vecí a zelené zaškrtnutie v prehliadači hovorí iba o tej tretej. Po prvé, pole/ByteRangemusí pokrývať správne bajty: ním definované…
PDF/A a PDF/UA odpovedajú na dve otázky, ktoré spolu vôbec nesúvisia. Ak ich však vnímate ako jediné zaškrtávacie políčko pre prístupnosť a archiváciu, do archívu sa ľahko dostanú poškodené súbory s…
Vykreslenie PDF stránky do Windows kontextu zariadenia (device context) pre náhľad tlače spája tri súradnicové systémy v rovnakom riadku kódu, ktoré sa však málokedy zhodujú. PDF stránka sa meria v…
Prístupné PDF sa opiera o jednu štruktúru, ktorú viditeľná stránka nikdy nezobrazuje: štruktúrny strom definovaný v ISO 32000-1 §14.7. Ide o logickú hierarchiu nadpisov, odsekov, tabuliek a obrázkov,…
Získavanie textu, obrázkov a písiem z existujúceho PDF súboru znie ako vyriešený problém, kým cez neho nenecháte prejsť reálnu sadu dokumentov. Nasměrujte vyhľadávací indexer na štyridsaťtisíc…
PDF nie je len dokument, ktorý otvoríte. Je to malý program, ktorý spúšťate. Každé vložené písmo je zásobníkový interpret čakajúci na charstrings, každý obrázok je dekodér napájaný poliami šírky,…
Väčšina kódu v Delphi, ktorý pracuje s PDF, zaobchádza s týmto formátom ako s kontajnerom pre dve veci: bloky textu a niekoľko umiestnených bitmáp. Tento pohľad je síce správny, ale najschopnejšiu…
Takmer každá časť staršieho binárneho formátu Excelu je samostatný záznam s čistým dvojbajtovým typom a dvojbajtovou dĺžkou. Bunka jeLABELSSTaleboNUMBER. Zlúčená oblasť jeMERGEDCELLS. Väčšinu…
Čokoľvek, čo sa vznáša nad mriežkou pracovného hárka (graf, logo, pečiatka, textová bublina), je kreslený objekt. Kreslený objekt je definovaný dvoma vecami: tým, čím je, a tým, kde je ukotvený.…
Premenujte hárok zo „Summary“ na „Overview“ v generovanom zošite a každý interný hyperodkaz smerujúci naSummary!A1prestane fungovať. Žiadna výnimka pri ukladaní, žiadna pri otváraní. Odkaz sa stále…
Pravidlo podmieneného formátovania v OOXML pozostáva z dvoch samostatných vecí spojených pod jedným názvom. Podmienka (porovnanie, vzorec, zhoda textu) určuje, ktoré bunky spĺňajú kritériá. Vzhľad…
Predstavte si nočnú dávkovú úlohu, ktorá v kóde vygeneruje zošit s faktúrami a zapíše ho ako CSV pre nadväzujúci systém. Čísla vyzerajú v Exceli správne. CSV sa v textovom editore otvorí bez…
Tri funkcie v HotXLS zdieľajú rovnaký hárok, ale pracujú s úplne odlišnými objektmi, a problémy začínajú vtedy, keď predpokladáte, že robia podobné veci. Overovanie dát pripája k rozsahu pravidlo,…
Premena výsledku dopytu na Excel report predstavuje tri problémy v jednom. Každý typ poľa Delphi musí byť zapísaný do bunky ako správny excelovský typ, riadok hlavičky musí pôsobiť ako report a nie…
Otvorte tabuľkový procesor, kliknite na bunku, ktorá zobrazuje2026-06-19, a riadok vzorcov stále ukazuje dátum. Prečítajte rovnakú bunku z Delphi a dostanete číslo46192. Oba pohľady sú správne,…
Definovaný názov je menovka, ktorá nahrádza konštantu, rozsah buniek alebo výraz vzorca, pričom je v zošite uložená iba raz a referencuje sa symbolicky všade tam, kde je potrebná. NapíšteTaxRatedo…
Rodina technických (engineering) funkcií v Exceli vyzerá ako tá najjednoduchšia časť prehľadu funkcií.DEC2BINprevádza číslo na binárny reťazec.HEX2DECho prevádza späť.IMSUMsčítava dve komplexné…
Knižnica pre prácu s tabuľkami, ktorá ukladá iba reťazce vzorcov, a knižnica s funkčným výpočtovým enginom sú dva odlišné produkty, ktoré vyzerajú identicky až do momentu, kým od jedného z nich…
Keď export s 300 000 riadkami prekročí pamäťový limit, zvyčajne sa obviňuje počet riadkov. Ten je však väčšinou nevinný. Skutočne náročnými časťami veľkého zošita sú tie, ktoré vznikajú ako vedľajší…
Prechádzanie buniek čerstvo otvorenej šablóny reportu so zlúčeným nadpisom sa môže zdať ako hľadanie chýb. Prečítate bunkuA1a získate hodnotu „Quarterly Statement“; prečítate bunkyB1ažF1, ktoré…
Reportovací backend v Delphi, ktorý roky generoval súbory .xlsx, získava novú požiadavku: pravidlá verejného obstarávania u zákazníka z verejného sektora vyžadujú výstup vo formáte OpenDocument…
Napíšete zošit, zašifrujete ho heslom, odovzdáte súbor kolegovi a kolega ho otvorí v Exceli. Excel si vypýta heslo. Kolega ho zadá a Excel ho prijme. Zatiaľ šifrovanie vyzerá správne. Potom však…
Ak je jedinou úlohou servera generovať súbory Excel, nemá dôvod spúšťať samotný program Excel. Inštalácia balíka Office na zostavovací server alebo reportovaciu službu s cieľom riadiť ho…
Tri skupiny nastavení pracovného hárka nemajú nič spoločné s hodnotami buniek, no ovplyvňujú všetko ohľadom správania súboru po opustení vášho kódu. Ochrana hárka určuje, ktoré bunky môže používateľ…
Niekedy je jedinou otázkou, ktorú potrebuje vstupný proces zodpovedať, otázka štrukturálna: či má tento zošit hárok s názvom „Mapping“, prípadne koľko záložiek obsahuje. Odpovedať na to zavolaním…
Zapíšte=NORM.DIST(115,100,15,TRUE)do bunky a Excel bez rečí vráti 0.8413447. Volanie vyzerá ako jednoduché vyhľadanie. Nie je to tak. Za týmto jediným číslom je kumulatívne normálne rozdelenie,…
Predstavte si, že nočná služba v Delphi generuje jeden súbor XLSX pre každého zákazníka. Ide o niekoľko stoviek súborov, pričom niektoré z nich majú až 400 000 riadkov. Spustite analýzu výkonu a…
Spoľahlivým spôsobom, ako vygenerovať naštýlovaný report v Exceli z Delphi, je začať so zošitom, ktorý už vytvoril dizajnér. Niekto z finančného oddelenia navrhne faktúru v Exceli: logo, hlavičky…
Tabuľka obsahuje stĺpec mien zákazníkov. Niektoré sú v čínštine, niektoré v azbuke, niekoľko ich obsahuje nemecké prehlásky alebo francúzsky dĺžeň. Exportujete ju do CSV, otvoríte výsledok a každý…
Predstavte si úlohu, ktorá nerobí takmer nič: otvorí mesačný zošit, zapíše dnešný dátum do jednej bunky a zošit uloží. Spustite ju cez službu dostatočne často a skôr či neskôr príde sťažnosť. Makrá…
Hromadná normalizácia tabuliek predstavuje tri problémy spojené do jedného. Máte archív rôznych formátov: staršie.xlsz éry BIFF, moderné.xlsx, niekoľko súborov.odsz nejakého experimentu s LibreOffice…
Zošit Excelu nenesie iba bunky. Vedľa mriežky sa prenáša druhá identita dokumentu: názov, autor, firma, kľúčové slová, dátumy a poznámky. Tieto údaje nevidno v hárku, ale indexujú ich Windows Search,…
Excel ponúka dve veci, ktoré sa zhodne nazývajú „heslo“, no iba jedna z nich predstavuje skutočné šifrovanie. Heslo na otvorenie riadi skutočnú šifru: bez neho nie je možné súbor vôbec prečítať.…
PDF je vo svojej podstate kontajner s otvoreným textom. Otvorte väčšinu súborov v hexadecimálnom editore a začiatok bude čitateľný: komentár s verziou, za ním séria očíslovaných objektov, potom malý…
Symptóm sa prejavil v utilite na kopírovanie stránok postavenej na komponentuHotPDF Component: požiadavka na stranu 1 z trojstranového dokumentu konzistentne vracala stranu 2. Kontrola indexovacej…
Slovník PDF Catalog (katalóg) obsahuje presne jeden povinný navigačný kľúč:/Pages. Tento kľúč musí odkazovať na nepriamy objekt typu/Pages, ktorý zasa obsahuje pole/Kidsa celkový počet strán/Count.…
Súbor PDF je vo svojej podstate kolekcia objektov, ktoré na seba vzájomne odkazujú. Ak odhliadneme od kompresie, tabuliek krížových odkazov a bajtových posunov, zostane nám graf: malá množina…
Ak odstránime popisy stránok, zostane nám tenká vrstva štruktúry, ktorú síce nikto netlačí, no závisí od nej každá čítačka, indexátor aj archivačný systém. Samotný objekt stránky nevie nič o…
Dajte 80 MB naskenovaný report za odkaz, otvorte ho v prehliadači a sledujte, čo sa stane: prehliadač zobrazuje prázdne okno, kým nedorazí veľká časť týchto bajtov, a potom naraz vykreslí prvú…
Stránka PDF neukladá pixely a neukladá ani strom tvarových objektov ako formát SVG. Ukladá program. Každá čiara, krivka, výplň a umiestnený obrázok na stránke sú výsledkom vykonania sekvencie…
PDF súbor, ktorý na vašom počítači vyzerá perfektne, no na inom stroji sa zobrazí ako rad prázdnych štvorčekov, je najčastejšou chybou písiem v softvéri na prácu s dokumentmi. Takmer nikdy to však…
Prehliadač PDF nezačína čítať súbor od začiatku. Začína od konca. Posledných niekoľko bajtov obsahuje adresu všetkého ostatného a parser, ktorý tomuto poradiu nerozumie, nesprávne interpretuje formát…
Objekt číslo 1 nie je stránka 1. Tento jediný fakt spôsobuje chyby v kóde na spracovanie PDF častejšie než akýkoľvek iný aspekt tohto formátu. Pochopenie dôvodu vyžaduje pozrieť sa za to, čo…
Stránka 1 v PDF nie je objekt 1. Tento rozdiel je najčastejším zdrojom chýb typu „extrahovaná nesprávna stránka“ v parseroch PDF a náprava spočíva v čítaní špecifikácie, nie bajtov súboru
PDF nie je formát dokumentu v rovnakom zmysle ako Word alebo RTF. Tieto formáty ukladajú sekvenciu obsahu, ktorú vykresľovač interpretuje v okamihu zobrazenia, takže výstup závisí od písiem a…
Alcinoe je open-source knižnica komponentov pre Delphi a C++Builder, ktorú na GitHub-e udržiava Zeus64. Pokrýva oblasti, ktoré VCL a FireMonkey RTL nechávajú na tretie strany: GPU-akcelerovaný video…
Pri údržbe komponentu VCL napísaného v Delphi, ktorý ale používajú používatelia Delphi aj C++Builder, rýchlo zistíte, že tieto dva systémy spracúvajú závislosti veľmi odlišne. Jednotka, ktorá sa…
Chyby kontroly rozsahu (range check errors) v PDF knižniciach pre Delphi majú povesť ťažko vystopovateľných problémov, pretože nesledujú konzistentný vzor vstupu. Ten istý dokument ich môže spôsobiť…
TDateTimePickerzískal vlastnosťFormatniekde medzi Delphi 5 a Delphi 6. Presná hranica verzie je málokedy zdokumentovaná dôveryhodným spôsobom, a keď na ňu narazíte, kompilátor vám jednoducho oznámi,…
ŠtruktúraLOGBRUSHmá vo Windows API dva odlišné životy. Jedným je živý deskriptor GDI objektu, ktorý prijíma funkciaCreateBrushIndirect. Druhým je jej serializovaný náprotivok v zázname Enhanced…
Umiestnenie komponentuTHotPDFna formulár v čase návrhu (design-time) je v poriadku pre rýchly prototyp, ale spája životnosť komponentu so životnosťou formulára, čo je v produkčnom kóde málokedy…
Pri budovaní systémov na správu dokumentov alebo vyhľadávacích indexátorov je rýchle získanie metadát zo súborov nevyhnutné. Pre súbory balíka Microsoft Excel to znamená prístup k štandardným…
Pôvodný idiom_ftolv 32-bitovom Delphi vyzerá ako šikovná jednovrstevnica: pascalský wrapper funkcie, ktorý sa prepadá do inline assembly, aby manipuloval riadiace slovo x87 FPU, orezal hodnotu na…
Online služby na podpisovanie riešia konkrétny logistický problém: získaním podpisu na dokument, keď podpisovateľ nemá softuér PDF, čas na tlač a ani fax. DigiSigner patrí do tejto kategórie.…
V podnikových systémoch na správu dokumentov (DMS) môže povolenie prichádzajúcim súborom PDF pochádzajúcim od tretích strán, aby sa priamo dostali do vašich archívov na ukladanie, predstavovať značné…
Pri vývoji podnikového softvéru na správu dokumentov už prístupnosť nie je len voliteľnou funkciou, v mnohých jurisdikciách, najmä pre vládne a vzdelávacie aplikácie, je to zákonná požiadavka.…
Jedna stránka A4 vykreslená pri pohodlnom čítacom priblížení má niekoľko megabajtov 32-bitovej bitmapy. Vynásobte to 400-stránkovou zmluvou a aritmetika prestane byť abstraktná: vykresliť všetky…
Pri vývoji podnikových riešení pre dokumenty nevyhnutne narazíte na PDF súbory vygenerované obrovským množstvom nástrojov, od špičkového softvéru Adobe po chybné open-source knižnice alebo ovládače…
Ochrana citlivých údajov vo vnútri dokumentov PDF je primárnou požiadavkou pre systémy správy zdravotníckych (HIPAA) a právnych dokumentov. Moderná špecifikácia PDF podporuje 256-bitové šifrovanie…
Tri knižnice. Tri odlišné úlohy. Voľba nesprávnej vás stojí týždne obíśania, a voľba všetkých troch, keď potrebujete len jednu, vás stojí prevádzkovú réžiu, ktorú ste neplánovali. Tu je priamy…
Dokumenty PDF sú neuveriteľne mocné, no táto moc so sebou prináša neodmysliteľné bezpečnostné riziká. Pretože formát PDF podporuje vložené súbory, interaktívny JavaScript a komplexné binárne toky…
Prechod zo spracovania štandardných faktúr (100 KB) na archívne PDF gigabajtových rozmerov si vyžaduje zásadnú zmenu v architektúre aplikácie. Spoliehanie sa na štandardné operácie vstupu a výstupu…
Dve minúty na skopírovanie troch stránok z 40-stránkového PDF nie je problém ladenia výkonu. Je to signál, že sa používa nesprávna cesta API. Keď som toto meranie prvykrát videl na ukrážke…
Rozmery stránok PDF sú fixné v čase vytvorenia stránky, takže nemôžete jednoducho zmeniť mierku obsahu na mieste tak, ako by ste zmenili veľkosť obrázka. Model knižnice, ktorý robí zmenšovanie…
RTF existuje dostatočne dlho, aby sa objavil na miestach, ktoré nikto neplánoval: staré generátory zostáv, kanály hromadného odosielania, archívy právnych dokumentov, ktoré predchádzajú moderným…