2017-02-08 17 views
1

私は、データベースから来たデータに基づいてhtmlページを作成し、それをdompdfを使ってpdfに変換しています。私は約改ページ後の DOMPDF中を知っていて、このdompdfを使ってレンダリングされたpdfのページの高さを見つける

if($count_row > 7) 
{ 
    $html = $html.' 
    </table> 

    <br/><br/> 
    <img width="1640px" height="30px" src="bottombar.png" /> 

    <div style="page-break-after:always;position:relative;"> 
    </div>'; 

    } 

すべてが正常に動作しますようにPHPであれば条件を使用して次のページにコンテンツをシフトし、それを使用することができます。 しかし、今はページを動的に分割したいと考えています。各行にコンテンツが入力された後のテーブルの高さに応じて、次の行が次のページにこぼれる場合は、ページを分割していくつかのヘッダーを追加し、次の行を追加します。

各行に入力されるコンテンツは動的なので、1ページに10行、別の15行が含まれる可能性があります。したがって、私は現在行っているように行の制限を制限したくありません。

dompdfまたはphpで各行を追加した後にページの高さを得る方法はありますか?私はそれがJSで行うことができますが、PHPで行うことが可能です知っている。

また、手動で設定しているので、私はページサイズを知っています。

$paper_size = array(0,0,1300,1300); 
$pdf->set_paper($paper_size); 

助けていただければ幸いです。前もって感謝します。

+0

ヘッダのどのような種類のあなたが追加したいされていますか? Dompdfはテーブルヘッダ( ' ...')をサポートしています。他のタイプのヘッダーであればもう少し難しいですが、それでも可能です。 – BrianS

+0

ちょっとブライアン、私はヘッダーを追加することができますが、現在、私はページに追加された行の数が7に達したときにページを分割しています、私は各行を追加した後にページの高さをチェックし、追加された場合は、次のページにこぼれ落ちます。ありがとうございます – user6000866

答えて

0

私はこのライブラリを使っていましたが、いつもこのような問題がありました。 phantomJSのために変更することをお勧めします。

PhantomJSは、JavaScript APIを備えたヘッドレスWebKitです。 は、DOMハンドリング、 CSSセレクター、JSON、Canvas、SVGなどのさまざまなWeb標準を素早くネイティブにサポートしています。

それはあなたがレンダリングされたコンテンツを入れて、PDF

http://phantomjs.org/screen-capture.html 使用例として、それを保存することができます:https://coderwall.com/p/5vmo1g/use-phantomjs-to-create-pdfs-from-html

+0

ちょっとラファル、私のコンテンツは、MySQL DBから来て、次にhtmlにレンダリングされ、それはpdfにdompdfを使って変換されます。私の質問は、pdfのページ高さを得るためにdompdfまたはphpからテーブルの各行を入力した後に可能であるかどうかです。 – user6000866

+0

PhantomJSの使用は、一時的な.htmlファイルを作成し、上の例のようにスクリプトに提供することで解決できます。身長を知っているとあなたの問題がまったく解決されないかもしれないことを知っているので、これを書いています。あなたがPhantomJSの証明に2時間を費やすことができたら、それを試してみませんか? ;) –

+0

確かに私はPhantomJSを見て、それが私の問題を解決すればそれを使用します。あなたの洞察をいただきありがとうございます。 – user6000866