国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Les plats clés
Pour commencer
Utilisation avancée
Conclusion
Les questions fréquemment posées (FAQ) sur la conversion de HTML en PDF avec DOMPDF
Qu'est-ce que DOMPDF et pourquoi est-il utilisé?
Comment installer DOMPDF?
Puis-je utiliser CSS avec DOMPDF?
comment puis-je ajouter des images à mon PDF?
Puis-je générer un PDF avec plusieurs pages?
Comment définir la taille et l'orientation de la page?
Puis-je utiliser DOMPDF avec Laravel?
Comment puis-je enregistrer le PDF généré dans un fichier?
En réponse dans une application Web?
est DOMPDF sécurisé?
Maison développement back-end tutoriel php PHP Master | Convertir HTML en PDF avec DOMPDF

PHP Master | Convertir HTML en PDF avec DOMPDF

Feb 23, 2025 am 10:36 AM

PHP Master | Convertir HTML en PDF avec DOMPDF

PDF est un format standard créé à l'origine par Adobe pour représenter du texte et des images dans un document à relais fixe. Il n'est pas rare qu'une application Web prenne en charge les données de téléchargement, telles que des factures ou des rapports, au format PDF, donc dans cet article, nous allons expliquer comment nous pouvons facilement générer des documents PDF à l'aide de PHP. DOMPDF est une excellente bibliothèque, capable de générer un PDF à partir des styles HTML BUKUP et CSS (il est principalement conforme à CSS 2.1 et a pris en charge certaines propriétés CSS3). Nous pouvons décider à quoi devrait ressembler notre contenu en utilisant ces technologies familières, puis convertir facilement en un document fixe. La bibliothèque a également de nombreuses autres fonctionnalités utiles et intéressantes.

Les plats clés

  • DOMPDF est une bibliothèque PHP qui peut convertir les styles de balisage HTML et CSS en document PDF, ce qui le rend utile pour les applications Web qui doivent prendre en charge le téléchargement des données au format PDF.
  • Pour utiliser DOMPDF, il doit être installé via GitHub ou Composer, et il nécessite PHP> = 5.0 avec les extensions MBSTring et DOM activées. Le balisage HTML peut être chargé sous forme de cha?ne ou à partir d'un fichier ou d'URL, puis rendu dans un PDF.
  • DOMPDF fournit une gamme d'options de configuration pour adapter le PDF à des besoins spécifiques, tels que la taille du papier, l'orientation de la page et le codage des caractères. Il permet également une utilisation avancée, tel que la sauvegarde du PDF généré sur le disque, ou l'ajout d'en-têtes ou de pied de page.
  • Bien que DOMPDF soit un outil puissant, il a certaines limites, comme être intolérants à un HTML mal formé et n'ayant un support limité pour CSS3. Il est recommandé de revoir la documentation et le code source de la bibliothèque pour une compréhension complète de ses capacités et de ses problèmes potentiels.

Pour commencer

DOMPDF est disponible sur GitHub et peut être installé à l'aide du compositeur. Obtenir une installation basée sur des compositeurs correctement correctement est encore un peu délicat, donc je recommande simplement d'utiliser GIT pour installer DOMPDF. La bibliothèque nécessite PHP> = 5.0 avec les extensions MBSTring et DOM activées. Il a également besoin de quelques polices, qui sont généralement disponibles sur la plupart des machines. Accédez à partout où vous souhaitez mettre la bibliothèque et exécuter:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Avec DOMPDF téléchargé, écrivons un court exemple qui générera un PDF simple.
<span><span><?php
</span></span><span><span>set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf");
</span></span><span>
</span><span><span>require_once "dompdf_config.inc.php";
</span></span><span>
</span><span><span>$dompdf = new DOMPDF();
</span></span><span>
</span><span><span>$html = <span><span><<<'ENDHTML'</span>
</span></span></span><span><span><html>
</span></span><span><span> <body>
</span></span><span><span>  <h1>Hello Dompdf</h1>
</span></span><span><span> </body>
</span></span><span><span></html>
</span></span><span><span><span>ENDHTML<span>;</span></span>
</span></span><span>
</span><span><span>$dompdf->load_html($html);
</span></span><span><span>$dompdf->render();
</span></span><span>
</span><span><span>$dompdf->stream("hello.pdf");</span></span>
Pour utiliser la bibliothèque dans un projet, nous appuyons d'abord dans DOMPDF_CONFIG.INC.PHP qui contient la majeure partie de la configuration DOMPDF. Il charge également un Autoloader et un fichier de configuration personnalisé dans lequel nous pouvons remplacer les paramètres de configuration par défaut. Le balisage HTML est donné en tant que cha?ne à la méthode LOAD_HTML (). Alternativement, nous pouvons charger un balisage à partir d'un fichier ou d'une URL à l'aide de la méthode LOAD_HTML_FILE (). Il accepte un nom de fichier ou l'URL d'une page Web comme argument. La méthode render () rend le HTML en PDF et nous sommes prêts à vider le fichier PDF. Stream () envoie le PDF résultant en tant que pièce jointe au navigateur. La méthode Stream () a un deuxième paramètre en option, un tableau d'options:
  • Accept-Ranges - Boolean, Endire ?Accept-Ranges? (False par défaut).
  • Pièce jointe - Boolean, envoyez un en-tête ?contenu-disposition: pièce jointe? for?ant le navigateur à afficher une invite de sauvegarde (vrai par défaut).
  • Compress - booléen, activer la compression de contenu (vrai par défaut).
