Sunteți pe pagina 1din 6

CREAREA DOCUMENTELOR PDF

Andrei Creoteanu*

Because of its characteristics, the PDF format has become very popular in the last years, most of the documents meant to be read by a large public being written in this format. The paper shortly presents the structure of PDF files and the step by step creation of a PDF document through code, document which demonstrates different elements and effects that can be added to it.

1. Introducere Formatul PDF este foarte popular datorit atuurilor sale: - cu ajutorul Acrobat Reader aceste documente pot fi deschise pe orice calculator indiferent de sistemul de operare. - datorit ncorporrii n document a elementelor folosite (fonturi, imagini, etc), acestea vor arta la fel pe orice calculator. - asemntor streaming-ului video, prima pagin a unui document este afiat imediat dup descrcare, urmnd ca urmtoarele pagini s fie descrcate i afiate ulterior. - elemente de securitate care (la alegerea celui care creaz documentul PDF) nu permit copierea textului, a unor elemente ale sale sau chiar tiparirea documentului. Prezenta lucrare va prezenta (pe scurt) structura documentelor PDF i crearea de documente PDF prin cod Visual Basic. 2. Crearea PDF-urilor n continuare voi prezenta crearea unui document PDF. Codul ce urmeaz apeleaz proprieti i metode definite n clasa clsCrearePDF, ele au nume sugestive pentru operaiile pe care le execut. Aceste metode i proprieti creaz un fiier cu o anumit structur definitorie pentru formatul PDF. Voi prezenta la nceput codul i apoi comentariile, numerotate, numerele acestea regsindu-se la sfritul liniilor de cod. n aceast lucrare nu este prezentat toat clasa clsCrearePDF datorit mrimii ei (2500+ linii de cod) ci doar metoda clasei de scriere a textului n fiiere PDF.

