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 updateAvec 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> </span></span></span><span><span> </span></span><span><span> </span></span><span><span> <h1 id="Hello-Dompdf">Hello Dompdf</h1> </span></span><span><span> </span></span><span><span> </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></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).
- 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 updateAu 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> </span></span></span><span><span> </span></span><span><span> </span></span><span><span> <h1 id="Hello-Dompdf">Hello Dompdf</h1> </span></span><span><span> </span></span><span><span> </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></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:
git clone https://github.com/dompdf/dompdf.git git submodule init git submodule updateNotez 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!

Dans PHP, vous pouvez utiliser session_status () ou session_id () pour vérifier si la session a commencé. 1) Utilisez la fonction session_status (). Si php_session_active est retourné, la session a été lancée. 2) Utilisez la fonction session_id (), si une chaîne non vide est renvoyée, la session a été démarrée. Les deux méthodes peuvent vérifier efficacement l'état de session et le choix de la méthode à utiliser dépend de la version PHP et des préférences personnelles.

SessionsaRevitalInWebapplications, en particulier pour le commerce de commerce.

La gestion de l'accès simultané sur la session en PHP peut être effectuée par les méthodes suivantes: 1. Utilisez la base de données pour stocker les données de session, 2. Utilisez Redis ou Memcached, 3. Implémentez une stratégie de verrouillage de session. Ces méthodes aident à garantir la cohérence des données et à améliorer les performances de la concurrence.

PhpSessionShaveSeverallimitations: 1) StorageConstraintsCanleadToperformanceIssues; 2) SecurityVulnerAbilitiesLikeSessionFixationAttackSexist; 3) ScaliabilityShalngingDuetoServer-SpecificStorage; 4) SessionxpirationManagementCanBeproblematic; 5) DatapeSisSis irest;

L'équilibrage de charge affecte la gestion de la session, mais peut être résolu avec la réplication de la session, l'adhérence des sessions et le stockage centralisé de session. 1. Session Replication Copy Données de session entre les serveurs. 2. Session Stickleness dirige les demandes d'utilisateurs vers le même serveur. 3. Le stockage centralisé de session utilise des serveurs indépendants tels que Redis pour stocker les données de session pour assurer le partage de données.

Session BlockingSateChnique utilisétoenSureAuser'sessionremainSexclusiVetoonUseratatime.ITCUCIALFORPREVERSDATACORUPRUPTIONANDSECRYSEURCHEBRESSInMulti-userApplications.SessionLockingisImplementEdUsingServer-SidelockingMechanisms, telasreentrantLockinjj

Les alternatives aux séances PHP comprennent des cookies, une authentification basée sur des jetons, des sessions basées sur la base de données et Redis / Memcached. 1.CooKies Gérer les sessions en stockant des données sur le client, ce qui est simple mais faible en sécurité. 2. L'authentification basée sur le token utilise des jetons pour vérifier les utilisateurs, ce qui est hautement sécurisé mais nécessite une logique supplémentaire. 3.Database basée sur les séances stocke les données dans la base de données, qui a une bonne évolutivité mais peut affecter les performances. 4. redis / memcached utilise un cache distribué pour améliorer les performances et l'évolutivité, mais nécessite une correspondance supplémentaire

SessionHijacking fait référence à un attaquant imitant un utilisateur en obtenant le SessionID de l'utilisateur. Les méthodes de prévention comprennent: 1) le chiffrement de la communication à l'aide de HTTPS; 2) Vérification de la source du sessionID; 3) Utilisation d'un algorithme de génération de sessionID sécurisé; 4) Mise à jour régulière du SessionID.


Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Version Mac de WebStorm
Outils de développement JavaScript utiles

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

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Dreamweaver CS6
Outils de développement Web visuel

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.
