Dynamiczne. generowanie. dokumentów PDF. Michał Dudkiewicz. jaymz@mat.umk.pl. V Konferencja Informatyka w Edukacji 3-6 lipca 2008



Podobne dokumenty
Edytor tekstu OpenOffice Writer Podstawy

I. Formatowanie tekstu i wygląd strony

7. Dynamiczne generowanie grafiki

EDYCJA TEKSTU MS WORDPAD

SPECYFIKACJA SKÓREK NAPIPROJEKT

Tworzenie i edycja dokumentów w aplikacji Word.

KATEGORIA OBSZAR WIEDZY

Obsługa mapy przy użyciu narzędzi nawigacji

Sylabus Moduł 2: Przetwarzanie tekstów

Formatowanie komórek

Wstawianie nowej strony

Zadanie 9. Projektowanie stron dokumentu

INTERSTENO 2013Ghent World championship professional word processing

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

8. Dynamiczne generowanie grafiki, cz. 2

OGÓLNE WYMAGANIA DOTYCZĄCE SPOSOBU PRZYGOTOWANIA PRAC DYPLOMOWYCH (wytyczne dla Studentów)

KATEGORIA OBSZAR WIEDZY

Laboratorium nr 1 L A TEX

Adobe InDesign lab. 2 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Dokument wielostronicowy Książka Eksport do PDF... 7.

Podstawy technologii WWW

1. Otwórz skoroszyt Zadania 03.xlsx i zapisz pod nową nazwą: Wykonane zadanie 3.xlsx.

Instrukcja dla autorów monografii

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 5.0

Word ćwiczenia ZADANIE 1

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2016 CZĘŚĆ PRAKTYCZNA

Laboratorium 1: Szablon strony w HTML5

Zaznaczanie komórek. Zaznaczenie pojedynczej komórki polega na kliknięciu na niej LPM

WAŻNE! colour.me Google Fonts tutaj

Wymagania dotyczące pracy dyplomowej

URL:

KILKA WSKAZÓWEK ZWIĄZANYCH ZE SKŁADEM TEKSTU PRACY LICENCJACKIEJ (MAGISTERSKIEJ) I KSIĄŻKI W PROGRAMIE MICROSOFT WORD 2010

Podstawowe znaczniki języka HTML.

1. Przypisy, indeks i spisy.

TYTUŁ PRACY 18 pkt, bold

Tworzenie infografik za pomocą narzędzia Canva

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2016 CZĘŚĆ PRAKTYCZNA

CSS. Kaskadowe Arkusze Stylów

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

Technologia Informacyjna. semestr I, studia niestacjonarne I stopnia Elektrotechnika rok akademicki 2012/2013 Pracownia nr 2 mgr inż.

ECDL/ICDL Przetwarzanie tekstów Moduł B3 Sylabus - wersja 6.0

Dodatkowe pakiety i polecenia L A TEXowe

PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE CZĘŚĆ PRAKTYCZNA

Zadanie 3. Praca z tabelami

Ćwiczenie 1 Automatyczna animacja ruchu

1. Druk akcydensowy wizytówki

Uwagi na temat formatowania tekstu referatów konferencji PLOUG

Copyright wersji angielskiej: The European Computer Driving Licence Foundation Ltd. Copyright wersji polskiej: Polskie Towarzystwo Informatyczne

Edytor tekstu OpenOffice Writer Podstawy

PORADNIK Zasady i zalecenia pracy z plikami oraz tekstem na stronach nowego portalu SGH (na platformie SharePoint)

Dodanie nowej formy do projektu polega na:

Grafika komputerowa. Zajęcia IV

Moduł IV Internet Tworzenie stron www

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

1. Opis okna podstawowego programu TPrezenter.

Dokumentacja WebMaster ver 1.0

INSTRUKCJA CIĘCIA PO KONTURZE Z WYKORZYSTANIEM EASYSIGN ORAZ PLOTERA TNĄCEGO ULTIMA

Kolory elementów. Kolory elementów

TWORZENIE DANYCH DO DRUKU W PROGRAMIE MICROSOFT POWERPOINT 2013

Arkusz strona zawierająca informacje. Dokumenty Excela są jakby skoroszytami podzielonymi na pojedyncze arkusze.

Tabele. Przykład 15a.htm. <HTML><HEAD><TITLE> Cennik</TITLE></HEAD><BODY><H3>Cennik</H3> <TABLE BORDER="1"> <TR>

1. Umieść kursor w miejscu, w którym ma być wprowadzony ozdobny napis. 2. Na karcie Wstawianie w grupie Tekst kliknij przycisk WordArt.

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

CorelDRAW. wprowadzenie

Przewodnik po soczewkach

Temat 10 : Poznajemy zasady pracy w edytorze tekstu Word.

Projektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe

OKNO NA ŚWIAT - PRZECIWDZIAŁANIE WYKLUCZENIU CYFROWEMU W MIEŚCIE BRZEZINY

a. Wersja podstawowa pozioma

Strukturę naszego Biuletynu tworzą następujące elementy:

na podstawie modelu 3D

Języki programowania wysokiego poziomu. CSS Wskazówki

Jak dodać własny szablon ramki w programie dibudka i dilustro

Formatowanie czcionki polega na zmianie jej wyglądu, np. kroju i stylu pisma, wielkości,

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1

1. Otwórz skoroszyt Zadania 04.xlsx i zapisz otwarty skoroszyt pod nazwą: Wykonane zadanie 4.xlsx.

Formatowanie dokumentu

Projekt wykonany w programie CAD Decor Pro 3. Do utworzenia dokumentacji wykonawczej klikamy przycisk Dokumentacja.

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

Nazwa kwalifikacji: Tworzenie aplikacji internetowych i baz danych oraz administrowanie bazami Oznaczenie kwalifikacji: E.14 Numer zadania: 01

KATALOG SYMBOLI STOSOWANYCH W KOMUNIKACJA MIEJSKIEJ W BYDGOSZCZY ORAZ ZASADY ICH ROZMIESZCZANIA RAFAŁ MALEWSKI

Technologie informacyjne. semestr I, studia niestacjonarne I stopnia Elektrotechnika rok akademicki 2013/2014 Pracownia nr 2 dr inż.

Kalendarz. Planuj lepiej. Po prostu.

Dlaczego stosujemy edytory tekstu?

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Przygotowanie plików PDF do druku

Użycie przestrzeni papieru i odnośników - ćwiczenie

Pasek menu. Ustawienia drukowania

Dodatek A. Palety. QuarkXPress 4.1. Projekty praktyczne. Podstawowe palety

GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18

Tworzenie stron internetowych w kodzie HTML Cz 5

OPIS FORM REKLAMOWYCH

Fragment tekstu zakończony twardym enterem, traktowany przez edytor tekstu jako jedna nierozerwalna całość.

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

Wymagania dotyczące pracy dyplomowej. Spis treści

Ćwiczenie 6 Animacja trójwymiarowa

Prezentacje multimedialne w Powerpoint

STRONY INTERNETOWE mgr inż. Adrian Zapała

1.5. Formatowanie dokumentu

Jeżeli pole Krawędź będzie zaznaczone uzyskamy obramowanie w całej wstawianej tabeli

Transkrypt:

