PHP: ClibPDF f�ggv�nyek - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links 
search for in the  
previousmethod_existscpdf_add_annotationnext
Last updated: Fri, 30 Aug 2002
view the printer friendly version or the printer friendly version with notes or change language to English | Brazilian Portuguese | Chinese | Czech | Dutch | Finnish | French | German | Italian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Swedish | Turkish

X. ClibPDF f�ggv�nyek

A ClibPDF seg�ts�g�vel PDF dokumentumokat lehet l�trehozni PHP-vel. Ez el�rhet� a -n�l, de nem szabad haszn�lat� (free) szoftver. Miel�tt dolgozni kezdesz a ClibPDF-fel tan�csos elolvasnod a licence-t. Ha nem fogadod el, haszn�lhatod Thomas Merz pdflib-j�t, amelyik szint�n kiv�l�an alkalmazhat�. A ClibPDF �s az API hasonl� Thomas Merz pdflib-j�hez de a FastIO-nak k�sz�nhet�en a ClibPDF gyorsabb, �s r�ad�sul kisebb dokumentumokat �ll�t el�. Ez val�szin�leg v�ltozni fog a pdflib 2.0 verzi�j�ban. Egy egyszer� benchmark (a pdflib 2.0-b�l php-ba ford�tott a pdfclock.c p�lda) nem mutat k�l�nbs�get a sebess�gben. A f�jlm�ret is hasonl�, ha kikapcsoljuk a t�m�r�t�st. Teh�t pr�b�ld ki mindkett�t �s n�zd meg melyik jobb neked.

Ezt a dokument�ci�t aj�nlatos a ClibPDF k�zik�nyvvel egy�tt olvasni mivel az a f�ggv�nyeket nagyobb r�szletess�ggel magyar�zza.

Sok f�ggv�ny az alap ClibPDF-ben, a PHP modulban, valamint a pdflib-ben a ugyanazzal a n�vvel rendelkezik. Az �sszes f�ggv�ny, kiv�ve a cpdf_open() els� param�terek�nt a dokumentum kezel�j�t (handler) k�ri. Jelenleg ez a kezel�t a PHP bels�leg nem haszn�lja, mivel a ClibPDF nem t�mogatja t�bb PDF dokumentum egyidej� l�trehjoz�s�t. Ezt most ne is pr�b�ld ki, mert az eredm�nyt nem lehet el�re megj�solni. Nem tudhatom, hogy a t�bbsz�las k�rnyezetben ez milyen k�vetkezn�nyekkel j�rna. A ClibPDF szerz�je szerint ez v�ltozni fog a k�vetkez� v�ltozatn�l (az �r�s idej�n a jelenlegi verzi� az 1.10). Ha m�gis sz�ks�ged van erre a lehet�s�gre, haszn�ld a pdflib modult.

Megjegyz�s: A cpdf_set_font() f�ggv�ny megv�ltozott a PHP 3 �ta, hogy t�mogassa az �zsiai bet�k�szleteket. Az encoding param�ter m�r nem egy integer, hanem egy string!

A pdflib-el szemben van egy nagy el�nye a ClibPDF-nek. PDF doumentumokat tud l�trehozni a mem�ri�ban ideiglenes f�jlok haszn�lata n�lk�l. Lehet�s�get ad tov�bb� arra, hogy koordin�t�kat adj �t egy el�re defini�lt m�rt�kegys�gben. Ez egy nagyon j� lehet�s�g de szimul�lhat� a pdf_translate()-el.

A legt�bb f�ggv�ny egyszer�en haszn�lhat�. A legnehezebb r�sz val�sz�n�leg egy nagyon egyszer� PDF l�trehoz�sa. A k�vetkez� p�lda seg�thet az elindul�sban. Ez egy egy oldalas dokumentumot k�sz�t. Az oldal tartalmazza a "Times-Roman" sz�veget egy 30 pont m�ret� k�rvonalas bet�t�pusssal. A sz�veg al�h�zott.

P�lda 1. Egyszer� ClibPDF p�lda

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_moveto($cpdf, 50, 740);
cpdf_lineto($cpdf, 330, 740);
cpdf_stroke($cpdf);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

A pdflib csomag egy �sszetettebb p�ld�t tartalmaz, amely egy oldalsorozatot �ll�t el� egy anal�g �r�val. Ez itt a ClibPDF kiterjeszt�st haszn�l� PHP-be konvert�lt v�ltozat:

P�lda 2. pdfclock p�lda a pdflib 2.0 csomagb�l

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php3");
cpdf_set_title($pdf, "Analog Clock");
  
while($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);
  
  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */
  
  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);
  
  /* minute strokes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6)
    {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
    }
  
  cpdf_restore($pdf);
  cpdf_save($pdf);
 
  /* 5 minute strokes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30)
  {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }

  $ltime = getdate();

  /* draw hour hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw minute hand */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);

  /* draw second hand */
  cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
  cpdf_setlinewidth($pdf, 2);
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
  cpdf_moveto($pdf, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);

  /* draw little circle at center */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);

  cpdf_restore($pdf);

  cpdf_finalize_page($pdf, $pagecount+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>
Tartalom
cpdf_add_annotation -- Megjegyz�s hozz�f�z�se
cpdf_add_outline -- K�nyvjelz�t helyez el az aktu�lis oldalon
cpdf_arc -- �vet rajzol
cpdf_begin_text -- Sz�veg szekci�t kezd el
cpdf_circle -- K�rt rajzol
cpdf_clip -- Kiv�gja az aktu�lis alakzatot
cpdf_close -- Bez�rja a pdf dokumentumot
cpdf_closepath_fill_stroke -- Bez�rja, kit�lti �s k�rvonalazza az aktu�lis alakzatot
cpdf_closepath_stroke -- Bez�rja az alakzatot �s k�rvonalat rajzol az alakzat ment�n
cpdf_closepath -- Befejez egy alakzatot
cpdf_continue_text -- Sz�veget helyez a k�vetkez� sorba
cpdf_curveto -- G�rb�t rajzol
cpdf_end_text -- Befejezi a sz�veg szekci�t
cpdf_fill_stroke -- Kit�lti �s k�rvonalazza az aktu�lis alakzatot
cpdf_fill -- Kit�lti az aktu�lis alakzatot
cpdf_finalize_page -- Befejezi az oldalt
cpdf_finalize -- Befejezi a dokumentumot
cpdf_global_set_document_limits -- A pdf dokumentumra vonatkoz� korl�toz�sok be�ll�t�s�ra szolg�l
cpdf_import_jpeg -- Megnyit egy JPEG k�pet
cpdf_lineto -- Egyenest rajzol
cpdf_moveto -- Be�ll�tja az aktu�lis pontot
cpdf_newpath --  �j alakzatot kezd
cpdf_open -- Megnyit egy �j pdf dokumentumot
cpdf_output_buffer -- A mem�riapufferb�l kiiratja a pdf dokumentumot
cpdf_page_init -- �j oldalt kezd
cpdf_place_inline_image -- K�pet helyez el az oldalon
cpdf_rect -- T�glalapot rajzol
cpdf_restore -- Vissza�ll�tja a kor�bban elmentett k�rnyezetet
cpdf_rlineto -- Egyenest rajzol
cpdf_rmoveto -- Be�ll�tja az aktu�lis pontot
cpdf_rotate_text --  Sets text rotation angle
cpdf_rotate -- Be�ll�tja a forgat�st
cpdf_save_to_file -- A pdf dokumentumot f�jlba �rja
cpdf_save -- Elmenti az aktu�lis k�rnyezetet
cpdf_scale -- Be�ll�tja a m�retez�st
cpdf_set_action_url --  Sets hyperlink
cpdf_set_char_spacing -- Be�ll�tja a bet�t�vols�got
cpdf_set_creator -- A pdf dokumentumban a l�trehoz�(creator) mez�t �ll�tja
cpdf_set_current_page -- Be�ll�tja az aktu�lis oldalt
cpdf_set_font_directories --  Sets directories to search when using external fonts
cpdf_set_font_map_file --  Sets fontname to filename translation map when using external fonts
cpdf_set_font -- Kiv�laszja az aktu�lis bet�t�pust �s m�retet
cpdf_set_horiz_scaling -- Be�ll�tja a sz�veg v�zszintes m�retez�s�t
cpdf_set_keywords -- Be�ll�tja a pdf dokumentum kulcsszavak mez�j�t
cpdf_set_leading -- Be�ll�tja a sz�veg sort�vols�g�t
cpdf_set_page_animation -- Be�ll�tja az oldalak k�zti �tmeneti id�tartamot
cpdf_set_subject -- Be�ll�tja a pdf dokumentum t�rgy mez�j�t
cpdf_set_text_matrix -- Be�ll�tja a sz�vegm�trixot
cpdf_set_text_pos -- Be�ll�tja a sz�vegpoz�ci�t
cpdf_set_text_rendering -- Meghat�rozza hogyan legyen a sz�veg kirajzolva
cpdf_set_text_rise -- Be�ll�tja a sz�veg emelked�s�t
cpdf_set_title -- A pdf dokumentumban a c�m(title) mez�t �ll�tja
cpdf_set_viewer_preferences --  How to show the document in the viewer
cpdf_set_word_spacing -- Be�ll�tja a sz�t�vols�got
cpdf_setdash -- Be�ll�tja a szaggatott vonalmint�t
cpdf_setflat -- Be�ll�tja a simas�got
cpdf_setgray_fill -- Sz�rke �rt�kre �ll�tja a kit�lt� sz�nt
cpdf_setgray_stroke -- Sz�rke �rt�kre �ll�tja a k�rvonalrajzol� sz�nt
cpdf_setgray -- Sz�rke �rt�kre �ll�tja a rajzol� �s kit�lt� sz�nt
cpdf_setlinecap -- Be�ll�tja a vonalcs�cs param�tert
cpdf_setlinejoin -- Be�ll�tja a vonalak kapcsol�d�si m�dj�t
cpdf_setlinewidth -- Be�ll�tja a vonalvastags�got
cpdf_setmiterlimit -- Be�ll�tja a hegyessz�g hat�r�t
cpdf_setrgbcolor_fill -- Rgb sz�n�rt�kre �ll�tja be a kit�lt� sz�nt
cpdf_setrgbcolor_stroke -- Rgb sz�n�rt�kre �ll�tja be a k�rvonalrajzol� sz�nt
cpdf_setrgbcolor -- Rgb sz�n�rt�kre �ll�tja be a k�rvonalrajzol� �s kit�lt� sz�nt
cpdf_show_xy -- Sz�veget helyez adott poz�ci�ba
cpdf_show -- Sz�veget helyez az aktu�lis poz�ci�ba
cpdf_stringwidth -- Visszaadja a sz�veg sz�less�g�t az aktu�lis font alapj�n
cpdf_stroke -- K�rvonalat rajzol egy alakzat ment�n
cpdf_text -- Sz�veget helyez el param�terekkel
cpdf_translate -- Be�ll�tja a koordin�tarendszer kezd�pontj�t
User Contributed Notes
ClibPDF f�ggv�nyek
add a note about notes
daniel[at]lorch.cc
21-Feb-2002 11:50

If you don't want to pay for the library or your hoster does not have it installed, have a look at "PHP pdf Class":


add a note about notes
previousmethod_existscpdf_add_annotationnext
Last updated: Fri, 30 Aug 2002
show source | credits | stats | mirror sites
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sat Aug 31 06:19:44 2002 CEST