Esej o stvaranju PDF datoteka. Esej o stvaranju PDF datoteka Delphi komponente za čitanje pdf-a

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Mogućnosti komponenti koje su deklarirali programeri:

  • Podrška za vektorsku i rastersku grafiku u PDF dokumentima
  • Zaštitite PDF dokumente lozinkom
  • Podrška za AcroForms/PDF obrasce
  • Vodeni znakovi
  • Generirajte PDF dokumente s unutarnjim i vanjskim poveznicama, web poveznicama i knjižnim oznakama
  • Potpuna podrška za Unicode
  • Podrška za razne fontove, oblikovanje teksta, raspored teksta u više stupaca
  • Podrška za TCanvas
  • Ugrađeni arhiver za sažimanje tekstualnih i grafičkih informacija u dokumentu
  • Pretvorite TIFF u PDF

Kao primjer, odlučio sam napraviti demo aplikaciju koja dolazi u paketu s komponentom THotPDF. Aplikacija je vrlo jednostavna - generira PDF s dvije poveznice i jednostavnim tekstom. Kod je također jednostavan i jasan:

procedura TForm1. HelloWorldButtonClick(Pošiljatelj: TObject); početakHPDF. BeginDoc ; HPDF. Trenutna stranica. PrintHyperlink(20, 35, "Web stranica: " + MainEdit. Tekst, MainEdit. Tekst); HPDF. Trenutna stranica. PostaviFont("Times New Roman", , 16); HPDF. Trenutna stranica. PostaviRGBHyperlinkColor(clRed); HPDF. Trenutna stranica. PrintHyperlink (20, 50, "Stranica za narudžbu: " + BuyEdit. Text, BuyEdit. Text); HPDF. Trenutna stranica. PostaviFont("Times New Roman", , 14); HPDF. Trenutna stranica. TextOut(20, 75, 0, "Kliknite vezu za navigaciju"); HPDF. EndDoc ; kraj ;

Čak i bez ulaženja u zamršenost rada komponente, možete razumjeti što i kako se događa u ovom demo primjeru. Pokrenimo ga i pogledajmo izgled generiranog dokumenta:

Ova dva plava pravokutnika u dokumentu poveznice su na dvije stranice... a jednostavan tekst "Kliknite vezu za navigaciju" uopće se nigdje ne vidi. Iako, moramo odati počast, kada kliknete na pravokutnik, poveznica se zapravo otvara. Općenito, ili su programeri bili u žurbi s objavom podrške za Delphi do XE3, ili probna verzija radi tako zanimljivo, ali nakon pokretanja ovog demoa nekako sam izgubio želju koristiti THotPDF čak i besplatno. Idemo dalje.

4. Pilot PDF Creator

Cijena: od $450 bez izvornih kodova do $9950 (!!!) s izvornim kodovima
5-XE4
http://www.colorpilot.com/pdflibrary.html#download

Biblioteka košta skoro isto kao Delphi XE3 Professional... Dobro, u redu, da vidimo što je ovo biblioteka.

Značajke koje su naveli programeri:

  • Prošireni skup metoda i svojstava za jednostavno stvaranje PDF-a;
  • Čitanje i spajanje postojećih PDF dokumenata;
  • Dodavanje i uklanjanje stranica PDF dokumenta;
  • Unicode podrška;
  • Stvaranje vodenih žigova za svaku stranicu;
  • Dodajte minijature u PDF dokument;
  • Korištenje i ugradnja fontova (TrueType, OpenType, Type1, itd.);
  • Izradite interaktivne PDF dokumente koristeći JavaScript i hiperveze;
  • Podrška za interaktivne AcroForm elemente: polja za unos teksta, gumbi, radio gumbi, padajuće liste, okviri za potvrdu;
  • šifriranje i zaštita lozinkom kreiranih PDF dokumenata;
  • Stvaranje i upravljanje sadržajem dokumenta;
  • Pristup HDC-u za crtanje na PDF stranicama pomoću WinAPI funkcija.
  • Korištenje slika u različitim formatima (JPEG, TIFF, PNG, BMP, GIF);
  • Izrada i korištenje zabilješki;
  • Stvaranje PDF dokumenata na disku ili u memoriji;
  • Ekstrahirajte tekst iz PDF dokumenata;

Sve u svemu, prilično impresivan popis značajki. Pogledajmo kako neke od ovih značajki funkcioniraju u praksi. Preuzmite demo verziju i instalirajte je.

