PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links 
search for in the  
previousmethod_existscpdf_add_annotationnext
Last updated: Tue, 03 Sep 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 | Hungarian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Swedish | Turkish

X. Funzioni ClibPDF

ClibPDF permette di creare documenti PDF utilizzando PHP. E' disponibile per il download a , ma richiede che si acquisti una licenza per l'utilizzo commerciale. La funzionalit� e l' API di ClibPDF sono simili a quelle di PDFlib.

Questa documentazione dovrebbe essere letta accanto al manuale di ClibPDF dato che quest'ultimo spiega la libreria pi� nel dettaglio.

Molte funzioni nella ClibPDF nativa e nel modulo PHP , cos� come nella PDFlib hanno lo stesso nome. Tutte le funzioni ad eccezione di cpdf_open() hanno l'identificatore del documento come loro primo parametro.

Attualmente questo identificatore non � usato internamente dato che ClibPDF non supporta la creazione di svariati documenti PDF contemporaneamente. Attualmente non bisognerebbe provare a farlo, dato che i risultati sono imprevedibili. Non � possibile controllare quali siano le conseguenze in un ambiente multi processo. Secondo l'autore di ClibPDF questo cambier� in una delle prossime release (la versione corrente quando questo � stato scritto � la 1.10). Se si ha bisogno di questa funzionalit� utilizzare il modulo pdflib.

Nota: La funzione cpdf_set_font() � cambiata dal PHP 3 per supportare i font asiatici. Il parametro per l'encoding non � pi� un numero intero, ma una stringa.

Un'interessante caratteristica di ClibPDF (e PDFlib) � l'abilit� di creare il documento PDF completamente in memoria senza utilizzare file temporanei. Inoltre fornisce l'abilit� di passare le coordinare in un'unit� di lunghezza predefinita. (Questa caratteristica puo'essere simulata da pdf_translate() quando si utilizzano le funzioni PDFlib.)

Un'altra interessante caratteristica di ClibPDF � il fatto che ogni pagina pu� essere modificata in qualsiasi momento anche se � gi� stata aperta una nuova pagina. La funzione cpdf_set_current_page() permette di lasciare la pagina corrente e modificare un'altra pagina.

La maggioranza delle funzioni sono abbastanza facili da usare. La parte pi� difficile � probabilmente creare un simplice documento PDF. L'esempio seguente dovrebbe essere utile per cominciare. Crea un documento con una pagina. La pagina contiene il testo "Times-Roman" con un font di 30pt. Il testo � sottolineato.

Esempio 1. Semplice esempio ClibPDF

<?php
$cpdf = cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Page 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 750);
cpdf_end_text($cpdf);
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);
?>

La distribuzione pdflib contiene un esempio pi� complicato che crea una serie di pagine con un orologio analogico. Di seguito si trova questo esempio convertito in PHP utilizzando l'estensione ClibPDF:

Esempio 2. esempio pdfclock dalla distribuzione pdflib 2.0

<?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);

  /* linee dei minuti */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha &lt; 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);

  /* linee dei 5 minuti */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha &lt; 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();

  /* disegna la lancetta delle ore */
  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);

  /* disegna la lancetta dei minuti */
  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);

  /* disegna la lancetta dei secondi */
  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);

  /* disegna un piccolo cerchio al centro */
  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);
