Konwersja pliku tekstowego na format PDF

Transkrypt

Konwersja pliku tekstowego na format PDF
Zadanie z Programowania obiektowego
Napisać program dokonujący konwersji pliku tekstowego na plik w formacie PDF. Należy
przygotować kod tak aby, wygenerowany plik mógł być później wczytany i można byłoby
wykonywać na nim operacje np. łączenie kilku plików w jeden, itp.
Zrealizować kod tak aby obiektowa struktura pliku w formacie PDF była odzwierciedlona w
kodzie źródłowym w formie obiektów. Przykładowy plik w formacie PDF zawierający jedną
stronę z napisem Programowanie obiektowe wypisane fontem Helvetica o rozmiarze 14 na
stronie A4 (tzn. o rozmiarze 595 x 842 punktów) i podkreślone linią w kolorze czerwonym
wygląda następującą:
%PDF-1.4
2 0 obj << /Type /Catalog /Pages 1 0 R >> endobj
1 0 obj << /Type /Pages /Count 1 /Kids [7 0 R ] >> endobj
7 0 obj << /Parent 1 0 R /Type /Page /Resources 5 0 R
/Contents 6 0 R /MediaBox [0 0 595 842] >> endobj
3 0 obj << /BaseFont /Helvetica /Subtype /Type1
/Type /Font /Name /F1 >> endobj
4 0 obj << /F1 3 0 R >> endobj
5 0 obj << /Font 4 0 R /ProcSet [/PDF] >> endobj
6 0 obj << /Length 85 >>
stream
BT /F1 14 Tf 72 780 Td (Programowanie obiektowe) Tj ET
1 0 0 RG 72 770 m 520 770 l S
endstream
endobj
trailer << /Root 2 0 R >>
%%END
Plik w formacie PDF zawiera numerowane obiekty identyfikowane przez liczbę porządkową i
liczbę generującą (zwykle 0) a ich zawartość umieszczona jest pomiędzy słowami
kluczowymi obj i endobj. Pola wewnątrz obiektu reprezentują pary klucz i wartość umieszczone
w słowniku rozpoczynającym się znakami << i kończącym >>. Obiekty tworzą graf, (którego
początek jest opisany na końcu pliku w nienumerowanym obiekcie trailer) z odniesieniami w
postaci identyfikujących je liczb zakończonych literą R. Obiekt zawierający opis strony
oprócz słownika ma dodatkowo strumień poleceń. W przedstawionym przykładzie zawartość
strony znajduje się w obiekcie 6 0 zawierającym w swoim strumieniu polecenia umieszczenia
tekstu (pomiędzy znacznikami BT i ET), zmiany koloru (1 0 0 RG) oraz narysowania linii (mmove, l-line i S-stroke). Miejsce umieszczania elementów na stronie podawane jest punktach
(1/72 cala) względem początku układu znajdującego się w lewym dolnym rogu strony.
Więcej informacji o strukturze pliku w formacie PDF można znaleźć na stronach:
http://www.adobe.com/content/dam/Adobe/en/technology/pdfs/PDF_Day_A_Look_Inside.pdf
http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf