Sunteți pe pagina 1din 5

CREAREA DOCUMENTELOR PDF

Andrei Creosteanu*
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 datorita atuurilor sale:
- cu ajutorul Acrobat Reader aceste documente pot fi deschise pe orice calculator
indiferent de sistemul de operare.
- datorita încorporarii în document a elementelor folosite (fonturi, imagini, etc), acestea
vor arata la fel pe orice calculator.
- asemanator streaming-ului video, prima pagina a unui document este afisata imediat
dupa descarcare, urmând ca urmatoarele pagini sa fie descarcate si afisate ulterior.
- elemente de securitate care (la alegerea celui care creaza documentul PDF) nu permit
copierea textului, a unor elemente ale sale sau chiar tiparirea documentului.
Prezenta lucrare va prezenta (pe scurt) structura documentelor PDF si crearea de
documente PDF prin cod Visual Basic.
2. Crearea PDF-urilor
În continuare voi prezenta crearea unui document PDF. Codul ce urmeaza apeleaza
proprietati si metode definite în clasa clsCrearePDF, ele au nume sugestive pentru operatiile
pe care le executa. Aceste metode si proprietati creaza un fisier cu o anumita structura
definitorie pentru formatul PDF.
Voi prezenta la început codul si apoi comentariile, numerotate, numerele acestea
regasindu-se la sfârsitul liniilor de cod. În aceasta lucrare nu este prezentata toata clasa
clsCrearePDF datorita marimii ei (2500+ linii de cod) ci doar metoda clasei de scriere a
textului în fisiere PDF.
2.1 Initializarea documentului PDF
(13)
(1)-Creem o instanta a clasei
(2)-Creem un string pentru calea (si numele) noului fisier creat
(3)-Dam calea si numele noului fisier ce urmeaza a fi creat. Calea este: Folderul unde se
afla
aplicatia
(4)-Tot ce urmeaza dupa With si are .Ceva (punct Ceva) înainte este echivalent cu
clsPDF.Ceva
(5)-Titlul fisierului
(6)-Unitatea de masura pentru pagina
(7)-Formatare pagina / Marime pagina
(8)-Marginea paginii
(9)-Orientarea paginii
(10)-Initializarea fisierului PDF: se creaza fisierul la adresa din strFisier, se scrie versiunea
de
PDF, atributele (titlul documentului, creator, autor, data), catalogul (preferinte vizualizare,
limba, tip pagina, etc.)
(11)-Definirea fonturilor folosite (Formatul PDF contine fonturile folosite a.î. documentul va
arata exact la fel pe orice sistem de operare si orice PC)
(12)-Definirea resurselor la imagini
(13)-Definire Watermark - text care va aparea scris pe toate foile (în fundal)
Dim clsPDF As New clsCrearePDF (1)
Dim strFisier As String (2)
Dim i As Single
strFisier = App.Path & "\Kreo PDF.pdf" (3)
With clsPDF (4)
.Titlu = "Kreo PDF" (5)
.ModScara = pdfCentimetru (6)
.MarimeHârtie = pdfA4 (7)
.Margini = 0 (8)
.Orientare = pdfPortret (9)
.InitializarePDF (strFisier) (10)
.Font "Font1", "Times New Roman" (11)
.Font "Font2", "Arial", pdfItalic (11)
.Font "Font3", "Courier New" (11)
.FontStandard "Font4","Courier New", pdfBold (11)
.Imagine "Imag2", App.Path & "\2.bmp" (12)
.StartObject "1", pdfToatePaginile (13)
.ColorFill -240
.TextScaling 120
.Text 6, 4, "Kreo PDF", "Font2", 120, , 60 .ColorFill 0
.EndObject (13)
2.2 Initializarea primei pagini
(14)-Initializarea primei pagini a documentului: folosind sintaxa necesara tipului de fisier
PDF se incrementeaza numarul de pagini, se selecteaza pagina nou creata si verificam
daca
exista declarat un watermark – text care va aparea ca fundal pe toate paginile – si îl inseram
daca exista; setam pe 0 distanta între caractere, cuvinte, si setam marimea textului la 100%
(adica marimea lui naturala)
(15)-Sintaxa pentru afisarea textului (în cadrul clasei, pentru metode): se dau coordonatele de
insertie, textul ce va aparea în document, fontul si marimea acestuia si eventual tipul de
aliniere (implicit este aliniere la stânga). Scrierea textului în fisier (PDF): Întâi verificam
tipul
de aliniere si în functie de acesta setam punctul de insertie, folosind sintaxa necesara tipului
de fisier PDF se scrie fontul, marimea fontului si textul (Aceasta metoda de inserare a
textului
.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)
poate fi citita la sfârsitul lucrarii – prezinta inclusiv sintaxa necesara formatului PDF
pentru
inserarea de text într-un astfel de document)
(16)-Marirea sau micsorarea textului scris cu acelasi font
(17)-Afisarea unui text rotit si cu variatie a culorii. Afisam textul doar pentru valorile <= cu
60 si >= cu 240
(18)-Distanta dintre caractere
(19)-Inchidem pagina
2.3 Initializarea celei de a doua pagini
(20)-Desenare dreptunghi
(21)-Inserare imagine în fisier PDF
(22)-Desenare dreptunghi plin de culoare albastra
(23)-Desenare cerc de culoare rosie
(24)-Arce de cerc în jurul cercului rosu
(25)-Închiderea documentului PDF
2.4 Sintaxa PDF
În continuare voi prezenta metoda utilizata pentru scrierea textului într-un document
PDF, metoda continuta în clasa clsCrearePDF. Aceasta metoda arata cum este scrisa
informatia (în cazul nostru textul) într-un fisier PDF.
.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 inserata”, “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 (19)
.ÎnchiderePDF (25)
End With (4)
(26)-Numele metodei cu parametrii ei: coordonatele x si y, textul ce urmeaza sa fie scris,
numele fontului, marimea fontului si optional tipul de aliniere, alinierea implicita fiind
aliniearea la stânga
(27)-În functie de tipul alinierii setam punctul de insertie a textului
(28)-Cele cinci linii de cod prezinta sintaxa fisierului PDF si modul de scriere a informatiei
în
acest tip de fisier
(29)-Sfârsitul functiei
2.5 Interfata programului
Pentru acest program am utilizat o interfata grafica cât mai simpla si cât mai usor de
folosit pentru o rapiditate în folosire. Acest program la apasarea butonului “Creaza PDF”
creaza un document PDF de aproximativ 100 kb care demonstreaza diverse optiuni: alinieri
diferite ale textului, rotiri de text, marirea si micsorarea unui text scris cu aceeasi marime
de
font, lasarea de spatiu între caractere, inserarea de imagini si crearea de elemente grafice.
Dupa deschiderea programului sunt suficiente doua apasari ale tastei enter pentru a se
crea documentul PDF si a se iesi din program (dupa primul enter focus-ul se muta pe
“Iesire”).
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 (27)
Case pdfAliniereStanga
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
2.6 Rezultatul rularii: fisierul PDF
* Andrei Creosteanu, student, Universitatea Titu Maiorescu – Bucuresti, e-mail: andrei.creo@gmail.com

S-ar putea să vă placă și