Nous avons généré un PDF très simple ici, mais ce n'est pas très pratique. En réalité, nous aurons souvent des exigences concernant la taille du papier, l'orientation des pages, le codage des caractères, etc. Il existe un nombre d'options de configuration que nous pouvons définir pour rendre DOMPDF plus adapté à nos besoins réels. Tous sont répertoriés et expliqués dans DOMPDF_CONFIG.INC.PHP qui les définit sur leurs valeurs par défaut. Vous pouvez modifier ces valeurs en mettant à jour le fichier de configuration personnalisé DOMPDF_CONFIG.Custom.inc.php. Certains des paramètres importants sont:
  • DOMPDF_DEFAULT_PAPER_SIZE - Définit la taille du papier par défaut pour le document PDF. Les tailles de papier prises en charge peuvent être trouvées dans include / cpdf_adapter.cls.php (la valeur par défaut est ?Lettre?).
  • DOMPDF_TEMP_DIR - Spécifie le répertoire temporaire utilisé par DOMPDF. Assurez-vous que cet emplacement est écrite par le compte du serveur Web.
  • DOMPDF_UNICODE_ENABLE - Définit si le PDF utilise des polices Unicode (la valeur par défaut est vraie).
  • DOMPDF_ENABLE_REMOTE - Permet l'inclusion d'images ou de styles CSS à partir de sites distants (la valeur par défaut est fausse).
  • DEBUG_LAYOUT - Que ce soit pour rendre une bo?te autour de chaque bloc HTML dans le fichier PDF, ce qui est utile pour déboguer la mise en page (la valeur par défaut est fausse).

Utilisation avancée

Parlons maintenant de certaines utilisations avancées de DOMPDF. Peut-être que nous voulons enregistrer le document PDF généré sur le disque au lieu de l'envoyer au navigateur. Voici comment:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Au lieu d'appeler Stream () comme dans l'exemple précédent, nous utilisons la sortie () qui renvoie le PDF en tant que cha?ne. Il accepte également un tableau d'options facultatifs, mais la seule option disponible est compresse (la valeur par défaut est vraie). DOMPDF nous permet également d'ajouter un en-tête ou un pied de page au PDF généré en intégrant un script PHP dans le HTML qu'il rend. Mais parce que le traitement du code arbitraire peut poser un risque de sécurité si vous ne faites pas attention, la valeur de configuration qui contr?le cette fonctionnalité est désactivée par défaut. Nous devons d'abord définir l'option DOMPDF_ENABLE_PHP true. Une fois que nous aurons activé l'exécution de PHP en ligne, l'objet PDF sera mis à disposition dans le script, que nous pouvons utiliser pour manipuler la page. Nous pouvons ajouter du texte, des lignes, des images, des rectangles, etc. n'importe où à l'intérieur de la page.
<span><span><?php
</span></span><span><span>set_include_path(get_include_path() . PATH_SEPARATOR . "/path/to/dompdf");
</span></span><span>
</span><span><span>require_once "dompdf_config.inc.php";
</span></span><span>
</span><span><span>$dompdf = new DOMPDF();
</span></span><span>
</span><span><span>$html = <span><span><<<'ENDHTML'</span>
</span></span></span><span><span><html>
</span></span><span><span> <body>
</span></span><span><span>  <h1>Hello Dompdf</h1>
</span></span><span><span> </body>
</span></span><span><span></html>
</span></span><span><span><span>ENDHTML<span>;</span></span>
</span></span><span>
</span><span><span>$dompdf->load_html($html);
</span></span><span><span>$dompdf->render();
</span></span><span>
</span><span><span>$dompdf->stream("hello.pdf");</span></span>
Le script est intégré directement dans le balisage HTML et ouvre d'abord un objet afin que nous puissions affecter le rendu. Tous les dessins seront enregistrés dans cet objet et nous pouvons ajouter cet objet à toutes les pages ou sélectionnées (bien qu'il y ait des limitations). Ensuite, nous récupérons la largeur et la hauteur réelles de la page pour calculer les coordonnées du pied de page que nous avons l'intention d'ajouter. De plus, nous devons fournir un objet de police pendant que nous ajoutons le contenu du texte. Font_metrics :: get_font () nous permet de créer l'objet dont nous avons besoin. Nous prenons également la hauteur de la police donnée à sa taille de police en utilisant get_font_height () pour calculer le positionnement du contenu du pied de page. La méthode get_font_width () renvoie la largeur de notre texte pour la police et la taille données qui sont également utilisées dans nos calculs. La méthode line () tire une ligne du point (x1, y1) à (x2, x2). Notez que la valeur de couleur que nous avons fournie n'est pas une valeur RVB réelle. La classe PDF sous-jacente nécessite des valeurs entre 0 et 1 et nous convertissons donc les valeurs RVB en ces nouvelles valeurs. Pour obtenir une meilleure approximation, vous pouvez le diviser par 255. Nous ajoutons le numéro de page pour chaque page à l'aide de la méthode page_text (), qui accepte une position x et y, le texte à ajouter, un objet de police, une taille de police et une couleur. DOMPDF remplace automatiquement les valeurs de {page_num} et {page_count} dans chaque page, et rend $ pdf à notre disposition. Lorsque le PDF sera rendu, la section de pied de page ressemblera à ceci:

PHP Master | Convertir HTML en PDF avec DOMPDF

Il est possible d'éviter d'utiliser des PHP en ligne et d'obtenir le même effet directement à partir de PHP, comme ainsi:
git clone https://github.com/dompdf/dompdf.git
git submodule init
git submodule update
Notez que nous pla?ons le code après avoir appelé $ dOMPDF-> render () car nous modifions essentiellement le PDF rendu.

Conclusion

Dans cet article, nous avons discuté de la fa?on de convertir facilement le HTML en PDF à l'aide de DOMPDF. Bien que DOMPDF soit une excellente bibliothèque, ce n'est pas une solution pare-balles pour générer des documents PDF; Il a certaines limites et problèmes. DOMPDF n'est pas vraiment tolérant à la HTML mal formée, et les grandes tables peuvent facilement vous faire manquer de mémoire. Certaines fonctionnalités CSS de base comme Float ne sont pas complètement prises en charge et il n'y a qu'une prise en charge limitée pour CSS3. Si vous avez besoin de fonctionnalités qui ne sont pas prises en charge par DOMPDF, quelque chose comme WKHTMLTOPDF pourrait être une meilleure solution pour vous. Pourtant, DOMPDF est assez simple et adapté à la majorité des besoins d'exportation PDF. Il est vraiment difficile d'expliquer toutes les fonctionnalités fournies par une bibliothèque dans un article comme celui-ci, alors assurez-vous de consulter la documentation et le code source également pour en savoir plus sur les fonctionnalités sympas comme l'ajout de rappels, en utilisant des polices personnalisées, etc. ?Je suis heureux de vous aider dans mon expertise limitée. N'hésitez pas à laisser vos questions et à partager vos expériences dans la section des commentaires. Image via Fotolia Et si vous avez aimé lire ce post, vous aimerez l'apprentissage; L'endroit pour acquérir de nouvelles compétences et techniques de la ma?trise. Les membres ont un accès instantané à tous les livres électroniques de SitePoint et aux cours en ligne interactifs, comme Jump Start Php. Les commentaires sur cet article sont fermés. Vous avez une question sur PHP? Pourquoi ne pas le demander sur nos forums?

Les questions fréquemment posées (FAQ) sur la conversion de HTML en PDF avec DOMPDF

Qu'est-ce que DOMPDF et pourquoi est-il utilisé?

DOMPDF est une bibliothèque PHP qui fournit un moyen simple de convertir HTML en PDF. Il est utilisé car il peut gérer des dispositions HTML complexes, y compris les styles CSS, JavaScript et les images. C'est un outil puissant pour les développeurs qui ont besoin de générer des documents PDF à partir de contenu HTML. Il est facile à utiliser, flexible et peut être intégré à n'importe quelle application PHP.

Comment installer DOMPDF?

DOMPDF peut être installé à l'aide de Composer, un outil de gestion des dépendances pour PHP. Vous pouvez installer Composer, puis exécuter la commande ?Composer nécessite DOMPDF / DOMPDF?. Cela téléchargera et installer la bibliothèque DOMPDF dans votre projet.

Puis-je utiliser CSS avec DOMPDF?

Oui, DOMPDF prend en charge CSS. Vous pouvez utiliser CSS en ligne dans votre HTML, ou vous pouvez créer un lien vers un fichier CSS externe. DOMPDF appliquera les styles lors de la génération du PDF. Cependant, veuillez noter que toutes les propriétés CSS ne sont pas prises en charge.

comment puis-je ajouter des images à mon PDF?

Vous pouvez ajouter des images à votre PDF en incluant une balise `` IMG '' dans votre HTML . L'attribut ?src? doit pointer vers le fichier image. DOMPDF inclura l'image dans le pdf généré.

Puis-je générer un PDF avec plusieurs pages?

Oui, DOMPDF peut générer un PDF avec plusieurs pages. Si votre contenu HTML est suffisamment long pour s'étendre sur plusieurs pages, DOMPDF le divisera automatiquement en pages. Vous pouvez également ajouter manuellement les pauses de page à l'aide de CSS.

Comment définir la taille et l'orientation de la page?

Vous pouvez définir la taille et l'orientation de la page à l'aide de la méthode ?set_paper?. Par exemple, vous pouvez utiliser '$ dombpdf-> set_paper (' a4 ',' paysage ')' pour définir la taille de la page sur A4 et l'orientation vers le paysage.

Puis-je utiliser DOMPDF avec Laravel?

Oui, DOMPDF peut être utilisé avec Laravel. Il existe un package Laravel appelé ?Laravel-Dompdf? qui fournit un moyen facile d'utiliser DOMPDF dans une application Laravel.

Comment puis-je enregistrer le PDF généré dans un fichier?

Vous pouvez enregistrer Le PDF généré à un fichier utilisant la méthode 'Output' et la fonction 'File_Put_Contents'. Par exemple, vous pouvez utiliser 'file_put_contents (' mypdf.pdf ', $ dompdf-> output ())' pour enregistrer le pdf dans un fichier nommé 'mypdf.pdf'.

En réponse dans une application Web?

Oui, vous pouvez envoyer le PDF généré en réponse dans une application Web. Vous pouvez utiliser la méthode ?Stream? pour envoyer le PDF directement au navigateur.

est DOMPDF sécurisé?

DOMPDF est généralement considéré comme sécurisé, mais comme tout logiciel, il peut avoir des vulnérabilités. Il est important de maintenir à jour votre installation DOMPDF et de revoir les directives de sécurité fournies par l'équipe DOMPDF.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment mettre en ?uvre l'authentification et l'autorisation dans PHP? Comment mettre en ?uvre l'authentification et l'autorisation dans PHP? Jun 20, 2025 am 01:03 AM

ToseCurelyHandleAuthentication andAuthorizationInPhp, suivitheSesteps: 1.AlwayShashPasswordSwithPassword_Hash () etverifyusingPassword_verify (), usePreparedStatementStopReventsQLendiject, andstoreSerDatain $ _SessionAfterLogin.2

Comment pouvez-vous gérer les téléchargements de fichiers en toute sécurité dans PHP? Comment pouvez-vous gérer les téléchargements de fichiers en toute sécurité dans PHP? Jun 19, 2025 am 01:05 AM

Pour gérer en toute sécurité les téléchargements de fichiers dans PHP, le noyau consiste à vérifier les types de fichiers, à renommer les fichiers et à restreindre les autorisations. 1. Utilisez finfo_file () pour vérifier le type de mime réel, et seuls des types spécifiques tels que l'image / jpeg sont autorisés; 2. Utilisez Uniqid () pour générer des noms de fichiers aléatoires et les stocker dans le répertoire racine non Web; 3. Limiter la taille du fichier via les formulaires PHP.ini et HTML et définir les autorisations de répertoire sur 0755; 4. Utilisez Clamav pour scanner les logiciels malveillants pour améliorer la sécurité. Ces étapes empêchent efficacement les vulnérabilités de sécurité et garantissent que le processus de téléchargement de fichiers est s?r et fiable.

