Подтвердить что ты не робот

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

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

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

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

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

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

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

Ответ 1

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

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

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

Ответ 2

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

Примеры TCPD

Ответ 3

try 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

Ответ 5

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

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

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Ответ 9

Вот пример того, как создавать несколько страниц с одним 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');

Ответ 10

Мне это было нужно для проекта, поэтому я создал быстрый инструмент для этого. Вы можете проверить это и не стесняйтесь внести свой вклад здесь