Nakon instalacije pokrenite Delphi (u mom slučaju to je Delphi XE3) i idite na izbornik:

Komponenta - Uvoz Komponenta - Uvoz biblioteke vrsta

Na popisu tražimo knjižnicu

Uvezujemo, stvaramo novi projekt i uključujemo modul u uses PDFCreatorPilotLib_TLB.

Sada možemo testirati knjižnicu koristeći neki živi primjer. Prvo, pokušajmo generirati dokument s jednostavnim tekstom:

procedura TForm1. Button1Click(Pošiljatelj: TObject); var fnt: cijeli broj; početak (inicijalizacija) PDF := TPDFDocument4. Stvori (nula); PDF. SetLicenseData ("demo" , "demo" ) ; fnt:=pdf. AddFont ("Verdana", false, false, false, false, fcANSI) ; PDF. KoristiFont(fnt, 14); PDF. ShowTextAt (20, 40, "ZDRAVO, PDF!"); (spremi) PDF. SaveToFile("HelloPDF.pdf", istina); PDF. Uništiti; kraj ;

Pokrenite aplikaciju i pogledajte kreirani PDF dokument:

Pokušajmo sada napisati ruski tekst u datoteku:

procedura TForm1. Button1Click(Pošiljatelj: TObject); početak (inicijalizacija) (...) PDF. ShowTextAt(20, 40, "Zdravo, PDF!"); ( spremiti ) (...) kraj ;


Možda negdje u svojstvima klase trebate nešto konfigurirati, pozvati neku metodu koja će omogućiti podršku za Unicode, ALI za takav novac želio bih dobiti biblioteku koja će raditi odmah iz kutije bez ikakvih problema s postavkama i podešavanjima. .. Usput, metoda za umetanje poveznice (AddHyperLink) također nije radila - dokument je ostao netaknut unatoč činjenici da je poveznica navodno umetnuta. Ali, moramo odati priznanje, pokušaj umetanja prethodno stvorenog PDF-a u novi dokument uspio je s praskom - dokument je umetnut na novu stranicu kako treba, bez grešaka.

5. PDFtoolkit VCL v4.0.1.293

Cijena: od 349 USD bez izvora do 499 USD s izvorima
Podržane verzije Delphija: 6-XE4
Stranica za preuzimanje probne verzije: http://www.gnostice.com/PDFtoolkit_VCL.asp?show=downloads

Na internetu postoji dosta pozitivnih recenzija o ovoj biblioteci komponenti tvrtke Gnostice.

