Как создать тему PDF, сгенерированную модулем печати?
Я хотел бы оформить PDF-файл, созданный модулем печати. Я хотел бы добавить верхний и нижний колонтитулы, поля, границы в созданный PDF-файл.
Модуль сертификата в Drupal предоставляет тематику сертификата, но мой сайт почти похож на сайт для чтения и получения сертификата, поэтому я не хочу менять модуль печати.
Я попробовал изменить форму и другие материалы, но не уверен, откуда можно изменить PDF.
4 answers
Drupal 7 предоставляет возможность изменять содержимое с помощью этого API. Это должно быть довольно просто, просто поместите этот крючок в свой template.php и добавьте новую функцию, с помощью которой должен быть отрисован PDF-файл. Используйте приведенный ниже код в качестве ссылки.
function theme_print_pdf_tcpdf_content(&$vars) {
return new_function_that_prints_the_content($vars);
}
При создании узла вам следует вызвать функцию, которая сгенерирует pdf-файл. Используйте класс tcpdf для создания pdf-файлов и загрузки функций tcpdf./ Проверьте также ссылку
class my_pdf extends TCPDF { //Page header public function Header() { } // Page footer public function Footer() { } }
$pdf = new my_pdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, UTF-8', false);
$pdf->setPrintHeader(true);
$pdf->setPrintFooter(true);
$pdf->SetMargins(25.0, 40, 25.0);
$pdf->SetFooterMargin(1.5);
$pdf->SetAutoPageBreak(TRUE, 50);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
$pdf->AddPage();
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->lastPage();
$pdf->Output('my_document.pdf', 'D');
Модуль печати поставляется с print-pdf.tpl.php шаблон, а также print.tpl.php шаблон (или используйте тот, что в вашей теме). Поскольку все дело в стилизации, лучше посмотрите на их редактирование и поместите их в папку вашей темы.
На самом деле это возможно с помощью крючка для TCPDF:
/**
* Implements hook__print_pdf_tcpdf_alter()
*/
function MODULENAME_print_pdf_tcpdf_alter($pdf, $html, $meta) {
$pdf->setPrintHeader(FALSE);
$pdf->SetPrintFooter(FALSE);
}