Blog o razvoju programske opreme

Slovenski članki

Preberite inženirske zapise losLab o PDF, Delphi in dokumentni programski opremi v slovenščini

Software Development Blog

Delphi HotPDF Hello World: Vaš prvi program PDF

Vsaka knjižnica PDF vsebuje primer »hello world« in HotPDF-jev je vreden podrobnejše obravnave. Že najmanjši program, ki naredi karkoli, vas namreč prisili v dve odločitvi, ki ju boste ponovili v…

Software Development Blog

Ponovna uporaba instance THotPDF med dokumenti v Delphi

Napaka se glasiPlease load the document before using BeginDocin se skoraj vedno pojavi drugič. Prvi dokument se zapiše brez težav. Nato pa ista instancaTHotPDFprejme zahtevo za zagon drugega…

Software Development Blog

Gradnja polj in dejanj AcroForm s HotPDF v Delphi

Dejanje AcroForm je slovar, priložen gradniku, ki pregledovalniku sporoči, kaj mora storiti, ko se s tem gradnikom nekaj zgodi. Kliknite gumb in pregledovalnik prebere njegov slovar dejanj: dejanje…

Software Development Blog

Risanje grafikonov v PDF s pomočjo HotPDF gradnikov

HotPDF nima objekta grafikona. Ni razredaTPDFChart, ni metodeAddBarSeries, skratka ničesar, kar bi sprejelo polje številk in vrnilo izrisan grafikon. Namesto tega vam ponuja platno strani z istim…

Software Development Blog

Vertikalno CJK besedilo v PDF z Delphi in HotPDF

Če na stran postavite japonski roman, boste najprej opazili, da besedilo poteka navzdol po stolpcu in ne vodoravno čez vrstico ter da stolpci napredujejo od desnega roba lista proti levemu. Bralcu,…

Software Development Blog

Digitalni podpisi PDF in PAdES v Delphi s HotPDF

Podpis PDF je večinoma računanje bajtov in ravno pri računanju bajtov gre pogosto kaj narobe. Kriptografija teče na kodi, ki je bila revidirana dve desetletji, in ta del skoraj nikoli ne odpove.…

Software Development Blog

Hrošč v EndDoc, ki je tiho onemogočil podnabor pisav

Ustvarite poročilo, vgradite pisavo TrueType in izhod se pravilno odpre v vsakem pregledovalniku, ki ga poskusite. Glifi so pravilni, besedilo je mogoče izbrati, datoteka je veljavna. Edina težava je…

Software Development Blog

3D barvni LUT v PDF z vzorčenimi funkcijami vrste 0

Funkcije PDF so eden bolj tihih kotov specifikacije. Večina razvijalcev se z njimi sreča le enkrat, kot s stvarjo, ki jo aksialno senčenje vrste 2 (Type 2 axial shading) potrebuje za prelivanje med…

Software Development Blog

Stilistične alternative OpenType GSUB v čistem Delphi

Oblikovalec izbere pisavo z enonivojsko črkoaza naslove, ali prečrtano ničlo za tabele, ali nabor okrašenih velikih začetnic (swash capitals) za naslovnico. Ti glifi so že v pisavi. Preprosto niso…

Software Development Blog

Avtomatizacija preverjanja PDF Preflight v Delphi s HotPDF

Datoteka se na vašem računalniku odpre brez težav. Acrobat jo prikaže, predogled tiskanja je pravilen, vsaka stran je na svojem mestu. Nato pa jo pošljete v tiskarno ali v arhivski sistem, ki sprejme…

Software Development Blog

Delphi poročila v PDF s HotPDF: TextOut, pisave, slike

Ustvarjanje poročila se zvede na postavitev treh elementov na stran in njihovo medsebojno uskladitev: besedila na določenih koordinatah, pisav, ki se na strežniku izrišejo enako kot na vašem namizju,…

Software Development Blog

Izris podatkovne tabele v PDF v Delphi s HotPDF

Nabor podatkov sestavljajo vrstice in stolpci, stran PDF pa je prazna koordinatna mreža brez kakršne koli tovrstne predstave. Premostitev tega razkoraka je glavna naloga tega članka. V knjižnici…

Software Development Blog

PDF anotacije v Delphiju s HotPDF: Vrste in pravokotniki

Anotacija ni vsebina strani. Ko pokličete funkcijoTextOutali narišete pravokotnik, te oznake postanejo del toka vsebine strani, zapečene v bajte, ki jih upodabljalnik izriše. Anotacija je ločen…

Software Development Blog

Branje lastnosti pisav PDF s PDFium Component v Delphiju

Vsak viden znak v PDF-ju vsebuje sklic na pisavo, s katero je bil izrisan, in PDFium Component vam omogoča, da temu sklicu sledite nazaj do objekta pisave ter preberete, kaj ta ve. Enota za dostop je znak,…

Software Development Blog

Revidiranje varnostnih tveganj PDF s PDFium v Delphi

