La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam

Où peut-il arriver utile? Si vous devez générer des fichiers prêts à imprimer dans une application Web pour un modèle difficile arbitraire existant: certificats, badges, sauter, etc.

Pourquoi pdf? Le format PDF vous permet de créer des documents avec un certain nombre d'avantages indiscutables: l'ouverture, la plate-forme inter-plate-forme, la prévalence et, qui est très importante, exactitude et inhalasse de la transmission de données sur une chaîne, une visualisation et une impression.

Quel est le sel? En utilisant des fichiers SVG en tant que modèles avec la possibilité de substituer les champs nécessaires, suivis de la conversion en PDF.

Quels sont les bénéfices? La possibilité de créer et d'éditer rapidement des modèles très complexes dans les éditeurs de vecteurs habituels, tels que Adobe Illustrator, Corel Draw. ou inkscape. Simplicité de la programmation et de l'utilisation uniquement gratuite logiciel. Un autre avantage important est la capacité d'utiliser de manière transparente UTF-8 pour des textes insérés.

Qu'est-ce qui est nécessaire pour ça? Pour utiliser cette méthode, vous avez besoin d'un serveur dédié avec la possibilité d'installer vos applications (inkscape et ghostscript) et exécution des commandes système. Dans ce cas, tout fonctionnera à la fois sur la plate-forme Windows et sur Linux.

Je pense que Bref FAQ a allumé les questions principales sur cette méthodePar conséquent, passez immédiatement à l'analyse de son essence.

Comme vous le savez, le format du vecteur Graphics SVG est en fait un fichier XML, le fichier a donc déjà créé suffisamment simplement les outils de programmation les plus simples. En cas d'utilisation Fichier svget comme modèle rigide, le processus est simplifié parfois, car Nous n'avons pas besoin de changer la structure du document et il vous suffit de remplacer les valeurs textuelles souhaitées ou codées dans des images raster de base64.

Vous pouvez créer un modèle initial dans n'importe quel éditeur vectoriel prenant en charge les exportations vers SVG: Adobe Illustrator, Corel Draw ou Inkscape lui-même. L'utilisation de ce dernier est souhaitable, du moins sur le dernier étage convectif, car, à terme, c'est lui et pour produire la transformation dont vous avez besoin.

Lors de l'utilisation d'un raster dans un modèle, vous pouvez utiliser des méthodes 2-A, stocker un raster dans un fichier externe séparé ou intégré dans le fichier SVG lui-même. S'il est nécessaire de modifier le motif raster dans le modèle dans le premier cas, vous pouvez modifier le fichier avant de générer. Lors du stockage du motif intégré au fichier, dans la propriété URL des objets d'image pour enregistrer la chaîne:

où (image) est une boîte pour insérer un modèle de base d'image codé64.

Par exemple, dessinez un simple motif de badge, je pense que vous êtes désolé pour la courbe, je ne suis pas un artiste, mais pour un usage réel, vous pouvez commander votre mise en page de vecteur de concepteur.


Je n'ai pas utilisé le changement changeable image raster, laissant-le aux devoirs et se limitait uniquement aux champs de texte modifiables.

Je pense que vous avez déjà attiré l'attention sur le fait que, dans les lieux des étiquettes de texte présumées du modèle (dans cet exemple Utilisé). Exactement en utilisant xml. Les balises compatibles permettent de les prescrire dans l'éditeur de vecteur sans recourir à une modification supplémentaire.

Nous avons un modèle et sans aucun problème ne pourront insérer les données dont vous avez besoin, mais aussi, nous allons réellement effectuer une transformation? Pour ce faire, utilisez l'interface ligne de commande Inkscape:

# Convertir au fichier PDF
Inkscape -a.

En utilisant la clé " -UNE.»Nous obtenons immédiatement un fichier PDF, mais malheureusement, le PDF directement créé par directement grandes tailles. Pour résoudre ce problème, vous pouvez faire le tour. À savoir, l'exportation de SVG n'est pas directe au PDF, mais par chaîne Svg-\u003e ps-\u003e pdf. Utiliser pour la formation finale Fichier PDF. L'utilitaire PS2PDF du kit de script de fantôme, nous pouvons réduire la taille du fichier final dans des dizaines de fois.
# Conversion au fichier PostScript
Inkscape -p.
# Conversion au fichier PostScript en PDF
Ps2pdf.

Le seul point négatif est que dans ce cas, nous perdrons tous les effets de transparence, car le format PostScript ne le supporte pas.

Pour une tolérabilité totale des documents générés, vous pouvez ajouter une option inscritante " -T.»Transformation de tout le texte sur les courbes. Avec cela, nous pouvons nous débarrasser des problèmes en présence de polices sur une machine cliente, ainsi que des problèmes de codage.

Nous avons maintenant tout ce dont vous avez besoin: modèle SVG et équipes de transformation. Nous écrivons un script PHP qui donnerait le fichier PDF généré à partir du modèle.

/* ****************************************************************************************
* Script formant une passe de fichier PDF à l'aide d'une conversion séquentielle
* Modèle dans le fichier SVG, après quoi il est converti en inkscape de fichier PostScript,
* Et ce dernier est converti en PDF à l'aide de l'utilitaire PS2PDF.
*
* Auteur: shebasteuk v.v. ALIAS. Jstingo.
* **************************************************************************************** */

/ * Options de script * /

// chemin vers le dossier avec des fichiers temporaires
// (Sauf spécification, les fichiers seront stockés dans le dossier temporaire système)
$ Tmp_dir \u003d ""; // Génère le chemin d'accès aux fichiers SVG, PS et PDF temporaires
$ TMP_SVG_FILE \u003d TEMPNAM ($ TMP_DIR, "");
$ TMP_PS_FILE \u003d TEMPNAM ($ TMP_DIR, "");
$ TMP_PDF_FILE \u003d TEMPNAM ($ TMP_DIR, ""); / * Fasttemplate * /
inclure ( "Inclure / cls_fast_template.php");
$ TPL \u003d nouveau fasttemplate ("modèles"); essayez ( / * Bloc avec des données obtenues pour modèle * /
/* ........................... */
$ user_name \u003d "jstingo";
$ register_date \u003d "28/09/2007";
/* ........................... */
/ * Forment le nom du fichier de résultat sous forme d'user_name.pdf * /
$ Pdf_file_name \u003d $ nom_utilisateur. ".pdf"; / * Traitement de modèle et recevant un fichier de résultat * /$ TPL -\u003e Définir (tableau ("SVG" \u003d\u003e "template.svg"));
$ TPL -\u003e Attribuer (tableau ("nom_nom" \u003d\u003e $ user_name,
"R_date" \u003d\u003e $ registre_date
));
$ TPL -\u003e parse ("svg", "svg"); // Enregistrez le fichier SVG résultant
$ TPL -\u003e FastWrite ("SVG", $ TMP_SVG_FILE); // Nous fabriquons une conversion de fichier SVG Inkscape "A dans le fichier PS
// clés
// -T - sert à convertir le texte en courbes (pour la prise en charge normale des polices)
// -p - indique la nécessité de convertir dans le fichier PostScript
système ( "Inkscape -t $ TMP_SVG_FILE -P $ TMP_PS_FILE", $ succès); si ($ réussite! \u003d 0)
jeter une nouvelle exception ( "Erreur lors de la formation d'un fichier PS.");// transformer le fichier PS en PDF à l'aide de l'utilitaire PS2PDF

// clés
// -DuseflateCompression \u003d True - Définit l'utilisation de la compression
// -DPDFSettings \u003d / imprimante - Définit l'optimisation d'impression

système ( "Ps2pdf -duseflatecompression \u003d true -dpdfsettings \u003d / imprimante $ TMP_PS_FILE $ TMP_PDF_FILE", $ succès); // en cas de transformation infructueuse, nous formons une exception
si ($ succès! \u003d 0)
jeter une nouvelle exception ( "Erreur lors de la formation d'un fichier PDF.");// titre que nous allons changer le fichier PDF
entête ( "Type de contenu: Application / PDF");// la clause sera comme $ pdf_file_name
entête ( "Disposition de contenu: pièce jointe; nom de fichier \u003d" ". $ Pdf_file_name. "" "); // envoyer un fichier généré
lIFILE ($ TMP_PDF_FILE); // Supprimer des fichiers temporaires
@ Dislink ($ TMP_SVG);
@ Dislink ($ TMP_PS_FILE);
@ Dislink ($ TMP_PDF_FILE); attrape (exception $ e) (
/ * Si une erreur s'est produite quelque part, nous en informons * /
$ TPL -\u003e Définir (tableau ("Erreur" \u003d\u003e "error.tpl"));
$ TPL -\u003e Attribuer ("erreur", $ E -\u003e getMessage ()); $ TPL -\u003e parse ("erreur", "erreur");
$ TPL -\u003e FastPrint ("erreur");
}
?>

Je pense que tout le monde ne sera pas beaucoup de difficulté à réécrire le script dans un autre langage de programmation.

J'ai d'abord rencontré la tâche de générer des documents PDF sur le site n'importe quel programmeur (j'espère) commencera à la recherche de solutions prêtes à l'emploi, à savoir la bibliothèque qui lui fournira ces opportunités. J'avais besoin d'une bibliothèque pour PHP, de manière à ne pas vous lier à l'avenir, car le site a fonctionné pour PHP. Je voudrais toujours qu'il soit libre et autorisé à l'utiliser librement à des fins commerciales. J'ai trouvé des informations sur la 3ème options:

