Добавление фиксированного заголовка с тегом dompdf и скрипта

0

Я пытаюсь добавить фиксированный заголовок на каждой странице с разбивкой на страницы с dompdf, только по некоторым причинам не распознает методы:

require("NWIT.dompdf/dompdf_config.inc.php");
class NWIT_REPORTGEN extends NWIT_RAMS{

    protected $pdfdom;
    function __construct() {
        $this->pdfdom = new DOMPDF();
    }

    function generate_report() {
        $name_of_generated_report = 'hello';
        $font = Font_Metrics::get_font("helvetica", "normal");
        $size = 9;
        $y = $this->pdfdom->get_height() - 24;
        $x = $this->pdfdom->get_width() - 15 - Font_Metrics::get_text_width("1/1", $font, $size);
        $fixed_header = $this->pdfdom->page_text($x, $y, "{PAGE_NUM}/{PAGE_COUNT}", $font, $size);
        $some_html = '<html></html><br><br>hellor</br><body></html>';
        $content = $fixed_header.$some_html;
        $this->pdfdom->load_html($content);
        $this->pdfdom->set_paper('a4', 'landscape');
        $this->pdfdom->render();
        $this->pdfdom->stream(array($name_of_generated_report, 0, 1, 0)); //for testing
    }
}

Я также попытался добавить в фиксированный заголовок строку типа <html><body><script type="text/php"....., но ничего не появляется, поэтому я добавил код, подобный этому, чтобы увидеть ошибка и ошибка:

Fatal error: Call to undefined method DOMPDF::get_height() in line 13

Это очень странная причина. Я создал класс в конструкторе и отлично работает для методов load_html, set_paper, render и stream

Теги:
oop
dompdf

1 ответ

1
Лучший ответ

Класс DOMPDF не имеет метода get_height, почему вы получили эту ошибку

но в этом классе вы можете найти:

$this->_pdf->get_height()

и $this->_pdf не является объектом DOMPDF, но:

 $this->_pdf = Canvas_Factory::get_instance($this, $this->_paper_size, $this->_paper_orientation);

возможно, попробуйте:

function generate_report() {
        $name_of_generated_report = 'hello';
        $font = Font_Metrics::get_font("helvetica", "normal");
        $size = 9;
        $fixedheader = "<script type='text/php'>
  if ( isset($pdf) ) { 
    $font = Font_Metrics::get_font('helvetica', 'normal');
    $size = 9;
    $y = $pdf->get_height() - 24;
    $x = $pdf->get_width() - 15 - Font_Metrics::get_text_width('1/1', $font, $size);
    $pdf->page_text($x, $y, $PAGE_NUM.'/'.$PAGE_COUNT, $font, $size);
  } 
</script>";
        $some_html = '<html></html><br><br>hellor</br><body></html>';
        $content = $fixed_header.$some_html;
        $this->pdfdom->load_html($content);
        $this->pdfdom->set_paper('a4', 'landscape');
        $this->pdfdom->render();
            $this->pdfdom->stream(array($name_of_generated_report, 0, 1, 0)); //for testing
        }
  • 0
    Понятно, что у него нет метода, но как добавить заголовок через этот пример? stackoverflow.com/questions/13159645/dompdf-page-number
  • 0
    попытался сделать $y = $this->_pdf->get_height() - 24 , но я получаю Fatal error: Call to a member function get_height() on a non-object , $ this -> _ pdf понял, что это не объект DOMPDF, поэтому, что мне нужно сделать? Я добавляю вашу вторую строку кода в конструктор?
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню