Как создать тему PDF, сгенерированную модулем печати?


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

Модуль сертификата в Drupal предоставляет тематику сертификата, но мой сайт почти похож на сайт для чтения и получения сертификата, поэтому я не хочу менять модуль печати.

Я попробовал изменить форму и другие материалы, но не уверен, откуда можно изменить PDF.

 5
Author: Gladiator, 2013-11-12

4 answers

Drupal 7 предоставляет возможность изменять содержимое с помощью этого API. Это должно быть довольно просто, просто поместите этот крючок в свой template.php и добавьте новую функцию, с помощью которой должен быть отрисован PDF-файл. Используйте приведенный ниже код в качестве ссылки.

function theme_print_pdf_tcpdf_content(&$vars) {  
  return new_function_that_prints_the_content($vars); 
}
 2
Author: , 2013-12-12 06:19:55

При создании узла вам следует вызвать функцию, которая сгенерирует 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');
 2
Author: harshal, 2013-11-12 05:26:46

Модуль печати поставляется с print-pdf.tpl.php шаблон, а также print.tpl.php шаблон (или используйте тот, что в вашей теме). Поскольку все дело в стилизации, лучше посмотрите на их редактирование и поместите их в папку вашей темы.

 2
Author: Quentin Campbell, 2013-11-12 08:49:21

На самом деле это возможно с помощью крючка для TCPDF:

/**
 * Implements hook__print_pdf_tcpdf_alter()
 */
function MODULENAME_print_pdf_tcpdf_alter($pdf, $html, $meta) {
  $pdf->setPrintHeader(FALSE);
  $pdf->SetPrintFooter(FALSE);
}
 1
Author: Colin Shipton, 2014-04-21 10:26:17