Prema mogućnostima PDFtoolkit gotovo 1 prema 1 odgovara PDF Creator Pilot, oni. može "lijepiti" PDF-ove, prepoznavati tekst, umetati poveznice, pretraživati ​​dokumente itd. Ali, za razliku od PDF Creator Pilota, PDFtoolkit ako gtPDFDocument1. IsLoaded zatim započnite gtPDFDocument1. TextOut( "Zdravo, Svijet!" , IntToStr (gtPDFDocument1. PageCount ) , //raspon stranica u koji će se tekst umetnuti gtPDFDokument1. GetPageSize(gtPDFDocument1. PageCount, muPixels) . Širina/2 //umetnuti tekst u središte stranice gtPDFDokument1. GetPagessize(gtPDFDocument1. PageCount, muPixels) . Visina/2); (spremite dokument) gtPDFDokument1. SaveToFile("modified_doc.pdf"); kraj ; konačno gtPDFDocument1. Slobodan kraj ;

Naravno, u odnosu na moj zadatak, PDFtoolkit se pokazao praktički beskorisnim, jer... Zanima me izrada PDF-ova od nule, ali za one koji pišu vlastiti PDF preglednik, mislim da bi ova biblioteka trebala biti više nego prikladna.

Dakle, što imamo na kraju? Postoji 5 različitih rješenja za izradu i rad s PDF dokumentima u Delphiju. Svako rješenje ima svoje prednosti (besplatno, sofisticirano) i nedostatke (pretjerani troškovi, problemi s Unicodeom itd.). U odnosu na moj problem, sva rješenja morat će se "raditi s datotekom". S druge strane, na Internetu postoji hrpa plaćenih i besplatnih servisa za generiranje PDF-ova, ali, imajući na umu da takvi servisi imaju tendenciju iznenada zaživjeti i umrijeti, nekako se ne želim upuštati u njih. Postoji, naravno, još jedno rješenje - domaće i nije skroz u Delphi temi, ali o tome sljedeći put, ali za sada ću ići razmisliti što učiniti s klijentom za DelphiFeeds


Vidimo se online!


datum objave 23.09.2005 07:00 Esej o stvaranju PDF datoteka

Nedavno je na internetu otkriveno puno PDF pretvarača, čitača i pisaca. I velika većina njih nudi se za novac. Sam program se kreće od 10 do 300 dolara. A izvorni kod za mnogo više novca, cijena počinje od 200$ i na jednom mjestu (nakon što sam se zainteresirao za ovo surfao sam internetom) za čak 900 eura.

Ovaj me problem zainteresirao u smislu programiranja i donosim vam rezultate. (Ove rezultate sam dobio dok sam proučavao unutrašnjost PDF datoteke kada je otvorite u total commanderu preko F3)

Tipična PDF datoteka sastoji se od četiri dijela :=

Što je

? Ovo je uobičajena referenca na verziju PDF specifikacije. Koji je prisutan u prvom retku PDF datoteke. Na primjer, "%PDF-1.3" U sedmoj verziji Acrobata, koja je objavljena negdje početkom ljeta ove godine, ovaj broj je "%PDF-1.7", ali ovo nije verzija proizvoda, ovo je specifikacija verzija. Drugi redak PDF-a je mala kratica (očigledno namijenjena budućoj upotrebi) "%vgPU"

Svi su shvatili prvi dio PDF-a.

Kako se zove drugi dio ?

Odgovor je vrlo jednostavan: ovo je niz objekata, čiji su opis, kao i zaglavlje, prikazani u tekstualnom obliku.

Svaki objekt je fragment teksta sa serijskim brojem u nazivu, na primjer "4 0 objektiv"

  • 4 ovo je serijski broj objekta
  • 0 ovo je broj (re)generiranja datoteke, odnosno kada se datoteka ažurira (uređuje) taj se broj povećava
  • obj ovo je kodna riječ koja znači da smo naišli na objekt u tijelu dokumenta

Svi objekti podijeljeni su na neizravne i izravne. Svi su neizravni, a većina ih je iza riječi obj imaju granicu u svom tijelu"<<", означающее начало данных объекта. И в конце данных закрывающий делиметер ">>" i kodnu riječ endobj

Izravni objekti ne bi trebali imati graničnike za otvaranje i zatvaranje u svom tijelu"<<", ">>>"Svi neizravni objekti dostupni su putem unakrsna tablica. Predstavlja reference u obliku pomaka od početka datoteke do početka objekta (Podaci (redovi) u objektu su odvojeni #13#10 ili #13 )

Vrsta "najvažnijeg" objekta u tijelu PDF datoteke ima ponosno ime "/Katalog"

4 0 obj<< /Type /Catalog /Pages 2 0 R /OpenAction [ 5 0 R /XYZ null 364 1 ] /PageMode /UseNone >>endobj

Zapravo, trebala bi postojati 3 "glavna" objekta u tijelu minimalne PDF datoteke "Hello world". Dopustite mi da ih nabrojim po vrsti:

  • "/Katalog" sadrži vezu: na stablo stranice ( /Stranice)
  • "/Stranice" sadrži poveznicu na grupu stranica dokumenta (Na primjer 2 0 obj > endobj)
  • "/Stranica" sadrži poveznicu na objekte koji se odnose na određenu stranicu. (Na primjer 3 0 obj > /Rotate 0 >>)
I nekoliko manjih

Analizirajmo objekt stranice:

  • /Rotirati polje koje pokazuje za koliko stupnjeva se slika stranice treba okrenuti kada se prikazuje u programu
  • /MediaBox I /CropBox polja koja opisuju veličinu stranice
  • /Roditelj referenca na roditeljski objekt "/Stranice"
  • /Resursi ovo polje opisuje koji se font treba koristiti pri prikazivanju stranice (font je zaseban objekt) i postavka ProcSet ova postavka označava koji je sadržaj u toku podataka ove stranice (može se definirati i kao objekt, a ne kao polje )
  • /Sadržaj Najzanimljivije polje u objektu “stranica” daje vezu na sadržajni objekt ove stranice i: ako ovog polja nema u objektu “stranica”, tada je stranica prazna
Sadržaj stranice:
Objekt "tok" 4 0 obj > stream BT /F12 9 Tf 10 782 TD 0 -12,5 TD (Max Fokin) Tj 0 -12,5 TD (mnb) Tj 0 -12,5 TD () Tj 0 -12,5 TD (Max Privet) Tj 0 -12,5 TD (1) Tj 0 -12.5 TD (1) Tj 0 -12.5 TD (2) Tj 0 -12.5 TD (3) Tj 0 -12.5 TD (45) Tj ET endstream endobj /Length 305 ovo polje pokazuje koliko je bajtova u Riječ potok do riječi krajnji tok

Najjednostavnija opcija je nekodirani i nekomprimirani tok podataka u objektu potok. Ograničen je na operatere BT I ET

BT počinje tekstualni objekt - karakterizira početak teksta ET završava tekstualni objekt. - karakterizira kraj teksta /F12 9 Tf

  • /F12 ovo je kodni naziv objekta koji karakterizira font korišten na ovoj stranici
  • 9 ovo je veličina fonta
  • Tf ovo je operator koji karakterizira da je ovaj redak u steam objektu postavka fonta i veličine
10,782 TD su brojevi gdje ovaj red počinje (brojeći od gornjeg lijevog kuta) Tj je novi operator retka Pa, u zagradama je naš tekst

Ovdje ne objašnjavam kodirani tok. Temelji se na algoritmima RC4, RC5, MD5.

Što je objekt Font 12 0 obj >

  • /Tip /Font Naravno, naziv tipa
  • /Podtip /Tip1 naziv podtipa
  • /Ime /F7 F7 ovo je kodno ime

PDF podržava nekoliko vrsta fontova. Oni su navedeni u nastavku

  • Tip 1, uključujući podskupove i višestruke glavne "snimke"
  • Tip 3
  • TrueType, uključujući podskupove
  • Tip 0
Da budem iskren, nisam razumio Type 3, TrueType, uključujući podskupove, Type 0, ne mogu ništa reći o njima
A tip 1 su sljedeći fontovi Courier Courier-Bold Courier-BoldOblique Courier-Oblique Helvetica Helvetica-Bold Helvetica-BoldOblique Helvetica-Oblique Times-Roman Times-Bold Times-Italic Times-BoldItalic Symbol ZapfDingbats

20 0 obj > endobj Ovo je objekt s kodnim imenima za fontove prve vrste. Koristeći ovaj kodni naziv možete lako dobiti sam objekt font. 6 0 obj >

SVE: odnosno minimum Sastoji se od sljedećih objekata: "katalog" , "stranice", "stranica", "Resursi"(po izboru može biti prisutan kao polje u objektu stranice), netipizirani objekt "tok", grupa objekata "font"

Što se dogodilo ? Zapravo, ovo je obična tekstualna tablica, počinje riječju xref a njegovo tijelo ima veze na sve neizravne objekte u dokumentu. Evo primjera xref 0 27 0000000021 65535 f 0000000016 00000 n 0000000105 00000 n 0000000169 00000 n 0000000356 00000 n 0000000713 00000 n 000000 0892 00000 n 0000001006 00000 n 0000001125 00000 n 0000001247 00000 n 0000001373 00000 n 0000001486 00000 n 000000160 4 00000 n 00000 01725 00000 n 0000001850 00000 n 0000001967 00000 n 0000002084 00000 n 0000002203 00000 n 0000002326 00000 n 0000002439 00000 n 0000002 558 00000 n 0000000024 0000 1 f 0000002751 00000 n 0000002831 00000 n 0000000000 00001 f 0000002915 00000 n 0000002955 00000 n 0 27 Ovi brojevi znače sljedeće:

  • 0 - prvi broj objekta u tablici
  • 27 - broj elemenata tablice

Prvi element tablice uvijek ima oblik " XXXXXXXXXX 65535 f" gdje je X znamenka, a 65535 zadana vrijednost za prvi element u tablici. Simbol "f" označava " besplatno“, odnosno objekt se ne koristi

Analizirajmo element ove tablice.

  • Prvih 10 znamenki su pomak od početka datoteke do početka objekta.
  • 0000000016 znači da ćete 16 bajtova od početka datoteke naići na prvo spominjanje objekta, tj. npr. 4 0 obj

Drugih pet znamenki je broj generacije datoteke. Ako je datoteka upravo stvorena, uvijek su nula. Ako je datoteka izmijenjena, tada se ovaj broj povećava za jedan. To je, 0000000024 00001 f

Kanonska PDF datoteka koju smo upravo stvorili ima samo jednu tablicu. Ali, ako je datoteka uređena, tada može biti puno takvih tablica.

Odnos tablica provodi se pomoću posljednjeg elementa i kodna riječ startxref

Kanonska, novostvorena PDF datoteka ima samo jednu tablicu, nakon tablice nalazi se element prikolica A nakon trailera dolazi šifra startxref, označavajući pomak od početka datoteke do početka tablice, evo primjera. trailer > startxref 173 %%EOF To znači da će nakon 173 bajta od početka dokumenta biti prisutna kodna riječ xref. Ali, ako je datoteka uređena, posljednja najava u datoteci će izgledati ovako: xref 0 3 0000000000 65535 f 0000003609 00000 n 0000003832 00000 n najava<7a15ab3ed3999575ff2f3034104a82c1>] >> startxref 173 %%EOF Ali, ako se pozovemo na tablicu gdje link pokazuje startxref 173, tada ćemo pronaći sljedeću tablicu, a iza nje prikolicu koja će imati polje /Prethodna 3896 3 16 0000000016 00000 n 0000000664 00000 n 0000000936 00000 n 0000001106 00000 n 0000001133 00000 n 0000001250 00000 n 0000 001395 00000 n 0000001811 00000 n 0000001992 00000 n 0000002180 00000 n 0000002360 00000 n 0000002760 00000 n 0000003438 0000 0 n 000000351 6 00000 n 0000000776 00000 n 0000000916 00000 n prikolica<7a15ab3ed3999575ff2f3034104a82c1>] >> startxref 567 %%EOF