2.1 Iniializarea documentului PDF Dim clsPDF As New (13) clsCrearePDF Dim strFiier As String Dim i As Single strFiier = App.Path & "\Kreo PDF.pdf" With clsPDF .Titlu = "Kreo PDF" .ModScar = pdfCentimetru .MrimeHrtie = pdfA4 .Margini = 0 .Orientare = pdfPortret .InitializarePDF (strFiier) .Font "Font1", "Times New Roman" .Font "Font2", "Arial", pdfItalic .Font "Font3", "Courier New" .FontStandard "Font4","Courier New", pdfBold .Imagine "Imag2", App.Path & "\2.bmp" (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (11) (11) (11) (12)

.StartObject "1", pdfToatePaginile (13) .ColorFill -240 .TextScaling 120 .Text 6, 4, "Kreo PDF", "Font2", 120, , 60 .ColorFill 0 .EndObject (13) (1)-Creem o instan a clasei (2)-Creem un string pentru calea (i numele) noului fiier creat (3)-Dm calea i numele noului fiier ce urmeaz a fi creat. Calea este: Folderul unde se afl aplicaia (4)-Tot ce urmeaz dup With i are .Ceva (punct Ceva) nainte este echivalent cu clsPDF.Ceva (5)-Titlul fisierului (6)-Unitatea de masur pentru pagin (7)-Formatare pagina / Mrime pagin (8)-Marginea paginii (9)-Orientarea paginii (10)-Iniializarea fisierului PDF: se creaz fiierul la adresa din strFiier, se scrie versiunea de PDF, atributele (titlul documentului, creator, autor, dat), catalogul (preferine vizualizare, limba, tip pagin, etc.) (11)-Definirea fonturilor folosite (Formatul PDF conine fonturile folosite a.. documentul va arta exact la fel pe orice sistem de operare i orice PC) (12)-Definirea resurselor la imagini (13)-Definire Watermark - text care va aparea scris pe toate foile (n fundal)

2.2 Iniializarea primei pagini .StartPagina (14)

.Text 19, 1.5, "pagina " & Trim(CStr(.Pages)), "Font1", 12, pdfAliniereDreapta (15) .Text 10.5, 27, "Test creere fisier PDF", "Font1", 48, pdfCentru (15) .TextScaling 70 (16) .Text 20, 23, "Aliniere dreapta", "Font2", 24, pdfAliniereDreapta (15) .Text 1, 23, "Aliniere stanga", "Font2", 24, pdfAliniereStanga (15) .Text 10.5, 23, "Aliniere centrata", "Font2", 24, pdfCentru (15) .TextScaling 100 (16) For i = 0 To 359 Step 15 (17) .ColorFill RGB(CByte(255 * i / 359), CByte(255 * (359 - i) / 359),0) If i<=60 Or i>=240 then .Text 10.5, 16, "Test rotire text " & CStr(i) & "", "Font2", 20, , i Next (17) .ColorFill 0 .ColorStroke 0 .TextScaling 45 (16) .Text 20, 6, "Text micsorat la 45%", "Font2", 24, pdfAliniereDreapta (15) .TextScaling 200 (16) .Text 1, 6, "Text marit 200%", "Font4", 24, pdfAliniereStanga (15) .CharSpacing 5 (18) .Text 1, 3, "Spatiu intre caractere: 5", "Font3", 16, pdfAliniereStanga (15) .CharSpacing 0 (18) .SfarsitPagina (19)

(14)-Iniializarea primei pagini a documentului: folosind sintaxa necesar tipului de fiier PDF se incrementeaz numrul de pagini, se selecteaz pagina nou creat i verificm dac exist declarat un watermark text care va aprea ca fundal pe toate paginile i l inserm dac exist; setm pe 0 distana ntre caractere, cuvinte, i setm mrimea textului la 100% (adic mrimea lui natural) (15)-Sintaxa pentru afiarea textului (n cadrul clasei, pentru metode): se dau coordonatele de inserie, textul ce va aprea n document, fontul i mrimea acestuia i eventual tipul de aliniere (implicit este aliniere la stnga). Scrierea textului n fiier (PDF): nti verificm tipul de aliniere i n funcie de acesta setm punctul de inserie, folosind sintaxa necesar tipului de fiier PDF se scrie fontul, mrimea fontului i textul (Aceast metod de inserare a textului

poate fi citit la sfritul lucrrii prezint inclusiv sintaxa necesar formatului PDF pentru inserarea de text ntr-un astfel de document) (16)-Mrirea sau micorarea textului scris cu acelai font (17)-Afiarea unui text rotit i cu variaie a culorii. Afim textul doar pentru valorile <= cu 60 i >= cu 240 (18)-Distana dintre caractere (19)-Inchidem pagina 2.3 Iniializarea celei de a doua pagini .StartPagina (14)

.Text 19, 1.5, "pagina " & Trim(CStr(.Pages)), "Font1", 12, pdfAliniereDreapta (15) .Text 10.5, 27, "Elemente grafice:", "Font1", 48, pdfCentru (15) .Dreptunghi 1, 2, 19, 24.5, Stroked (20) .Img "Imag2", 1.5, 19, 3, 4 (21) .Text 3.1, 14.4, Imagine inserat, Font1, 14, pdfCentru (15) .Dreptunghi 1.5, 23, 2.5, 3, , 0.5 (20) .ColorFill RGB(0, 0, 255) (22) .Dreptunghi 5, 23, 2.5, 3, Filled, 0.5 .ColorFill 0 (22) .LineWidth 0.1 (23) .ColorStroke RGB(255, 0, 0) .Cerc 15.5, 6, 2, Stroked (23) For i = 0 To 90 Step 10 (24) .ColorStroke RGB(95 - i, i + 5, 255 - i) .Arc 15, 7.3, 5, , , 0.5, , i, , Stroked Next (24) .SfarsitPagina .nchiderePDF End With (20)-Desenare dreptunghi (21)-Inserare imagine n fiier PDF (22)-Desenare dreptunghi plin de culoare albastr (23)-Desenare cerc de culoare roie (24)-Arce de cerc n jurul cercului rou (25)-nchiderea documentului PDF 2.4 Sintaxa PDF n continuare voi prezenta metoda utilizat pentru scrierea textului ntr-un document PDF, metod coninut n clasa clsCrearePDF. Aceast metod arat cum este scris informaia (n cazul nostru textul) ntr-un fiier PDF. (19) (25) (4)

Public Sub Text(x As Single, y As Single, strTemp As String, NumeFont As String, MarimeFont As Single, Optional Aliniere As pdfAliniereText = pdfAliniereStanga) (26) Select Case Aliniere Case pdfAliniereStanga (27)

Case pdfAliniereDreapta l = Length(strTemp, NumeFont, MarimeFont) x=x-l Case pdfCentru l = Length(strTemp, NumeFont, MarimeFont) x=x-l/2 End Select (27) Scrie "BT" (28) Scrie "/" & NumeFont & " " & ToStr(MarimeFont) & " Tf" Scrie ToStr(ToSpace(x)) & " " & ToStr(ToSpace(y)) & " Td" Scrie "(" & ToPdfStr(strTemp) & ") Tj" Scrie "ET" (28) End Sub (26)-Numele metodei cu parametrii ei: coordonatele x i y, textul ce urmeaz s fie scris, numele fontului, mrimea fontului i opional tipul de aliniere, alinierea implicit fiind aliniearea la stnga (27)-n funcie de tipul alinierii setm punctul de inserie a textului (28)-Cele cinci linii de cod prezint sintaxa fiierului PDF i modul de scriere a informaiei n acest tip de fiier (29)-Sfritul funciei 2.5 Interfaa programului Pentru acest program am utilizat o interfa grafic ct mai simpl i ct mai uor de folosit pentru o rapiditate n folosire. Acest program la apsarea butonului Creaz PDF creaz un document PDF de aproximativ 100 kb care demonstreaz diverse opiuni: alinieri diferite ale textului, rotiri de text, mrirea i micorarea unui text scris cu aceeai mrime de font, lsarea de spaiu ntre caractere, inserarea de imagini i crearea de elemente grafice.

Dup deschiderea programului sunt suficiente dou apsri ale tastei enter pentru a se crea documentul PDF i a se iei din program (dup primul enter focus-ul se mut pe Ieire).

2.6 Rezultatul rulrii: fiierul PDF

Andrei Creoteanu, student, Universitatea Titu Maiorescu Bucureti, e-mail: andrei.creo@gmail.com