PDF ni le papir. Je vsebnik, ki lahko nosi skripte, ki se zaženejo ob odprtju datoteke, povezave, ki zaženejo zunanje programe, povezave, ki dosežejo spletne strežnike, datoteke, gnezdene znotraj…

Software Development Blog

Izdelava bralnika PDF v Delphiju s PDFium Component

Bralnik PDF v Delphiju se v osnovi zanaša na dve komponenti in njuno medsebojno povezavo. KomponentaTPdfupravlja dokument: odpre datoteko, jo dešifrira in odgovarja na vprašanja o številu strani in…

Software Development Blog

Izdelava dostopnega bralnika PDF v Delphi s PDFium

Slepi uporabnik odpre četrtletno poročilo v vašem novem pregledovalniku Delphi, vklopi bralnik zaslona NVDA in zasliši nogo strani, nato stolpec s številkami, šele nato pa naslov, ki bi ga vsak…

Software Development Blog

Pregled PDF anotacij v Delphi s komponento PDFium

PDF anotacija je slovar, priložen strani, in ne oznaka, narisana na njej. Standard ISO 32000-1 §12.5 opredeljuje približno dva ducata podtipov, od katerih vsak vsebuje /Subtype, pravokotnik v…

Software Development Blog

Pregledovalnik PDF za Lazarus in Free Pascal s PDFium

Delphi in Lazarus prevajata isti Object Pascal, in prav ta zunanja podobnost je razlog, da je prenos pregledovalnika med njima varljiv. Orodni verigi se razhajata na treh mestih, pomembnih za delo s…

Software Development Blog

Barvni filtri PDF za slabovidne v Delphi s PDFium

Slaboviden bralec ne more razločiti črnega besedila na beli strani pri privzetem kontrastu, zato potrebuje temen način. Preprost odgovor je inverzija vsake slikovne pike na izrisani strani. To sicer…

Software Development Blog

Razdeljevanje dokumentov PDF s PDFium Component v Delphiju

PDFium Component ponuja eno metodo za razdeljevanje PDF-jev:ImportPages. Vse ostalo, naj gre za izločanje posamezne strani, rezanje na poljubnih mejah ali sledenje lastni strukturi zaznamkov dokumenta, so…

Software Development Blog

Vzporedna primerjava PDF v Delphiju s PDFium Component

Dva odprta dokumenta hrati, ista številka strani, vsak v svoji drsni plošči: to je jedro primerjalnega pregledovalnika. PDFium Component to omogoča prek preprostega objektnega modela, kjer jeTPdflastnik…

Software Development Blog

Validacija stisnjenih PDF: Tokovi objektov in XRef

Napišete majhen validator. Odpre PDF, poišče konec, najdestartxref, prebere odmik in pričakuje, da bo pristal na ključni besedixrefs tabelo navzkrižnih sklicev fiksne širine pod njo. Iz te tabele…

Software Development Blog

Črtne kode v PDF z Delphijem: QR, PDF417, DataMatrix

Črtna koda na odpremno nalepki ali računu ima eno samo nalogo: bralnik jo mora prebrati v prvem poskusu. Ali bo ta poskus uspel, pa se odloči že dolgo preden paket prispe na nakladalno rampo. Odvisno…

Software Development Blog

GeoPDF v Delphiju: Geospatialne koordinate s PDFlibPas

Večina razvijalcev si stran PDF predstavlja kot list papirja z besedilom in slikami. Georeferenciran PDF pa je več kot to. Vsebuje dovolj podatkov, da lahko vzamete točko na strani, izmerjeno v…

Software Development Blog

Interaktivni obrazci PDF v Delphi: Dejanja in JavaScript

Polje obrazca PDF je samo po sebi le polje, ki vsebuje vrednost. Tisto, zaradi česar se obrazec obnaša kot majhna aplikacija, je nanj pripeto dejanje: klik, ki skrije razdelek, povleče shranjene…

Software Development Blog

Plasti PDF v Delphi: Izbirne skupine vsebin (OCG)

Geodet odpre načrt lokacije in želi, da so plasti s konturami skrite, medtem ko instalacije ostanejo vidne. Ocenjevalec želi, da so rdeče korekturne pripombe vidne na zaslonu in odstranjene iz…

Software Development Blog

Preverjanje PDF/A in PDF/UA v Delphiju s PDFlibPas

PDF/A in PDF/UA odgovarjata na dve vprašanji, ki nista med seboj povezani, in njuno obravnavanje kot enotno potrditveno polje za dostopnost in arhiviranje je razlog, da poškodovane datoteke dosežejo…

Software Development Blog

Vektorska grafika v PDF z Delphi: Poti in prelivi

Večina kode v Delphi, ki se dotika PDF, obravnava ta format kot vsebnik za dve stvari: nize besedila in nekaj postavljenih bitnih slik. Ta pogled je sicer pravilen, vendar pušča neuporabljen najbolj…

Software Development Blog

Zapisovanje pivot tabel BIFF8 v Delphiju: SXDB in SXLI