<?php require('fpdf.php'); $nazwa_pliku='gimnazjum.csv'; $plik=fopen($nazwa_pliku,"r"); $pdf=new FPDF('P','mm','A4'); $pdf->addfont('mtcorsva','b','mtcorsva.php'); $pdf->addfont('my_arial','','arial.php'); $pdf->addfont('my_arialbd','','arialbd.php'); Dynamiczne for($i=0;$i<3;$i++) { $kategoria*2+='szkoła ponadgimnazjalna'; $szkola*0+='szkoła Podstawowa nr 2 generowanie im. Marii Dąbrowskiej w Ostrzeszowie'; $szkola[1]='gimnazjum nr 16 w Szczecinie'; $szkola*2+='zespół Szkół Zawodowych nr 1 im. Józefa Psarskiego w Ostrołęce'; dokumentów PDF $koncowka=substr($imie,-1,1); if($koncowka=='a') $kto='została laureatką'; else $kto='został laureatem'; } fclose($plik); $pdf->output();?> Michał Dudkiewicz jaymz@mat.umk.pl

Format PDF PDF (Portable Document format) format plików służący do prezentacji, przenoszenia i drukowania treści tekstowo-graficznych, stworzony i promowany przez firmę Adobe Systems. Pierwsza specyfikacja formatu PDF-1.0 została opublikowana przez Adobe w 1993 roku. Aktualna wersja to PDF-1.7 opublikowana w 2006 roku. 29 stycznia 2007 firma Adobe udostępniła całkowicie dokumentację formatu PDF, w celu opublikowania PDF jako standardu ISO. 2

Format PDF budowa i zawartość pliku Nagłówek (header) Ciało dokumentu (body) Plik PDF Obiekty Tablica referencji (Cross Reference Table) Trailer Struktura pliku Struktura dokumentu Zawartośd pliku Należy pamiętad, że plik PDF ma dośd skomplikowaną budowę, m.in. ze względu na różne rodzaje danych zawartych w pliku (tekstowe i binarne np.: pliki graficzne). 3

Format PDF - budowa Pierwsza linia pliku PDF to nagłówek identyfikujący wersję specyfikacji PDF, z której korzysta dokument np.: %PDF-1.7 Ciało dokumentu zawiera sekwencje obiektów występujących w dokumencie. Tablica referencji (XREF) pozwala na swobodny dostęp do obiektów pliku położonych w ciele dokumentu (zawiera listę obiektów). Trailer zawiera informacje o rozmieszczeniu obiektów tablicy referencji (dlatego aplikacja czytająca PDF powinna odczytywad dokument od kooca). Zakooczenie %%EOF 4

Biblioteka FPDF FPDF darmowa biblioteka przeznaczona dla języka PHP, zawierająca funkcje umożliwiające wygenerowanie pliku PDF. Biblioteka umożliwia tworzenie własnych rozszerzeo, znacznie zwiększających możliwośd generowania dowolnych nawet bardzo złożonych dokumentów. http://www.fpdf.org Autorem biblioteki jest Olivier Plathey (olivier@fpdf.org) 5

Biblioteka FPDF FPDF jest biblioteką obiektową, dzięki temu korzystanie z niej jest bardzo łatwe i ogranicza się głównie do wywołania odpowiednich metod. Przykład (utworzenie obiektu FPDF, ustawienie rozmiaru i orientacji dokumentu, oraz wybór jednostek metrycznych używanych w dokumencie) $pdf = new FPDF('L','cm','A4'); $pdf->addpage(); FPDF umożliwia wygenerowanie pliku w formacie PDF bezpośrednio do przeglądarki Internetowej lub zapisanie do zewnętrznego pliku. 6

Biblioteka FPDF - schemat użycia Źródło danych Plik tekstowy Plik XLS, CSV, Serwer WWW + PHP + biblioteka FPDF Przeglądarka Internetowa Baza danych (Access, mysql, ) 7

Biblioteka FPDF i POLSKIE znaki diakrytyczne Biblioteka FPDF zawiera tylko kilka podstawowych czcionek jak: courier, times, helvetica, arial, symbol, sans serif z kodowaniem zachodnioeuropejskim (bez polskich ogonków ). Dodawanie nowej czcionki odbywa się w trzech etapach: 1. wygenerowanie pliku *.afm na podstawie czcionki TrueType (TTF) przy pomocy programu ttf2pt.exe ttf2pt1.exe -a czcionka.ttf czcionka W rezultacie zostanie utworzony plik czcionka.afm 8

Biblioteka FPDF i POLSKIE znaki diakrytyczne 2. wygenerowanie plików czcionka.php i czcionka.z za pomocą funkcji dostarczonej wraz z biblioteką FPDF MakeFont(czcionka_ttf,czcionka_afm,kodowanie); czcionka_ttf - nazwa oryginalnego pliku z czcionką w formacie TTF czcionka_afm - nazwa pliku z czcionką w formacie afm kodowanie - nazwa pliku z mapą znaków danej strony kodowej (cp1250.map - polskie znaki Windows, iso-8859-2 -polskie znaki ISO) 9

Biblioteka FPDF i POLSKIE znaki diakrytyczne 3. Użycie nowej czcionki AddFont(nazwa,styl,plik_czcionki); SetFont(nazwa,styl,rozmiar); nazwa - nasza nazwa czcionki styl - pogrubiona (B), pochylona (I), podkreślona (U) plik_czcionki - wygenerowany wcześniej plik czcionka.php rozmiar - rozmiar czcionki Przykład: $pdf->addfont( czcionka,, czcionka.php ); $pdf->setfont( czcionka,,34); 10

PHP i FPDF sposoby generowania pliku PDF Bezpośrednio do przeglądarki Internetowej: $pdf -> Output(); Zapis do zewnętrznego pliku: $pdf -> Output('plik.pdf'); 11

Tworzenie dokumentu PDF Tworzenie nowego dokumentu PDF new FPDF(orientacja, jednostki, format); orientacja: L - landscape (pozioma), P - portrait (pionowa) jednostki: pt - punkt 1/72 cala, mm, cm, in cale format: A3, A4, A5, Letter, Legal Przykład: $pdf = new FPDF('L', 'cm', 'A5'); Uwaga! jeśli nie podamy parametrów to domyślnie jest P, mm, A4 12

Marginesy w pliku PDF Ustawienia marginesów w dokumencie SetMargins(lewy, górny, prawy); SetLeftMargin(lewy); SetRightMargin(prawy); SetTopMargin(górny); Przykład: $pdf->setmargins(1,0.5); Uwaga! Domyślne wartości to 1 cm. Jeśli podamy tylko lewy i górny margines to prawy będzie miał taką samą wartośd jak lewy. Wartości wyrażone są w takich jednostkach jakie zdefiniowaliśmy przy tworzeniu dokumentu. 13

Marginesy w pliku PDF Automatyczny podział strony i dolny margines SetAutoPageBreak(auto,dolny_margines); auto: 0 - wyłączony automatyczny podział stron 1 - włączony automatyczny podział stron margines: rozmiar dolnego marginesu Przykład: $pdf->setautopagebreak(1,1.5); Uwaga! Wyłączenie automatycznego podziału strony spowoduje, że nie zostanie utworzona nowa strona, nawet jeśli zawartośd strony nie będzie się mieścid na tej stronie. Domyślnie ustawiony jest margines 2cm. 14

Elementy pliku PDF nowa strona, tekst Utworzenie nowej strony AddPage(); Umieszczenie tekstu w dowolnym miejscu strony Text(x,y,napis); x, y - pozycja na stronie, napis - dowolny napis Nowa linia Przykład: Ln(); $pdf->text(1,5, Text ); 15

Elementy pliku PDF - komórka Komórka Cell(s,w,napis,ramka,p,a,f,link); s - szerokośd, w - wysokośd, napis - zawartośd komórki ramka: 0 - nie, 1 tak, lub tylko krawędź (L,R,T,B); link - hiperłącze a - wyrównanie zawartości: L - lewo, C - wycentrowane, P - prawo f - wypełnienie komórki tłem: 0 - nie, 1 - tak p - pozycja w dokumencie po umieszczeniu komórki: 0 - na prawo, 1 - w nowej lini, 2 - bezpśrednio pod Przykład: $pdf->cell(0,1, Napis, LT ); Uwaga! Jeśli jako szerokośd podamy 0 to komórka rozciągnie się do prawego marginesu. 16

Elementy pliku PDF multikomórka Komórka (automatyczny podział zawartości lub po napotkaniu znaku *ENTER+) MultiCell(s,w,napis,ramka,a,f); s - szerokośd, w - wysokośd, napis - zawartośd komórki ramka: 0 - nie, 1 tak, lub L - tylko lewa krawędź, R - tylko prawa krawędź, T - tylko górna krawędź, B - tylko dolna krawędź a - wyrównanie zawartości: L - lewo, C - wycentrowane, P - prawo f - wypełnienie komórki tłem: 0 - nie, 1 - tak Przykład: $pdf->multicell(0,5, Dzień Dobry! ); 17

Elementy pliku PDF plik graficzny Umieszczanie pliku z obrazem w dokumencie Image(plik,x,y,s,w,typ,link); plik - nazwa pliku (akceptowane pliki *.jpg, *.png) x, y - położenie na stronie s, w - szerokośd, wysokośd (wartośd 0 - dostosuj automatycznie) typ - możliwe wartości: JPG, JPEG, PNG jeśli nie jest podany to typ jest identyfikowany na podstawie rozszerzenia pliku link hiperłącze Przykład: $pdf->image( plik.jpg,10,20,12,0,jpg); 18

Definiowanie kolorów Definiowanie kolorów tekstu, linii, wypełnienia SetTextColor(r,g,b); - kolor tekstu SetFilColor(r,g,b); - kolor wypełnienia SetDrawColor(r,g,b); - kolor krawędzi, linii r, g, b wartości kolorów czerwonego, zielonego, niebieskiego (0..255) Przykład: $pdf->settextcolor(0,255,0); 19

Ustalanie pozycji w dokumencie Przemieszczanie się w dokumencie: SetXY(x,y); SetX(x); SetY(y); x, y - wartości odpowiednio x: pozioma, y: pionowa Przykład: $pdf->setxy(2,5.23); Uwaga! Jeśli podamy ujemną wartośd przy SetY() to wówczas będzie ona liczona od dolnego brzegu strony w górę. Analogicznie dla SetX() wartośd będzie liczona od prawego brzegu w lewo. 20

Właściwości dokumentu Właściwości dokumentu SetAuthor(autor); SetTitle(tytul); SetSubject(tematyka); SetKeywords(slowa); SetCreator(program); SetDisplayMode(zoom,strony); SetCompression(bool); zoom - fullpage, fullwidth, liczba np. 0.5 (50%) strony - ilośd stron: single, continous, two Uwaga! Kompresja jest domyślnie włączona, daje zysk około 50%. 21

Hiperłącze Hiperłącze Link(x,y,link); x, y - pozycja na stronie link hiperłącze Przykład: $pdf->link(1,5, www.wp.pl ); Uwaga! Hiperłącze nie jest widoczne. Można je wykorzystad do umieszczenia na dowolnym obiekcie np.: obrazie. 22

Odnośnik wewnątrz dokumentu Łącze wewnątrz dokumentu AddLink(); SetLink(link,y,strona); Funkcja AddLink() - tworzy wewnętrzne łącze i zwraca jego identyfikator Funkcja SetLink() - definiuje stronę (strona), pozycję na stronie (y) na którą wskazuje łącze (link) $link=$pdf->addlink();... $pdf->setlink($link); $pdf->cell(0,1,'dziś jest ładna pogoda'); 23

Rozszerzanie możliwości biblioteki FPDF Biblioteka FPDF pozwala wygenerowad w pełni funkcjonalny dokument PDF, jednak największe możliwości uzyskamy tworząc własne rozszerzenia. include( fpdf.php ) nasz_fpdf.php include( nasz_fpdf.php ) generuj.php fpdf.php 24