Pdffib dans la version gratuite ne prend pas en charge UTF-8, ce qui est mauvais. Avec FPDF, presque la même histoire, j'ai donc jeté ces options immédiatement et je ne me suis pas dérangé avec eux. Les informations sur TCPDF dans le réseau sont beaucoup beaucoup. Cette bibliothèque fait également partie de nombreux CMS populaires.

Il existe des versions pour PHP4 et PHP5. J'ai besoin d'un cinq.

Déballez les archives. Nous verrons la liste suivante de fichiers et de répertoires dans le répertoire TCPDF:

Cache Config DOC - Documentation (vous pouvez jeter à l'aide de la documentation) Exemples - Vous pouvez également jeter les polices images 2dbarcodes.php htmlcolors.php tcpdf.php unicode_data.php TCPDF.CLT TCPDF.FDF Changelog.txt License.txt Readme .SMS

TCPDF Lors de la génération d'un document, inclut les polices utilisées dans le document. Ces polices se trouvent dans le répertoire des polices. Trois fichiers correspondent à chaque police:

Wift name.php_name.z name_name.ctg.z.

Les polices cyrilliques Il n'y a pas que nous sommes compréhensibles, ne convient pas. Si vous envisagez d'utiliser dans un document cyrillique, vous pouvez tout supprimer sauf Helvetica.php, car il est utilisé par la bibliothèque par défaut et les dossiers UTILS, où tout ce dont vous avez besoin pour préparer des polices cyrilliques.

Disons que nous avions besoin d'une police de la conception normale de l'Arial. Nous prenons la police Arial (normale) du dossier Système Windows (par exemple) - le fichier ARIAL.TTF - et copiez-le dans le dossier Fonts / Utils.

Dans ce dossier, il y a un utilitaire TTF2UFM, dont nous avons besoin pour pleuvoir le fichier ARIAL.TTF:

Php -q makefont.php arial.ttf arial.eufm

Si votre machine locale n'interprète pas PHP, vous pouvez effectuer le fichier suivant sur le serveur:

Si vous "pleuvez" plusieurs fichiers et souhaitez former toutes les polices à la fois (pour lesquelles * .dufm Fichiers sont créés), qui sont disponibles dans le dossier, commencez à créer MakingLtTemplontS.php.

Après le fonctionnement de cet utilitaire, nous avons trois fichiers dans le dossier Utils: Arial.php, Arial.Z, Arial.ctg.z, que nous devons passer au dossier des polices. Les fichiers ARIAL.TTF et ARIAL.UFM ne sont plus nécessaires, afin que nous puissions les supprimer en toute sécurité.

En conséquence, nous avons préparé la police arial, qui sera connectée au fichier PDF formable. Mais dans le même temps, il est nécessaire de considérer que la taille du document PDF formé augmentera à peu près à la taille du fichier de la police Arial.z. Il est également nécessaire de prendre en compte que si nous voulons lancer des inscriptions, nous devrons créer une police Ariali séparée pour cela, ou si Bold-Arcials - Arialb.

Il est temps de créer notre document.

// Créer un nouveau document PDF $ PDF \u003d Nouveau TCPDF ("P", "MM", "A4", TRUE, "UTF-8", FAUX);
// définit Informations sur le document $ PDF-\u003e SetAuthor ("Votre nom"); $ PDF-\u003e Settitle ("Nom de notre document");
// Définit les données d'en-tête par défaut $ PDF-\u003e SetHaderData (pdf_header_logo, pdf_header_logo_width, pdf_header_title, pdf_header_string);
// Définir des polices d'en-tête et de pied de page $ PDF-\u003e SETHADERFONT (tableau (PDF_Font_Name_Main, "", pdf_font_size_main)); $ Pdf-\u003e setfooterfont (tableau (pdf_font_name_data, "", pdf_font_size_data));
// Définir la police monospaçée par défaut $ pdf-\u003e setDefaultMonospaCedfont (pdf_font_monospaced);
// SET MARGINS $ PDF-\u003e SETMARGINS (PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $ Pdf-\u003e setheadermargin (pdf_margin_header); $ Pdf-\u003e setfootermargin (pdf_margin_footer);
// SET PAGE AUTO pause $ PDF-\u003e SetaTopageBreak (true, pdf_margin_bottom);
// set policier $ pdf-\u003e setfont ("temps", "bi", 16);
// Ajouter une page $ PDF-\u003e Addpage ();
// Imprimez une ligne à l'aide de cellules () $ pdf-\u003e cellule (0, 12, "Exemple 1", 1, 1, "C");
// Fermer et sortie PDF Document $ PDF-\u003e Sortie ("Exemple_1.pdf", "I"); ?\u003e

C'est un exemple très simple. Le dossier Exemples Il existe de nombreux exemples plus complexes illustrant la quasi-totalité des fonctionnalités de la bibliothèque.

Je donnerai également quelques liaisons utiles:

    Documentation TCPDF à Joomla http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp\u003dtcpdf_docs

    L'article que j'ai vraiment aidé à mon temps et les matériaux dont j'ai utilisé lors de la rédaction de cet article

La génération de documents PDF est une tâche quotidienne dans le développement Web. La liste de ces documents comprend des comptes, des frais généraux, des politiques et d'autres. Il existe de nombreuses bibliothèques prêtes à résoudre ce problème, y compris PHP. Par exemple, MPDF, TCPDF et beaucoup d'autres. Le fichier peut être collecté à l'aide de l'API de ces bibliothèques, mais c'est une leçon assez longue. Et il n'y a pas de temps pour la réalisation de la tâche, n'est-ce pas? Par conséquent, le plus souvent, le fichier PDF est créé à partir de la représentation HTML, qui est tout à fait pratique. Mais, malheureusement, tout n'est pas si simple. Cette approche a de nombreux pièges capables d'apporter quelqu'un.

Par example:

  • Les styles ne peuvent pas être connectés séparément, ils doivent donc être inclus dans le document HTML par une unité distincte ou en ligne pour chaque élément. Il n'y a rien de terrible, un léger inconvénient.
  • Malheureusement, dans de telles bibliothèques, certains styles ne peuvent pas fonctionner comme vous l'attendez ou ne fonctionnent pas en principe. C'est l'inconvénient principal.
  • Depuis l'article précédent, il s'ensuit que la création d'un document est très appropriée que possible, et parfois, il est tout simplement impossible.
  • Et dans le cas de développer sous le bitrix, il y a un autre problème. Tout le monde sait que la plate-forme est nécessaire pour installer le paramètre mbstring.func_overloadload sur la valeur de 2. et pour créer un fichier PDF contenant cyrillique, la valeur est de 0. Typiquement, ce problème est résolu en configurant un serveur Web, mais toujours désagréable. .

Face une nouvelle fois avec une telle tâche, je pense de plus en plus au fait que la génération de fichiers PDF devrait être engagée dans un microservice distinct, en particulier si le projet est grand, mais c'est une histoire complètement différente.

Il est temps de passer à la partie principale de cet article. Outre les options proposées ci-dessus, il existe une alternative - Phantomjs.

Phantomjs est un assemblage d'un moteur WebKit sans interface graphique qui vous permet de télécharger une page Web dans le mode Console, exécutez JavaScript, fonctionnant entièrement avec DOM, Toile et SVG.

Bien entendu, en plus des capacités ci-dessus, il permet de créer des fichiers PDF.

Comment? Parlant par une langue simple, il charge la page Web requise et vous permet de sauvegarder le résultat en tant que fichier PDF.

Le processus d'installation de Phantomjs est décrit en détail en détail dans la documentation. Je ne vais donc pas m'attarder sur cette question.

Un point important dans le travail de Phantomjs est le fichier JS (ci-après configuration), que son contenu détermine ce que nous voulons faire. Sur le site officiel, il existe de nombreux exemples prêts à ce que de tels fichiers par lesquels diverses tâches sont résolues, par exemple, des tests unitaires. Parmi les exemples, il y a enregistrer une page Web au format PDF. C'est exactement ce dont nous avons besoin.

Une paire de petites modifications permettra cet exemple à nos fins.

var page \u003d nécessite ("Webpage"). Créer (), système \u003d nécessite ("système"), adresse, sortie, taille; // S'il y a peu d'arguments ou trop, un message est affiché en utilisant Si (Système. Args. Longueur< 3 || system . args . length > 5) (Console. Log ( "Utilisation: config.js URL FileName"); Console. Journal ( "Papier (sortie PDF) Exemples:" 5in * 7.5in "," 10cm * 20cm "," A4 "," Lettre "" "); Console. Journal ( "Image (sortie PNG / JPG) Exemples:" 1920px "Page complète, largeur de fenêtre 1920px"); Console. Journal ( "" 800px * 600px "fenêtre, coupée à 800x600"); Fantôme. Sortie (1); ) AUTRE ( // Arguments de traitement Adresse \u003d système. args [1]; Sortie \u003d système. args [2]; Page. Viewportsize \u003d (largeur: 800, hauteur: 800); Si (Système. Args. Longueur\u003e 3 && Système. args [2]. SUBSTR (- 4) \u003d\u003d\u003d ".pdf") (taille \u003d système. args [3]. Split ("*"); PAGE. PAPERSIZE \u003d (Taille. Longueur \u003d\u003d\u003d 2)? (Largeur: Taille [0], Hauteur: Taille [1], Marge: "0px"): (Format: Système [3], Orientation: "Portrait", Marge: "Portrait", Marge : "1cm");) sinon (console. Journal ("Path de pdf non valide!"); Fantôme. Quitter (1);) Si (Système. Durée\u003e 4) (page. Système. Args [4 ];) // Ouverture d'une page et enregistrez le résultat Page. Ouvrir (si (Status! \u003d\u003d "Succès") (Console. Journal ("Impossible de charger l'adresse!"); Phantom. Quitter (1);) Autres (Fonction (Fonction) (Fonction) Sortie); fantôme. Sortie ();), 200););)); )

A $ PHANTOMJS PATH / TO / CONFIG.JS "URL" chemin / à / pdf / fichier "A4"

Nous analyserons les arguments dans l'ordre:

  1. Chemin d'accès à config.js.
  2. L'adresse de la page Web que vous souhaitez convertir dans le fichier PFD.
  3. Le chemin du fichier PDF dans lequel le résultat sera enregistré.
  4. Format de fichier PDF.

Nous obtenons un fichier PDF souhaité.

De retour à PHP, cette solution est assez facile à intégrer dans le code.

Dans le cas le plus simple, cela ressemble à ceci:

$ Commande \u003d sprintf ("Phantomjs% S% S% S% S", $ FullPathtoconfigjs, $ URL, $ Fullpathtosave, $ Format); EXEC ($ commande);

Alors, résumons. À mon avis, une telle solution présente les avantages suivants:

  • Nettoyez la mise en page pour un tel document loin Plus facile. C'est très important, car Non seulement simplifie le développement, mais ne se transforme pas en un cauchemar des modifications ultérieures du document.
  • Veille à être accompli avec mbstring.func_overload. Mais cela est sans aucun doute le problème est caractéristique principalement pour Bitrix.

Bien sûr, il y a des inconvénients:

  • Pas de soutien à 100% pour tous les styles CSS. Mais en comparaison avec les bibliothèques énumérées au début de la technique, tout est très bon.
  • Cette solution peut effrayer le développeur novice.
03.12.2015

Afin de générer un fichier PDF à partir de HTML, nous utiliserons la bibliothèque DOMPDF pour PHP. Et ensemble, nous pouvons obtenir des fichiers PDF générés de haute qualité avec des caractères russes.

Donc, procédez. Tout d'abord, vous devez télécharger la bibliothèque elle-même à:

Ou l'installer via Composer:

Compositeur nécessite DOMPDF / DOMPDF

Cependant, il convient de noter que l'assemblage standard ne prend pas en charge les caractères russophones. Par conséquent, vous devez creuser Internet pendant longtemps et essayer, essayer, essayer. Pour réduire votre temps, nous avons déjà tout recueilli. Ci-dessous, vous pouvez télécharger une bibliothèque avec prise en charge des caractères russophones.

Si vous souhaitez utiliser l'assemblage standard, remplacez simplement des fichiers de cette archive (916 kb).

Vous devrez remplacer les fichiers dans le dossier:

../dompdf/lib/fonts.

Avec ce script, vous pouvez former des fichiers PDF complexes avec des tables, des images à partir de HTML entreront dans un fichier PDF.

Nous utilisons cette bibliothèque pour générer un PDF avec la requête Ajax. Dans l'archive téléchargée, vous trouverez le fichier index.php qui traite les données entrantes, connecte le modèle dans lequel les images sont déjà construites. Nous avons déchargé pour vous entièrement travailleur et nous utilisons l'option (5 Mo).

Téléchargez un exemple de fichier PDF généré (580 Ko)

Si vous avez téléchargé la bibliothèque, connectez-la à votre PHP à l'aide de la connexion AutoLoader:

Exiger_once "DompDF / Autoload.inc.PHP";

Ou utiliser git:

Git clone https://github.com/dompdf/dompdf.git.
cD DOMPDF.
git clone https://github.com/phenx/php-font-lib.git lib / php-polon-lib
cd lib / php-font-lib
checkout GIT 0.5.1.
cd ..
git clone https://github.com/phenx/php-svg-lib.git php-svg-lib
cD PHP-SVG-LIB
git checkout v0.3.

Le gestionnaire lui-même ressemble à ceci:

// connecter l'incluse_once autoloader.inc.inc.PHP Autoloader; // fonction pour nettoyer le code de la fonction de données malveillante Challsrt ($ données) ($ aray1 \u003d tableau ("\\" "," * ","% "," 0x "," & "," \\ 0 "," n "," \\ r "," \\ s "," \\ t "," \\\\ "," `" "," ^ "," $ "," ("," "," , "(", ")", "WSS", "Blob", "Localhost", "-" - "," Услуги Цены Создание сайта-визитки от 2 499 UAH, от 5 999 RUR (сайт-одностраничник) Создание простого сайта от 3 499 UAH, от 7 999 RUR
(наполнение до 10 страниц без оплаты) Создание интернет-магазина от 5 499 UAH, от 11 999 RUR
(наполнение до 50 товаров – без оплаты) Дополнительные услуги по согласованию с заказчиком Продление доменного имени и хостинга 599 RUR+цена хостинга+цена домена Написание уникальных статей
(не входящих в пакет услуг создания сайта) от 29 UAH, 69 RUR / 1000 символов без пробелов Поддержка сайта первые 14 дней без оплаты Поддержка сайта после 14 дней 749 UAH, 1599 RUR / 30 дней
(если производились действия) Минимальная стоимость хостинга 329 UAH, 719 RUR / 365 дней
[расположение: RU, DE, UA] Минимальная стоимость доменного имени 169 UAH, 399 RUR / 365 дней Подбор доменного имени даром "; //склеиваем все данные $html=$table_one_head.$table.$table_one_down; // если в таблице есть нечитаемые для PDF скрипта символы, то заменяем их на читаемые $html=str_replace("₽","рос. руб.", $html); //убираем пробелы HTML $html=str_replace(" "," ", $html); //генерируем имя файла с уникальным ключем $name=date("Y-m-d-H-i-s").uniqid().".pdf"; //обрабатываем данные с помощью библиотеки DOMPDF $d->loadHtml($html); //устанавливаем ориентацию листа portrait || landscape $d->setPaper("A4","portrait"); //отображаем готовый PDF $d->render(); //записываем PDF в файл file_put_contents(getenv("DOCUMENT_ROOT")."/pdf/{$name}", $d->output()); //можно отправить ответ после AJAX Запроса с ссылкой на файл. у на //echo "

Скачать файл
";

Используемые библиотеки:

  • PDF Rendering
    • CPDF (included with dompdf)
    • PDFLib
  • Font handling if using fonts other than the core PDF fonts (courier, helvetica, times)
    • 0.5.x
  • Document parsing
    • html5lib (included with dompdf)
  • SVG rendering
    • 0.3.x for SVG support

Системные и иные требования:

  • PHP version 5.4.0 or higher
  • DOM extension
  • GD extension
  • MBString extension
  • php-font-lib
  • php-svg-lib

Поддержка:

  • CSS 2.1 и некоторые CSS3 свойства, такие как: @import, @media & @page правила
  • HTML 4.0
  • Внешних стилей http/ftp (с fopen-запросами)
  • tables, вместе с параметрами строк и ячеек, отступов и других стилей для тиблиц
  • изображений (gif, png (8, 24 and 32 bit with alpha channel), bmp & jpeg)
  • простых SVG

PDF24 Creator, это бесплатный PDF генератор для вашего ПК. Генерация PDF файлов невероятно простая задача с этой программой. Комбинация дополнительных возможностей вместе с созданием PDF файлов, делает этот инструмент одной из самых признанных бесплатных программ. В качестве альтернативы вы также можете генерировать PDF онлайн. Прочтите ниже как это работает.

PDF24 Creator – бесплатный PDF генератор

PDF24 Creator, это бесплатный PDF генератор для Windows. Генерация PDF файлов реализована с помощью PDF принтера. После установки в вашей Windows появится новый виртуальный PDF принтер. Просто печатайте через этот принтер все, что хотите превратить в PDF. PDF принтер, это единственный путь создания PDF. Программа включает в себя широкий диапазон возможностей, которые помогут вам в генерации PDF. Эта программа бесплатна. Вы можете скачать свежую версию с этого сайта.

PDF24 Онлайн PDF Генератор – Генерация PDF файлов онлайн

Онлайн PDF Генератор, это полезный инструмент, если вы хотите преобразовать документы в PDF формат. Просто выберите документ или отправьте документ по почте в Онлайн PDF Генератор и через несколько секунд ваш PDF файл будет доступен для скачивания или отправлен вам обратно.

Email интерфейс для этого PDF генератора также доступен. Нужно отправить файлы генератору и дождаться ответного письма, в котором будут файлы, сконвертированные в PDF

Множество других PDF генераторов в инструментарии PDF24

Онлайн утилиты от PDF24 решают многие проблемы, связанные с PDF, достаточно просто, быстро и бесплатно. Многие из этих инструментов генерируют PDF файлы. Вы ещё не знакомы с онлайн утилитами PDF24? Взгляните, вы сможете использовать все эти инструменты.

La cloche.

Il y a ceux qui ont lu cette nouvelle devant vous.
Abonnez-vous pour recevoir des articles frais.
E-mail
Nom
Nom de famille
Comment voulez-vous lire la cloche
Sans spam