Ovo polje /Prethodna 3896 upućuje nas na prethodnu tablicu, a link startxref 567 pokazuje na sljedeću tablicu i tako gotovo ad infinitum, sve do sljedećeg polja startxref nećemo vidjeti 0 . To znači da smo pročitali sve tablice.

Ovom eseju, naravno, nedostaje izvorni kod. Evo ga: predstavljena su dva glavna modula" PDFDokument"i pomoćno" PDFBaseFonts"

Uz materijal su priložene sljedeće datoteke:

  • Izvorni kod modula PDFDocument.pas i PDFBaseFonts.pas (16 K) ažuriranje od 23.9.2005 7:02:00

Rasprava o materijalu [ 07/31/2006 06:33 ] 7 poruka

U ovom ćemo članku pogledati kako izraditi vlastiti pdf-dokumente, a u sljedećem članku ćemo pogledati kako možete pregledavati pdf-dokumente u svojim projektima, kao i ispis sadržaja, kretanje kroz dokument i tako dalje.

Za to su nam potrebne komponente s tab Rave. Instalirajmo komponente koje su nam potrebne za rad, a to su:

  • TRvNDRWriter
  • TRvRenderPdf
  • TButton

komponenta TRvNDRWriter namijenjen za snimanje u pdf-datotečne informacije (tekstualne, grafičke) putem toka.

