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