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 : » http://libharu.sourceforge.net.
AVERTISSEMENTCe 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 :
» http://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
Exemple 1012. 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_A4, HaruPage::LANDSCAPE); /* Définit la page pour
utiliser le format A4 en paysage */
$courier = $doc->getFont("Courier-Bold"); /* Nous utiliserons les polices internes */
$page->setRGBStroke(0, 0, 0); /* Définit les couleurs */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* Dessine un rectangle */
$page->fillStroke(); /* On le remplit */
$page->setDash(array(3, 3), 0); /* Définit le style pour les lignes de cette page */
$page->setFontAndSize($courier, 60); /* Définit la police et la taille */
$page->setRGBStroke(0.5, 0.5, 0.1); /* Définit la couleur de la ligne */
$page->setRGBFill(1, 1, 1); /* Définit la couleur de remplissage */
$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* Remplit le texte */
/* Affiche le texte */
$page->beginText();
$page->textOut(210, 270, "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 !".
Classes pré-définies
Polices internes et encodages
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 :
Tableau 102. 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.
|
Tableau 103. 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 des matières
- HaruException — Classe Haru PDF Exception
- HaruDoc — Classe Haru PDF Document
- HaruPage — Classe Haru PDF Page
- HaruFont — Classe Haru PDF Font
- HaruImage — Classe Haru PDF Image
- HaruEncoder — Classe Haru PDF Encoder
- HaruOutline — Classe Haru PDF Outline
- HaruAnnotation — Classe Haru PDF Annotation
- HaruDestination — Classe Haru PDF Destination
- HaruAnnotation::setBorderStyle — Définit le style de bordure d'une annotation
- HaruAnnotation::setHighlightMode — Définit le mode de mise en évidence de l'annotation
- HaruAnnotation::setIcon — Définit le style de l'icône de l'annotation
- HaruAnnotation::setOpened — Définit le statut initial de l'annotation
- HaruDestination::setFit — Définit l'apparence de la page afin qu'elle tienne dans la fenêtre
- HaruDestination::setFitB — Définit l'apparence de la page afin qu'elle tienne dans
une boite de la page dans la fenêtre
- HaruDestination::setFitBH — Définit l'apparence de la page afin qu'elle tienne
en largeur dans la boite
- HaruDestination::setFitBV — Définit l'apparence de la page afin qu'elle tienne en
hauteur dans la boite
- HaruDestination::setFitH — Définit l'apparence de la page afin qu'elle tienne en largeur dans la page
- HaruDestination::setFitR — Définit l'apparence de la page afin qu'elle tienne dans
le rectangle spécifié
- HaruDestination::setFitV — Définit l'apparence de la page afin qu'elle tienne en hauteur dans
la fenêtre
- HaruDestination::setXYZ — Définit l'apparence d'une page
- HaruDoc::addPage — Ajoute une nouvelle page au document
- HaruDoc::addPageLabel — Définit le style de numérotation d'une série de pages
- HaruDoc::__construct — Construit une nouvelle instance
HaruDoc
instance - HaruDoc::createOutline — Crée une instance
HaruOutline
- HaruDoc::getCurrentEncoder — Récupère l'instance
HaruEncoder
actuellement utilisée dans le document - HaruDoc::getCurrentPage — Retourne la page courante du document
- HaruDoc::getEncoder — Récupère l'instance
HaruEncoder
de
l'encodage spécifié - HaruDoc::getFont — Récupère une instance
HaruFont
- HaruDoc::getInfoAttr — Récupère la valeur courante d'un attribut de document spécifié
- HaruDoc::getPageLayout — Récupère la disposition courante de la page
- HaruDoc::getPageMode — Récupère le mode courant de la page
- HaruDoc::getStreamSize — Récupère la taille du flux temporaire
- HaruDoc::insertPage — Insère une nouvelle page juste avant la page spécifiée
- HaruDoc::loadJPEG — Charge une image JPEG et retourne une nouvelle instance
HaruImage
- HaruDoc::loadPNG — Charge une image PNG et retourne une instance
HaruImage
- HaruDoc::loadRaw — Charge une image RAW et retourne une instance HaruImage
- HaruDoc::loadTTC — Charge la police avec l'index spécifié depuis le fichier TTC
- HaruDoc::loadTTF — Charge un fichier de police TTF
- HaruDoc::loadType1 — Charge la police Type1
- HaruDoc::output — Écrit les données du document dans un buffer de sortie
- HaruDoc::readFromStream — Lit les données depuis le flux temporaire
- HaruDoc::resetError — Réinitialise le statut d'erreur du gestionnaire de document
- HaruDoc::resetStream — Revient au début du flux temporaire
- HaruDoc::save — Sauvegarde le document dans le fichier spécifié
- HaruDoc::saveToStream — Sauvegarde le document dans un flux temporaire
- HaruDoc::setCompressionMode — Définit le mode de compression pour le document
- HaruDoc::setCurrentEncoder — Définit l'encodeur courant pour le document
- HaruDoc::setEncryptionMode — Définit le mode de cryptage pour le document
- HaruDoc::setInfoAttr — Définit l'attribut d'information du document
- HaruDoc::setInfoDateAttr — Définit les attributs d'informations de date
et d'heure pour le document
- HaruDoc::setOpenAction — Définit quelle page est affichée lors de l'ouverture du document
- HaruDoc::setPageLayout — Définit la façon dont la page doit être affichée
- HaruDoc::setPageMode — Définit la façon dont le document doit être affiché
- HaruDoc::setPagesConfiguration — Définit le nombre de pages par jeu de pages
- HaruDoc::setPassword — Définit les mots de passe de l'utilisateur et du propriétaire pour
le document
- HaruDoc::setPermission — Définit les permissions du document
- HaruDoc::useCNSEncodings — Active l'encodage chinois simplifié
- HaruDoc::useCNSFonts — Active les polices chinoises simplifiées internes
- HaruDoc::useCNTEncodings — Active l'encodage chinois traditionnel
- HaruDoc::useCNTFonts — Active les polices chinoises traditionnelles internes
- HaruDoc::useJPEncodings — Active l'encodage japonais
- HaruDoc::useJPFonts — Active les polices japonaises internes
- HaruDoc::useKREncodings — Active l'encodage coréen
- HaruDoc::useKRFonts — Active les polices coréennes internes
- HaruEncoder::getByteType — Récupère le type d'octets dans le texte
- HaruEncoder::getType — Récupère le type de l'encodeur
- HaruEncoder::getUnicode — Convertit un caractère en unicode
- HaruEncoder::getWritingMode — Récupère le mode d'écriture de l'encodeur
- HaruFont::getAscent — Récupère la montée verticale de la police
- HaruFont::getCapHeight — Récupère la distance depuis la ligne de base des lettres en majuscule
- HaruFont::getDescent — Récupère la descente verticale de la police
- HaruFont::getEncodingName — Récupère le nom de l'encodage
- HaruFont::getFontName — Récupère le nom de la police
- HaruFont::getTextWidth — Récupère la largeur totale du texte, le nombre de caractères, le nombre de mots et le nombre d'espaces
- HaruFont::getUnicodeWidth — Récupère la largeur d'un caractère dans une police
- HaruFont::getXHeight — Récupère la distance depuis la ligne de base des lettres minuscule
- HaruFont::measureText — Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée
- HaruImage::getBitsPerComponent — Récupère le nombre d'octets utilisés pour décrire chaque composant de la couleur de l'image
- HaruImage::getColorSpace — Récupère le nom de l'espace de couleur de l'image
- HaruImage::getHeight — Récupère la hauteur de l'image
- HaruImage::getSize — Récupère la taille de l'image
- HaruImage::getWidth — Récupère la largeur de l'image
- HaruImage::setColorMask — Définit le masque de couleur de l'image
- HaruImage::setMaskImage — Définit le masque de l'image
- HaruOutline::setDestination — Définit la destination pour le contour
- HaruOutline::setOpened — Définit le statut initial du contour
- HaruPage::arc — Ajoute un arc au chemin courant
- HaruPage::beginText — Commence un objet texte et définit la position courante du texte à (0,0)
- HaruPage::circle — Ajoute un cercle au chemin courant
- HaruPage::closePath — Ajoute une ligne droite depuis le point courant jusqu'au
point de départ du chemin
- HaruPage::concat — Concatène la matrice de transformation courante et la
matrice spécifiée
- HaruPage::createDestination — Crée une nouvelle instance
HaruDestination
- HaruPage::createLinkAnnotation — Crée une nouvelle instance
HaruAnnotation
- HaruPage::createTextAnnotation — Crée une nouvelle instance
HaruAnnotation
- HaruPage::createURLAnnotation — Crée et retourne une nouvelle instance
HaruAnnotation
instance - HaruPage::curveTo2 — Ajoute une courbe de Bézier au chemin courant
- HaruPage::curveTo3 — Ajoute une courbe de Bézier au chemin courant
- HaruPage::curveTo — Ajoute une courbe de Bézier au chemin courant
- HaruPage::drawImage — Affiche une image dans la page
- HaruPage::ellipse — Ajoute une ellipse au chemin courant
- HaruPage::endPath — Termine l'objet chemin courant sans effectuer d'opérations
de remplissage et de peinture
- HaruPage::endText — Termine l'objet texte courant
- HaruPage::eofill — Remplit le chemin courant en utilisant la règle "even-odd"
- HaruPage::eoFillStroke — Remplit le chemin courant en utilisant la règle "even-odd",
puis, peint le chemin
- HaruPage::fill — Remplit le chemin courant en utilisant des nombres différents de zéro
- HaruPage::fillStroke — Remplit le chemin en utilisant des nombres différents de zéro,
puis peint le chemin
- HaruPage::getCharSpace — Récupère la valeur courante de l'espacement des caractères
- HaruPage::getCMYKFill — Récupère la couleur de remplissage courante
- HaruPage::getCMYKStroke — Récupère la couleur de remplissage courante
- HaruPage::getCurrentFont — Récupère la police actuellement utilisée
- HaruPage::getCurrentFontSize — Récupère la taille de la police courante
- HaruPage::getCurrentPos — Récupère la position courante pour l'affichage
- HaruPage::getCurrentTextPos — Récupère la position courante pour l'affichage du texte
- HaruPage::getDash — Récupère le style de tiret courant
- HaruPage::getFillingColorSpace — Récupère la couleur de remplissage
- HaruPage::getFlatness — Récupère la planéité de la page
- HaruPage::getGMode — Récupère le mode courant de graphique
- HaruPage::getGrayFill — Récupère la couleur courante de remplissage
- HaruPage::getGrayStroke — Récupère la couleur courante
- HaruPage::getHeight — Récupère la hauteur de la page
- HaruPage::getHorizontalScaling — Récupère la valeur courante de l'échelle horizontale
- HaruPage::getLineCap — Récupère le style courant de fin de lignes
- HaruPage::getLineJoin — Récupère le style de jointure de lignes
- HaruPage::getLineWidth — Récupère la largeur courante de la ligne
- HaruPage::getMiterLimit — Récupère la valeur de la limite de l'anglet
- HaruPage::getRGBFill — Récupère la couleur courante de remplissage
- HaruPage::getRGBStroke — Récupère la couleur de peinture courante
- HaruPage::getStrokingColorSpace — Récupère la couleur de peinture de l'espace courant
- HaruPage::getTextLeading — Récupère la valeur courante de l'espacement des lignes
- HaruPage::getTextMatrix — Récupère la matrice de transformation courante du texte de
la page
- HaruPage::getTextRenderingMode — Récupère le mode de rendu courant du texte
- HaruPage::getTextRise — Récupère la valeur de la levée du texte
- HaruPage::getTextWidth — Récupère la largeur du texte en utilisant la taille de la
police courante, l'espacement des caractères et l'espacement des mots
- HaruPage::getTransMatrix — Récupère la matrice de transformation courante de la page
- HaruPage::getWidth — Récupère la largeur de la page
- HaruPage::getWordSpace — Récupère la valeur courante de l'espacement entre les mots
- HaruPage::lineTo — Trace une ligne depuis le point courant vers le point spécifié
- HaruPage::measureText — Calcule le nombre de caractères qui peuvent être inclus dans la largeur spécifiée
- HaruPage::moveTextPos — Déplace la position du texte à une position donnée
- HaruPage::moveTo — Définit le point de départ pour la nouvelle ligne
- HaruPage::moveToNextLine — Déplace la position du texte au début de la prochaine ligne
- HaruPage::rectangle — Ajoute un rectangle à la position courante
- HaruPage::setCharSpace — Définit l'espacement des caractères pour la page
- HaruPage::setCMYKFill — Définit la couleur de remplissage de la page
- HaruPage::setCMYKStroke — Définit la couleur de remplissage de la page
- HaruPage::setDash — Définit le style de tiret pour la page
- HaruPage::setFlatness — Définit la planéité de la page
- HaruPage::setFontAndSize — Définit la police et sa taille pour la page
- HaruPage::setGrayFill — Définit la couleur de remplissage de la page
- HaruPage::setGrayStroke — Définit la couleur de remplissage de la page
- HaruPage::setHeight — Définit la hauteur de la page
- HaruPage::setHorizontalScaling — Définit la graduation horizontale de la page
- HaruPage::setLineCap — Définit la forme à utiliser à la fin des lignes
- HaruPage::setLineJoin — Définit le style de jointure de ligne pour la page
- HaruPage::setLineWidth — Définit la largeur de la ligne pour la page
- HaruPage::setMiterLimit — Définit la valeur courante de la limite de l'anglet de la page
- HaruPage::setRGBFill — Définit la couleur de remplissage pour la page
- HaruPage::setRGBStroke — Définit la couleur de remplissage de la page
- HaruPage::setRotate — Définit l'angle de rotation de la page
- HaruPage::setSize — Définit la taille et la direction de la page
- HaruPage::setSlideShow — Définit le style de transition pour la page
- HaruPage::setTextLeading — Définit l'espacement entre les lignes du texte pour la page
- HaruPage::setTextMatrix — Définit la matrice de transformation de texte courante de la page
- HaruPage::setTextRenderingMode — Définit le mode de rendu du texte pour la page
- HaruPage::setTextRise — Définit la valeur courante de la levée du texte
- HaruPage::setWidth — Définit la largeur de la page
- HaruPage::setWordSpace — Définit l'espacement entre les mots pour la page
- HaruPage::showText — Affiche le texte à la position courante de la page
- HaruPage::showTextNextLine — Déplace la position courante au début de la prochaine ligne et affiche le texte
- HaruPage::stroke — Peint le chemin courant
- HaruPage::textOut — Affiche le texte à la position spécifiée
- HaruPage::textRect — Affiche le texte d'une région spécifique