Html2Pdf の改ページ
-
22-09-2019 - |
質問
私は約 10,000 人のユーザーのデータを含む動的な PDF ファイルを生成中です。通常、アプリは MySQL と PHP を使用して開発されています。動的コンテンツは非常に重いので、処理するのが難しいことがわかりました fpdf()
クラス。そこで、次を使用して出力PHPページをHTMLファイルとして変換しました。 ob_get_clean()
. 。これで、HTML ファイルと PDF ファイルが正常に生成されました。しかし、各ユーザーのデータの後に改ページを残したいのです。つまり、すべてのユーザーのデータは新しいページで開始する必要があります。動的に生成された HTML ファイルではすべてが範囲外であるため、HTML タグを使用できませんでした。 <html>
そして </html>
タグ。すべてのユーザーのデータの後にPDFファイルで改ページを行う方法を教えてください...前もって感謝します :)
解決
私はちょうど同じ問題を抱えた後、このアウトを考え出し。彼らはDOESを使用することをパーサは、ページブレークの後にタグをサポートしていますが、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();
他のヒント
HTML2PDFサポートのページのタグ:
protected function _tag_open_PAGE($param) {}
ライン2229.であなたは属性がサポートされているものが見ることができます。例えば、以下はポートレートモードで1つの風景の中のページと1を作成します:
<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 行目では、スイッチ ケースに新しいハンドラーを追加します。
case 'page-break-after':
$this->value[$nom] = $val;
break;
それが機能するには、HTML コンテンツに Break 要素が含まれている必要があります。
<div style="page-break-after:always; clear:both"></div>
大文字と小文字を区別するスタイルに注意してください。プラグインがそれを処理するかどうかはわかりません
あなたはおそらくいくつかのCSSを使用したい、例えばます:
h1 {page-break-before:always}