komponenta TRvRenderPdf dizajniran za kreiranje i crtanje informacija (tekstualnih, grafičkih itd.). Pa, kad pritisnete gumb, unijet ćemo nešto u naš pdf-datoteka.

Nećemo puno pisati o teoriji, već ćemo prijeći ravno na programiranje, ali prvo moramo stvoriti običan prazan prostor pdf-datoteku i stavite je u korijen programa. Pored događaja Na klik Za naš gumb napisat ćemo sljedeći kod:

procedura TForm1. Button1Click(Pošiljatelj: TObject); var Streams: TMemoryStream; započeti tokove: = TMemoryStream. stvoriti ; RvNDrWriter1. Tok := Tokovi; RvNDRWriter1. Izvršiti ; RvRenderPdf1. PrintRender(Streams, "test.pdf"); ShellExecute(Handle, nil, "test.pdf" , "" , "" , SW_SHOW) ; SlobodanINišta(Tokovi); kraj ;

Kreiramo stream u koji ćemo iscrtavati sve informacije, zatim krećemo s renderiranjem, specificiramo datoteku u koju će se podaci iscrtavati i na kraju uništavamo stream.

To je sada to, treba nam događaj koji se javlja prilikom crtanja podataka, u kojem ćemo prikazati sve naše informacije. Odabir komponente TRvNDRWriter i prolazimo kroz popis događaja ove komponente, nakon čega nalazimo događaj OnPrint i u ovom slučaju pišemo sljedeći kod:

