簡體   English   中英

Html2Pdf 中的分頁符

[英]Page break in Html2Pdf

我正在生成一個動態 pdf 文件,其中包含大約 10,000 個用戶的數據,通常該應用程序是使用 MySQL 和 PHP 開發的。 動態內容太重了,我發現用fpdf()類很難處理。 所以我使用ob_get_clean()將我的輸出 PHP 頁面轉換為 HTML 文件。 現在成功生成了 html 文件以及 pdf 文件。 但我想在每個用戶的數據后留下一個分頁符,即每個用戶的數據必須從一個新頁面開始。 我不能使用任何 HTML 標簽,因為在動態生成的 HTML 文件中,所有內容都在<html></html>標簽之外。 請幫助我,以便在每個用戶的數據之后我如何在 pdf 文件中進行分頁...在此先感謝:)

html2pdf 支持頁面標簽:

protected function _tag_open_PAGE($param) {} 

在第 2229 行。您可以在那里看到支持哪些屬性。 例如,下面創建一個橫向頁面和一個縱向模式:

<page orientation="l">
... some content ...
</page>
<page orientation="p">
... some content ...
</page>

基於 macdabby 的工作(不起作用)。 但多虧了他,這個想法是正確的。

html2pdf v4.03

例如我們要解析一個標簽 DIV:

html2pdf.class.php 第 2948 行:

protected function _tag_close_DIV($param, $other='div')
{
    if ($this->parsingCss->value['page-break-after'] == "always")
      $this->_setNewPage(null, '', null, $this->_defaultTop);
      $this->parsingCss->setPosition();
    ...
}

parsingCss.class.php 第 114 行:

//add a new style declaration
public function initStyle()
{
    ...
    $this->value['page-break-after'] = null;
}

第 1024 行向 switch case 添加一個新的處理程序:

case 'page-break-after':
    $this->value[$nom] = $val;
    break;

然后為了讓它工作,你的 html 內容應該包含 break 元素

 <div style="page-break-after:always; clear:both"></div>

注意區分大小寫的樣式,不確定插件是否處理它

我只是在遇到同樣的問題后才想到這一點。 他們使用的解析器確實支持 page-break-after 標簽,但 html2pdf 不起作用。

我想我通過對 html2pdf.class 進行以下修改來讓它工作:

在第 4174 行附近,里面的第一件事是:

protected function _tag_close_P($param){

應該:

   if($this->parsingCss->value['page-break-after'] == "always")
        $this->_setNewPage();

在第 2961 行附近,里面的第一件事是:

protected function _tag_close_DIV($param, $other='div'){

應該:

 if($this->parsingCss->value['page-break-after'] == "always")
        $this->_setNewPage();

您可能想使用一些 css,例如:

h1 {page-break-before:always}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM