Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WKHTMLtoPDF header file content not displayed in PDF

I'm trying to hide the header page number on the first page using this example I found here. Which only works if I use it with footer-html and doesn't show/hide anything if I use it with header-html. Originally I was trying to augment this solution which also worked using footer-html, but since I couldn't get it to work in the header I kept on searching. I've tried it with and without 'header-center' => '[[page]]' in case using this with header-html caused conflicts. Anyone been able to get this to work in the headers recently? I'm using PHPWKHTMLtoPDF wrapper version 1.2.6-dev if that helps with a up to date version of WKHTMLtoPDF, since the newest version of PHPWKHTMLtoPDF uses namespaces and we're using CodeIgniter 2.x-dev, which doesn't support them (or play well can't remember).

    // Create document PDF
    $pdf = new $this->wkhtmltopdf;

    // Locate WkHtmlToPdf executable for Windows
    if( $pdf->getIsWindows() ) 
    {
        $pdf->setOptions( array( 'binPath' => 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe', 
                                 'no-outline',
                                 'encoding' => 'UTF-8',
                                 'margin-top'    => 30,
                                 'margin-right'  => 20,
                                 'margin-bottom' => 30,
                                 'margin-left'   => 20,

                                 // Default page options
                                 'disable-smart-shrinking',
                                 'user-style-sheet' => 'pdf.css',
                                 'header-html' => dirname(__FILE__) . '\..\views\wkhtmltopdf\header.html'
        ) );
    }

    // Generate document fields
    $docInputs = $this->generate_inputs( $inputs, json_decode( $this->load->file( APPPATH . '/mapping/' . $document['mapping'], TRUE ), TRUE ) );

    // Merge document fields into HTML exported Word files
    $docHTML = $this->parser->parse( 'docs/' . $document['html'], $docInputs, TRUE );

    // Add HTML as page, along with option for page header
    $pdf->addPage( $docHTML, array( 'header-center' => '[[page]]',
                                    'header-spacing' => '10',
                                    'header-font-name' => 'Times New Roman'
    ) ); 
like image 935
mtpultz Avatar asked Jan 08 '15 18:01

mtpultz


2 Answers

You need to add the <!DOCTYPE html> to the header file, WKHTMLtoPDF issue #46 for version 0.12

like image 106
mtpultz Avatar answered Oct 15 '22 15:10

mtpultz


I'm posting this answer because this happened to me and this might also be a reason.

I'v also noticed if you set the header css to this. It will not show the header.

html{
   width: 100%;
   height: 100%;
}
like image 28
Donny V. Avatar answered Oct 15 '22 15:10

Donny V.