Создать новый PDF из шаблона с PHP

У меня есть файл документа docx, созданный с помощью форматирования и компоновки, который я сохранил как файл PDF. Я хочу использовать этот pdf-файл в качестве шаблона для создания новых pdf-файлов, предварительно заполненных пользовательскими данными.

Я видел FPDF , FPDI , tcPDF , domPDF , Zend PDF , http://koivi.com/fill-pdf-form-fields/ (Justin Koivisto), несколько инструментов конвертации, таких как HTML2PDF и несколько инструментов командной строки, упомянутых здесь в переполнение стека. За исключением FPDI , ни один из них не предлагает пример с использованием шаблона PDF для поиска и замены пользовательских тегов с фактическими данными (обычно из базы данных) или добавления данных без указания набора значений, таких как x, y, postion, шрифт, шрифт и т.д.

Создание PDF с нуля кажется слишком большой работой. Я еще не рассмотрел использование конвертера HTML2PDF, поскольку результаты кажутся сильно различающимися, и тогда возникает проблема с стилем. Некоторые инструменты позволяют использовать CSS, но часто с ограничениями, такими как поддержка float.

Нет ли простого способа использовать шаблон, например, для Excel с помощью PHPExcel ?

Моя потребность:

  • Свободно
  • Загрузка и использование шаблона
  • Поиск и замена пользовательских тегов
  • Добавление данных (текст, изображение, шрифт, формирование и т. Д.)
  • Пользовательский заголовок
  • Необходимо работать с общим хостингом
  • Разрешить загрузку, сохранение / сохранение на сервер и прикрепление к электронной почте (желательно, не сохраняя ее в первую очередь) окончательного сгенерированного PDF-файла

Solutions Collecting From Web of "Создать новый PDF из шаблона с PHP"

Я действительно рекомендую MPDF :

  1. он основан на FPDF и HTML2FPDF, поэтому вы можете использовать некоторые из своих функций или добавлять другие
  2. у него много тонких функций (создайте любые штрих-коды, поддержку локалей, водяные знаки и многое другое)
  3. он имеет очень хорошо оформленную документацию
  4. у него есть форум сообщества
  5. у него есть примеры!
  6. он имеет легкую кривую обучения

Единственное плохая вещь в том, что она немного тяжелая, но вы можете удалить вещи, которые вам не нужны.

используя TCPDF, вы можете создать шаблон PDF с использованием принципов HTML-тегов, который быстро создать, прост в использовании, легко интегрировать. Я использовал его для создания подробных счетов-фактур адвокатского бюро (несколько страниц разного формата), производственного конверта ювелирных изделий мастерская (включенная фотография), банкноты и счета-фактуры.

Примеры TCPD

попробуйте FPDI, он поддерживает редактирование существующего шаблона и внесение изменений в этот файл шаблона

использование довольно прямолинейно:

<?php require_once('fpdf.php'); require_once('fpdi.php'); $pdf = new FPDI(); $pagecount = $pdf->setSourceFile('TestDoc.pdf'); $tplidx = $pdf->importPage(1, '/MediaBox'); $pdf->addPage(); $pdf->useTemplate($tplidx, 10, 10, 90); $pdf->Output('newpdf.pdf', 'D'); 

Также см. Ссылки ниже: Есть ли решение для pdf-шаблона в PHP?

Написание / Рисование над документом шаблона PDF в PHP

http://www.livedocx.com/

LiveDocx – это платформа для создания документов на основе шаблонов.

http://www.phplivedocx.org/articles/getting-started-with-phplivedocx/

Проблема с попыткой использования PDF в качестве «шаблона» заключается в том, что PDF является форматом документа набора. Например. это фиксированный макет, и вы не должны слишком возиться с макетом.

Было бы намного проще, если вы хотите сделать больше с этим, использовать что-то вроде XSL-FO для создания ваших документов из XML-шаблона. Все, что вам нужно, это создать XML с правильными полями на месте, и рендеринг XSL-FO может затем создать PDF-файл для вас.

Лучший (только?) Бесплатный визуализатор XSL-FO – это Apache FOP.

Вы можете пропустить всю боль определения шаблона поверх существующего PDF с помощью https://github.com/applicius/dhek/releases . Он создает область сопоставления JSON над PDF-страницей / координатами, поэтому вы можете заполнить ее с помощью API PDF, который вы предпочитаете.

Вместо этого с PHP вы можете использовать функцию Word или OpenOffice Mail Merge для создания шаблона и импорта данных в теги. Затем вы можете «печатать», а экспортировать в формате pdf вместо фактической печати. Это может быть более быстрое решение, если вам не нужно регулярно обновлять шаблон. Я сделал это примерно для 150 продуктов, и потребовалось менее 30 минут, включая создание шаблона и загрузку PDF-файлов. Просто последушие, надеюсь, это поможет кому-то еще!

Взгляните на http://template2pdf.com/ Он предоставляет API, который позволяет использовать шаблоны OpenOffice или LibreOffice и делать замену текста или изображений.

Вот пример того, как создавать несколько страниц с одним PDF-шаблоном и контентом в формате HTML. На основе библиотеки MPDF .

 $mpdf = new mPDF('utf-8', $format_size, 0, '', $margin_left, $margin_right, $margin_top, $margin_bottom, 0, 0, $orientation); if ( $bg_template ) { // is a PDF template file $mpdf->SetImportUse(); $pagecount = $mpdf->SetSourceFile( $bg_template ); $tplIdx = $mpdf->ImportPage( $pagecount ); } foreach ( $html as $one_letter_text ) { $mpdf->addPage(); if ( $bg_template ) { $mpdf->useTemplate( $tplIdx, 0, 0); } $mpdf->WriteHTML( $one_letter_text ); } $title = 'my-letter.pdf'; $pdf_path = $this->created_pdf_upload_dir.'/'.$title; $mpdf->Output( $pdf_path, 'F');