Forum und email

Fonctions Haru PDF

Introduction

L'extension PECL/haru fournit une API pour la bibliothèque Haru Free PDF - bibliothèque libre, multi-plateforme et opensource pour la génération de fichiers PDF.

Vous pouvez trouver la bibliothèque ici : » https://libharu.sourceforge.net.

Warning

Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et, concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en conscient, et utilisez ce module à vos risques et périls.

Pré-requis

Vous devez installer d'abord libharu pour activer l'utilisation PECL/haru. PECL/haru a été testé avec libharu 2.0.8, les anciennes versions peuvent éventuellement fonctionner. PECL/haru nécessite également PHP 5.1.3 ou supérieur.

Installation

Des informations sur l'installation de ces extensions PECL peuvent être trouvées dans le chapitre du manuel intitulé Installation des extensions PECL. D'autres informations comme les notes sur les nouvelles versions, les téléchargements, les sources des fichiers, les informations concernant les mainteneurs ainsi qu'un CHANGELOG, peuvent être trouvées ici : » https://pecl.php.net/package/haru.

La dernière bibliothèque DLL PECL/haru Win32 DLL peut être téléchargée ici : » php_haru.dll.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Exemples

Example#1 Exemple avec PECL/haru

<?php

$doc 
= new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* Affiche les miniatures */

$page $doc->addPage(); /* Ajoute une page au document */
$page->setSize(HaruPage::SIZE_A4HaruPage::LANDSCAPE); /* Définit la page pour
utiliser le format A4 en paysage */

$courier $doc->getFont("Courier-Bold"); /* Nous utiliserons les polices internes */

$page->setRGBStroke(000); /* Définit les couleurs */
$page->setRGBFill(0.70.80.9);
$page->rectangle(150150550250); /* Dessine un rectangle */

$page->fillStroke(); /* On le remplit */

$page->setDash(array(33), 0); /* Définit le style pour les lignes de cette page */
$page->setFontAndSize($courier60); /* Définit la police et la taille */

$page->setRGBStroke(0.50.50.1); /* Définit la couleur de la ligne */
$page->setRGBFill(111); /* Définit la couleur de remplissage */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* Remplit le texte */

/* Affiche le texte */
$page->beginText();
$page->textOut(210270"Bonjour le monde !");
$page->endText();

$doc->save("/tmp/test.pdf"); /* Sauvegarde le document dans un fichier */

?>

Ouvrez le document résultant dans votre client PDF favori et vous devriez voir un rectangle bleu contenant le texte blanc suivant : "Bonjour le monde !".

Polices internes et encodages

Polices interns

Ces polices Base14 sont intégrées dans PDF et toutes les visualisateurs peuvent les afficher. L'utilisation de ces polices peut baisser la taille du fichier résultat et rendre le processus plus rapide, évitant le chargement de police externe. Cependant, ces polices ne supportent que le jeu de caractères latin1 et vous devez charger des polices externes si vous avez besoin d'utiliser d'autres jeux de caractères.

Les polices Base14 :

  • Courrier

  • Courrier-Gras

  • Courrier-Italique

  • Courrier-Gras et italique

  • Helvetica

  • Helvetica-Gras

  • Helvetica-Italique

  • Helvetica-Gras et italique

  • Times-Roman

  • Times-Gras

  • Times-Italique

  • Times-Gras et italique

  • Symbol

  • ZapfDingbats

Encodages internes

Encodages de jeu de caractères sur un seul octet
Nom Description
StandardEncoding L'encodage par défaut de PDF.
MacRomanEncoding L'encodage par défaut de Mac OS.
WinAnsiEncoding L'encodage par défaut de Windows.
FontSpecific L'encodage des polices internes.
ISO8859-2 Latin2 (Europe de l'est)
ISO8859-3 Latin3 (Europe de l'ouest)
ISO8859-4 Latin4 (Europe du nord)
ISO8859-5 Cyrillien
ISO8859-6 Arabe
ISO8859-7 Grèque
ISO8859-8 Hébreu
ISO8859-9 Latin5 (Turque)
ISO8859-10 Latin6 (Nordique)
ISO8859-11 Thaï
ISO8859-13 Latin7 (Jante baltique)
ISO8859-14 Latin8 (Celtique)
ISO8859-15 Latin9
ISO8859-16 Latin10
CP1250 MS Windows Codepage 1250.
CP1251 MS Windows Codepage 1251.
CP1252 MS Windows Codepage 1252.
CP1253 MS Windows Codepage 1253.
CP1254 MS Windows Codepage 1254.
CP1255 MS Windows Codepage 1255.
CP1256 MS Windows Codepage 1256.
CP1257 MS Windows Codepage 1257.
CP1258 MS Windows Codepage 1258.
KOI8-R Jeu de caractères cyrillien.
Encodages de jeu de caractères multi-octets
Nom Description
GB-EUC-H Encodage EUC-CN.
GB-EUC-V Version verticale de GB-EUC-H.
GBK-EUC-H Encodage Microsoft Code Page 936 (lfCharSet 0x86) GBK.
GBK-EUC-V Version verticale de GBK-EUC-H.
ETen-B5-H Jeu de caractères Microsoft Code Page 950 (lfCharSet 0x88) Big Five avec les extensions ETen.
ETen-B5-V Version verticale de ETen-B5-H.
90ms-RKSJ-H Microsoft Code Page 932, caractère JIS X 0208.
90ms-RKSJ-V Version verticale de 90ms-RKSJ-V.
90msp-RKSJ-H Microsoft Code Page 932, caractère JIS X 0208 (proportionnel).
EUC-H Jeu de caractères JIS X 0208, encodage EUC-JP.
EUC-V Version verticale de EUC-H.
KSC-EUC-H Jeu de caracères KS X 1001:1992, encodage EUC-KR.
KSC-EUC-V Version verticale de KSC-EUC-V.
KSCms-UHC-H Microsoft Code Page 949 (lfCharSet 0x81), jeu de caractères KS X 1001:1992 et 8822 additionnel hangul, encodage Unified Hangul Code (UHC) (proportionnel).
KSCms-UHC-HW-H Microsoft Code Page 949 (lfCharSet 0x81), jeu de caracères KS X 1001:1992 et 8822 additionnel hangul, encodage Unified Hangul Code (UHC) (largeur fixe).
KSCms-UHC-HW-V Version verticale de KSCms-UHC-HW-H.

Table of Contents