PDF ogólne parametry linii d - styl linii Przykład [2 1] 0 d [3] 0 d [] 0 d J rodzaj zakooczenia (0,1,2) Przykład 0 J 1 J 2 J 25

PDF ogólne parametry linii w grubośd linii, np.: 5 w j sposób połączenia linii (0,1,2) Przykład 0 j 1 j 2 j 26

PDF konstrukcja ścieżek m rozpoczyna ścieżkę w punkcie x,y l linia od aktualnej pozycji do punktu x,y h zamyka ścieżkę Przykład 30 20 m 200 100 l 30,20 200,100 27

PDF konstrukcja ścieżek x y w h re prostokąt o lewym górnym wierzchołku x,y oraz szerokości w i wysokości h Przykład 30,20 30 20 200 100 re Uwaga! Prostokąt można również narysowad przy pomocy linii 30 +200,20+100 30 20 m 230 20 l 230 120 l 30 120 l h 28

PDF konstrukcja ścieżek x 1 y 1 x 2 y 2 x 3 y 3 c krzywa Beziera generowana przez wielomian R(t) = (1-t) 3 P 0 + 3t(1-t) 2 P 1 + 3t 2 (1-t)P 2 + t 3 P 3 t zmienia się od 0.0 do 1.0, R(0)=P 0, R(1)=P 3 P 1 (x 1,y 1 ) P 2 (x 2,y 2 ) P 3 (x 3,y 3 ) P 0 29

PDF konstrukcja ścieżek x 2 y 2 x 3 y 3 v krzywa Beziera z jednym punktem kontrolnym (P 2 ) P 2 (x 2,y 2 ) P 0 P 3 (x 3,y 3 ) 30

PDF konstrukcja ścieżek x 1 y 1 x 3 y 3 y krzywa Beziera z jednym punktem kontrolnym (P 1 ) P 1 (x 1,y 1 ) P 0 P 3 (x 3,y 3 ) 31

PDF rysowanie ścieżek S rysowanie ścieżki linią (wygląd linii zależy od wcześniej ustalonych parametrów: rozmiaru, koloru, stylu) s to samo co h S (zamknięcie ścieżki i narysowanie jej za pomocą linii) f,f*,b,b*,b,b* wypełnienie ścieżki kolorem Kolor linii r g b RG ustawia kolor linii (model rgb) c m y b K ustawia kolor linii (model cmyk) gray G odcienie szarości (od 0.0 czarny do 1.0 biały) Kolor wypełnienia (analogicznie jak dla linii, polecenia pisane małą literą) r g b rg, c m y b k, gray g 32

PDF przekształcenia geometryczne Przekształcenia definiowane są za pomocą ciągu poleceo: q a b c d e f cm Q gdzie a b c d e f definiuje macierz przekształcenia: translacja 1 0 0 1 tx ty obrót cosα sinα sinα cosα 0 0 pochylenie 1 tgα tgβ 1 0 0 skalowanie sx 0 0 sy 0 0 33

PDF przekształcenia geometryczne Przykład Translacja punktu A=(1,2) o wektor t=<-1,2> 1 0 A' A 0 1 txty 1 0 A' [121] 0 1 [ 0 4 ] 12 34

Polecenia PDF w bibliotece FPDF (przykład) Polecenia PDF przekazujemy do biblioteki FPDF za pomocą funkcji sprintf $this->out(sprintf( POLECENIA PDF )); Przykład Funkcja rysująca krzywą Beziera w kolorze czerwonym linią przerywaną function krzywa(){ $this->_out(sprintf(' [5 5] 0 d 1 0 0 RG 20 400 m 20 350 70 300 120 300 c S')); } 35

FPDF - zakończenie http://www.fpdf.org 36