2009-03-28 7 views
4

Я использую библиотеку dompdf php для создания отчета PDF из HTML-шаблона. В этом html-шаблоне есть раздел оглавления. При генерации PDF мне нужно обновить номер страницы оглавления. Кто-нибудь знает, как я могу это сделать в библиотеке dompdf php?Как создать оглавление с помощью dompdf?

Заранее спасибо.

ответ

0

Возможно, вы уже решили это? Я не использовал dompdf, но я сделал аналогичную вещь в Zend_Pdf: я сделал пустую страницу для оглавления, а затем продолжал создавать все остальные более поздние страницы, сохраняя массив page_number => title. В конце концов, я вернулся и обновил страницу содержимое, используя ссылку сохраненный ранее ...

1

Генерация оглавления из HTML (с h1, h2, h3), я сделал следующее:

  • Сначала дайте каждому заголовку уникальный идентификатор (потому что мы используем PrinceXML) и является хорошей оценкой.
  • Затем создайте структуру OL/LI, хотя этот фрагмент кода может содержать ошибки.

См: http://pastie.org/655728

1

Я достиг этого в Drupal и предполагаю, что это работает на других PHP OpenSource и рамки, а также. Я сохранил этот код в тег сценария

$GLOBALS['entity_page'][] = $pdf->get_page_number();   

в шаблоне, который хранит номер страницы. Шаблон с расширением tpl.php Сейчас в модуле после других кодов для экспорта я добавил ......

$canvas = $dompdf->get_canvas(); 
    $font = Font_Metrics::get_font("helvetica", "normal"); 
    $canvas->page_text(520, 805, "Page {PAGE_NUM}", $font, 9, array(0.4, 0.4, 0.4)); 

    foreach ($GLOBALS['entity_page'] as $key => $val) { 
     $GLOBALS["entity_val"] = 0; 
     $GLOBALS["entity_y"] = 110; 
     $canvas->page_script('if($PAGE_NUM == 3 && $PAGE_NUM < 4){ 
       $font = Font_Metrics::get_font("helvetica", "normal"); 
       $x = 380; 
       $y = $GLOBALS["entity_y"]; 

       $pdf->text($x, $y, "-------------------------".$GLOBALS["entity_page"][$GLOBALS["entity_val"]]."", $font, 12, array(0, 0, 0, 0.8)); 
       $GLOBALS["entity_y"] = $GLOBALS["entity_y"] + 33; 
       $GLOBALS["entity_val"] = $GLOBALS["entity_val"] + 1; 

       }'); 
    } 

$ pdf-> Текст этой части добавляет номера страниц с постоянным приращением в позиции оси y. Для хранения значений используются другие глобальные переменные entity_y и entity_val.

Смежные вопросы