Skoraj vsak del dednega dvojiškega formata Excel je en sam zapis s čistim dvobajtnim tipom in dvobajtno dolžino. Celica jeLABELSSTaliNUMBER. Združeno območje jeMERGEDCELLS. Večino delovnega lista…

Software Development Blog

Grafikoni, slike in risani objekti HotXLS v Delphiju

Vse, kar lebdi nad mrežo delovnega lista (grafikon, logotip, žig, oblaček z besedilom), je risani objekt (drawing object), ki ga določata dve stvari: kaj je in kje je zasidran. Sidro je del, pri…

Software Development Blog

Excelovi datumi v Delphiju: 1900 proti 1904 in numFmt

Odprite preglednico, kliknite celico, ki prikazuje2026-06-19, in vrstica za formule bo še vedno prikazovala datum. Preberite isto celico iz Delphija in prejeli boste število46192. Oba pogleda sta…

Software Development Blog

Določena imena in formule med listi v Delphiju s HotXLS

Določeno ime (defined name) je oznaka, ki nadomešča konstanto, obseg celic ali izraz formule. Shranjeno je enkrat v delovnem zvezku, nanj pa se simbolično sklicujemo povsod, kjer je to potrebno. Če v…

Software Development Blog

Pogon formul HotXLS in uporabniške funkcije v Delphiju

Knjižnica za preglednice, ki shranjuje le nize formul, in knjižnica z delujočim pogonom formul sta dve različni stvari, ki izgledata enako, dokler je ne vprašamo po številki. Večina kode za…

Software Development Blog

Izvoz preglednic varni pred Unicode v Delphi: RTF in HTML

Preglednica vsebuje stolpec z imeni strank. Nekatera so v kitajščini, nekatera v cirilici, nekaj jih vsebuje nemške preglase ali francoski naglas. Izvozite jo v CSV in odprete rezultat – vsak znak je…

Software Development Blog

PDF brez slovarja Pages: posledice za razčlenjevanje

Slovar kataloga PDF (PDF Catalog) ima natanko en zahtevan navigacijski ključ:/Pages. Ta ključ mora kazati na posredni objekt tipa/Pages, ki vsebuje polje/Kidsin skupno število strani/Count. Če ta…

Software Development Blog

Logični model objektov PDF: tipi, reference in struktura

Datoteka PDF je v svojem bistvu zbirka objektov, ki kažejo drug na drugaga. Če odstranimo stiskanje, vodenje navzkrižnih sklicev in bajtne odmike, ostane le graf: majhen nabor tipiziranih vrednosti,…

Software Development Blog

Linearizacija PDF in Fast Web View: kako deluje

Če postavite 80 MB skenirano poročilo za spletno povezavo in ga odprete v brskalniku, se zgodi naslednje: pregledovalnik prikazuje prazno okno, dokler se ne prenese velik del bajtov, nato pa naenkrat…

Software Development Blog

Kako deluje grafika v PDF: tokovi vsebine in operaterji

Stran PDF ne shranjuje slikovnih pik in ne shranjuje drevesa geometrijskih objektov, kot to počne SVG. Shranjuje program. Vsaka črta, krivulja, polnilo in vstavljena slika na strani je rezultat…

Software Development Blog

Struktura datotek PDF: glava, telo, xref in napovednik

Bralnik PDF ne začne brati datoteke na njenem začetku. Začne na koncu. Zadnjih nekaj bajtov vsebuje naslove vseh ostalih delov in parser, ki ne razume tega vrstnega reda, bo napačno prebral format že…

Software Development Blog

Komponente Delphi Excel, združljive s C++Builder

Ko vzdržujete komponento VCL, napisano v Delphiju, ki pa jo uporabljajo uporabniki tako Delphija kot C++Builderja, hitro ugotovite, da oba sistema za gradnjo (build systems) povsem drugače…

Software Development Blog

Format TDateTimePicker v Delphi 5: DateTime_SetFormat

TDateTimePickerje dobil lastnostFormatnekje med različicama Delphi 5 in Delphi 6. Točna meja različice je redko zanesljivo dokumentirana, in ko naletite nanjo, vam prevajalnik preprosto javi, da…

Software Development Blog

Hitrost ekstrakcije strani s HotPDF v Delphiju

Dve minuti za kopiranje treh strani iz 40-stranskega dokumenta PDF ni težava z optimizacijo delovanja. To je znak, da se uporablja napačna pot API. Ko sem prvič videl ta čas v primeru kopiranja…

Software Development Blog

Pomanjševanje strani PDF na 70 % s knjižnico losLab PDF

Dimenzije strani PDF so določene ob ustvarjanju strani, zato vsebine ne morete preprosto pomanjšati na mestu, kot bi spremenili velikost slike. Model knjižnice, ki omogoča praktično pomanjševanje, je…

Software Development Blog

Pretvorba RTF v PDF v Delphiju s knjižnico losLab PDF

RTF je prisoten že dovolj dolgo, da se pojavlja na mestih, ki jih nihče ni načrtoval: v starejših generatorjih poročil, cevovodih za spajanje dokumentov in arhivih pravnih dokumentov, ki so starejši…