?>
Sommario
cpdf_add_annotation -- Aggiunge un'annotazione
cpdf_add_outline -- Aggiunge un segnalibro per la pagina corrente
cpdf_arc -- Disegna un arco
cpdf_begin_text -- Avvia una sezione di testo
cpdf_circle -- Disegna un cerchio
cpdf_clip -- Taglia dal path corrente
cpdf_close -- Chiude il documento PDF
cpdf_closepath_fill_stroke -- Close, fill and stroke current path
cpdf_closepath_stroke -- Chiude il path e disegna una linea lungo il path
cpdf_closepath -- Chiude la path corrente
cpdf_continue_text -- Scrive del testo nella riga seguente
cpdf_curveto -- Disegna una curva
cpdf_end_text -- Termina la sezione di testo
cpdf_fill_stroke -- Fill and stroke current path
cpdf_fill -- Riempie il path corrente
cpdf_finalize_page -- Chiude la pagina
cpdf_finalize -- Chiude il documento
cpdf_global_set_document_limits -- Sets document limits for any pdf document
cpdf_import_jpeg -- Apre un'immagine JPEG
cpdf_lineto -- Disegna una linea
cpdf_moveto -- Setta il punto corrente
cpdf_newpath -- Inizia un nuovo path
cpdf_open -- Apre un nuovo documento pdf
cpdf_output_buffer -- Scrive il documento pdf nel buffer di memoria
cpdf_page_init -- Inizia una nuova pagina
cpdf_place_inline_image -- Inserisce un'immagine nella pagina
cpdf_rect -- Disegna un rettangolo
cpdf_restore -- Ristabilisce le impostazioni salvate in precedenza
cpdf_rlineto -- Disegna una linea
cpdf_rmoveto -- Setta il punto corrente
cpdf_rotate_text --  Setta l'angolo di rotazione del testo
cpdf_rotate -- Effettua una rotazione
cpdf_save_to_file -- Salva il documento pdf in un file
cpdf_save -- Salva le impostazioni correnti
cpdf_scale -- Applica il coefficiente di scala
cpdf_set_action_url --  Imposta un link
cpdf_set_char_spacing -- Imposta la spaziatura fra caratteri
cpdf_set_creator -- Imposta il campo creatore nel documento pdf
cpdf_set_current_page -- Imposta la pagina corrente
cpdf_set_font_directories --  Imposta le directory in cui cercare quando si utilizzano font esterni
cpdf_set_font_map_file --  Imposta la tabella di associazione tra nome di file e nome di font, quando si usano font esterni
cpdf_set_font -- Seleziona l'aspetto e la dimensione del font corrente
cpdf_set_horiz_scaling -- Imposta il fattore di scala orizzontale del testo
cpdf_set_keywords -- Imposta i campi chiave del documento pdf
cpdf_set_leading -- Imposta la distanza fra righe di testo
cpdf_set_page_animation -- Sets duration between pages
cpdf_set_subject -- Imposta il campo soggetto del documento pdf
cpdf_set_text_matrix -- Imposta la matrice di testo
cpdf_set_text_pos -- Imposta la posizione del testo
cpdf_set_text_rendering -- Determines how text is rendered
cpdf_set_text_rise -- Sets the text rise
cpdf_set_title -- Imposta il campo titolo del documento pdf
cpdf_set_viewer_preferences --  How to show the document in the viewer
cpdf_set_word_spacing -- Imposta la spaziatura fra parole
cpdf_setdash -- Sets dash pattern
cpdf_setflat -- Sets flatness
cpdf_setgray_fill -- Imposta il grigio come colore per il riempimento
cpdf_setgray_stroke -- Sets drawing color to gray value
cpdf_setgray -- Imposta il grigio come colore per il disegno e il riempimento
cpdf_setlinecap -- Sets linecap parameter
cpdf_setlinejoin -- Sets linejoin parameter
cpdf_setlinewidth -- Imposta la larghezza delle linee
cpdf_setmiterlimit -- Sets miter limit
cpdf_setrgbcolor_fill -- Sets filling color to rgb color value
cpdf_setrgbcolor_stroke -- Sets drawing color to rgb color value
cpdf_setrgbcolor -- Imposta il valore del colore rgb come colore per il disegno e il riempimento
cpdf_show_xy -- Output text at position
cpdf_show -- Scrive il testo alla posizione corrente
cpdf_stringwidth -- Restituisce la larghezza del testo nel font corrente
cpdf_stroke -- Disegna una linea lungo il path
cpdf_text -- Scrive il testo con i parametri
cpdf_translate -- Sets origin of coordinate system
User Contributed Notes
Funzioni ClibPDF
add a note about notes
daniel[at]lorch.cc
22-Feb-2002 12: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":


[email protected]
04-Sep-2002 09:13

As of version 2.02-r1-1, ClibPDF claims to be multi-threaded-safe.
add a note about notes
previousmethod_existscpdf_add_annotationnext
Last updated: Tue, 03 Sep 2002
show source | credits | stats | mirror sites
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Fri Sep 6 12:35:50 2002 CEST