Quelles sont les différences entre == (comparaison lache) et === (comparaison stricte) en PHP? Quelles sont les différences entre == (comparaison lache) et === (comparaison stricte) en PHP? Jun 19, 2025 am 01:07 AM

En PHP, la principale différence entre == et == est la rigueur de la vérification des types. == La conversion de type sera effectuée avant la comparaison, par exemple, 5 == "5" Renvoie True, et === Demande que la valeur et le type soient les mêmes avant que True sera renvoyé, par exemple, 5 === "5" Renvoie False. Dans les scénarios d'utilisation, === est plus sécurisé et doit être utilisé en premier, et == n'est utilisé que lorsque la conversion de type est requise.

Comment effectuer des opérations arithmétiques en php (, -, *, /,%)? Comment effectuer des opérations arithmétiques en php (, -, *, /,%)? Jun 19, 2025 pm 05:13 PM

Les méthodes d'utilisation des opérations mathématiques de base en PHP sont les suivantes: 1. Les signes d'addition prennent en charge les entiers et les nombres à virgule flottante, et peuvent également être utilisés pour les variables. Les numéros de cha?ne seront automatiquement convertis mais non recommandés en dépendances; 2. Les signes de soustraction utilisent - les signes, les variables sont les mêmes et la conversion de type est également applicable; 3. Les panneaux de multiplication utilisent * les panneaux, qui conviennent aux nombres et aux cha?nes similaires; 4. La division utilise / signes, qui doit éviter de diviser par zéro, et noter que le résultat peut être des nombres à virgule flottante; 5. Prendre les signes du module peut être utilisé pour juger des nombres impairs et uniformes, et lors du traitement des nombres négatifs, les signes restants sont cohérents avec le dividende. La clé pour utiliser correctement ces opérateurs est de s'assurer que les types de données sont clairs et que la situation limite est bien gérée.

Comment pouvez-vous interagir avec les bases de données NoSQL (par exemple, MongoDB, redis) de PHP? Comment pouvez-vous interagir avec les bases de données NoSQL (par exemple, MongoDB, redis) de PHP? Jun 19, 2025 am 01:07 AM

Oui, PHP peut interagir avec les bases de données NoSQL comme MongoDB et Redis à travers des extensions ou des bibliothèques spécifiques. Tout d'abord, utilisez le pilote MongoDBPHP (installé via PECL ou Composer) pour créer des instances clients et faire fonctionner des bases de données et des collections, en prenant en charge l'insertion, la requête, l'agrégation et d'autres opérations; Deuxièmement, utilisez la bibliothèque Predis ou l'extension PHPREDIS pour vous connecter à Redis, effectuer des paramètres et des acquisitions de valeur clé, et recommander PHPredis pour des scénarios à haute performance, tandis que Predis est pratique pour un déploiement rapide; Les deux conviennent aux environnements de production et sont bien documentés.

Comment rester à jour avec les derniers développements PHP et meilleures pratiques? Comment rester à jour avec les derniers développements PHP et meilleures pratiques? Jun 23, 2025 am 12:56 AM

TostayCurrentwithPhpDevelopments andBestPractices, suiventyewnewsources likephp.netandphpweekly, engagewithcommunitiesonforumums et conférences, keeptoolingupdated etgradualadoptnewfeatures, etreadorontruttetoopensourceprojects.

Qu'est-ce que PHP et pourquoi est-il utilisé pour le développement Web? Qu'est-ce que PHP et pourquoi est-il utilisé pour le développement Web? Jun 23, 2025 am 12:55 AM

PhpBecamepopularforwebDevelopmentDuetoitSeaseOflearning, Samoussentegration withhtml, widespreadhostingsupport, andalargecosystemysteclustingframeworkslikeLaravelandcmsplateformeslikewordpress.itexcelSinlingFormSubMissions, ManagetingSeSeSessions, interactif, interactif

Comment définir le fuseau horaire PHP? Comment définir le fuseau horaire PHP? Jun 25, 2025 am 01:00 AM

Tosetherighttimezoneinphp, usedate_default_timezone_set () Fonctionnellestartofyourscriptwithavalididentifiersuchas'america / new_york'.1.usedate_default_timezone_set () beforeanydate / timefunctions.20

See all articles