procedura TForm1. Ispis(pošiljatelj: TObject); početak bmp: = TBitmap. Stvoriti ; bmp. LoadFromFile("test.bmp"); s RvNDRWriter1 pokrenite SetFont("Arial" , 16) ; FontColor: = clGreen; Ispis("Testni tekst" ); PrintHeader("Početak PDF datoteke" , pjCenter) ; PrintFooter("Kraj PDF datoteke" , pjCenter) ; LinijaDo(10, 10) ; PrintBitmap(1, 1, 1, 1, bmp) ; kraj ; SlobodnoINišta(bmp); kraj ;

Pa, prvo, učitavamo sliku. *.bmp, prirodno promjenjiv bmp, imamo objekt klase TBitmap. Preuzimamo ga kako bismo ga zatim nacrtali u našem pdf-dokument.

I onda je, mislim, sve jasno, procedura PrintHeader- prikazuje natpis u naslovu dokumenta (stranica), postupak Ispis podnožja- prikazuje natpis na kraju dokumenta (stranice). Postupak PrintBitmap- ispisuje sliku u dokument, postupak Postavi font- postavlja font dokumenta, postupak Boja fonta- postavlja boju fonta dokumenta.

Za ovaj primjer trebat će nam sljedeće komponente koje se nalaze na kartici Rave. I tako, počnimo instalirati komponente koje su nam potrebne, naime:

  • TRvNDRWriter
  • TRvRenderPdf
  • TButton

Predlažem da se malo zadržimo na ovim komponentama i shvatimo čemu služe. Inače, podatke o njima sam dobio iz par knjiga koje sam kupio progbook.ru. Stoga, ako želite kupiti pristojne knjige na Delphiju, dobrodošli ste da posjetite ovu trgovinu.

Dakle, prvo imamo komponentu TRvNDRWriter. Ova komponenta nam je potrebna za pisanje informacija u pdf datoteku, bez obzira kakve, tekstualne ili grafičke, kroz tok.

Procedura TForm1.Button1Click(Pošiljatelj: TObject); var Streams:TMemoryStream; početak Streams:=TMemoryStream.create; RvNDrWriter1.Stream:=Tokovi; RvNDRWriter1.Execute; RvRenderPdf1.PrintRender(Streams, "test.pdf"); ShellExecute(Handle, nil, "test.pdf", "", "", SW_SHOW); SlobodanINišta(Tokovi); kraj;

Sljedeća komponenta je TRvRenderPdf. Potreban nam je za stvaranje, odnosno crtanje informacija, bilo tekstualnih ili grafičkih. Sukladno tome, nakon klika na gumb, u našu pdf datoteku upisat ćemo podatke koji su nam potrebni.

No da ne lupetamo previše, nego prijeđimo odmah na temu koja nas zanima, a to je programiranje :)

Prvo moramo stvoriti običnu praznu pdf datoteku i smjestiti je u korijensku mapu našeg programa.

Zapravo, ovim kodom kreiramo stream gdje ćemo iscrtavati informacije koje su nam potrebne, nakon čega krećemo s renderiranjem, označavamo našu konačnu pdf datoteku u koju će se podaci uvlačiti i na kraju zatvaramo stream.

Nakon što izvršimo ovo kada, potreban nam je događaj koji se događa prilikom crtanja podataka; u ovom događaju ćemo prikazati informacije koje su nam potrebne.

Pogledajmo kod. Za početak učitavam *.bmp sliku, kreiram bmp varijablu i objekt klase TBitmap. Skidam ga tako da mogu crtati u našoj pdf datoteci.

Mislim da ne vrijedi sve dalje jasno opisivati, pa tako, PrintHeader procedura dodaje natpis u zaglavlje dokumenta, PrintFooter procedura dodaje natpis na kraj dokumenta. Procedura PrintBitmap dodaje sliku u dokument, procedura SetFont postavlja traženi font dokumenta, procedura FontColor postavlja željenu boju fonta dokumenta.

Sve sljedeće grafičke funkcije i postupci potpuno su isti kao kod prikaza grafičkih informacija na platnu drugih komponenti.

Koristim funkciju NewPage za stvaranje novog lista u dokumentu. Sve što će biti dodano nakon njega za prikaz informacija bit će prikazano na novom listu dokumenta.

Važno tako da su svi moduli: RpRender, RpRenderPDF, RpDefine, RpBase, RpFiler, RpRave, RpCon povezani s projektom!



reci prijateljima