2017-07-14 11 views
0

私は名刺を作るアプリケーションを作成しています。カードのデザインごとに(会社にはいくつかのバリエーションがあります)、私はそのデザインの名前のTWIGテンプレートを使用しています。レンダリングされたTWIG HTMLコードは、KnpSnappyBundle(https://github.com/KnpLabs/KnpSnappyBundle)を使用してPDFに変換され、コピーがデータベースに保存されます。SymfonyでのPDFのサイズ変更

問題は、フルサイズがプリンタに送信される前に(ユーザーに自動的に電子メールで送信されます)、ユーザーに草案を見せてもらう必要があることです。サイズ変更はできません。

私が試み:コントローラで

$html = $this->renderView('templates/test1.html.twig'); 
$snappy = $this->get('knp_snappy.pdf'); 
$snappy->setOption('page-height', 55); 
$snappy->setOption('page-width', 90); 
$code = $snappy->getOutputFromHtml($html); 

return new Response($code, 
    200, 
    array(
     'Content-Type' => 'application/pdf', 
     'Content-Disposition' => 'inline; filename="out.pdf"' 
    ) 
); 

をし、ページの高さとページ幅を変更しました。私が持っているテンプレートでは:

<html> 
<head> 
    <title>test</title> 
    <style> 
     body, html { 
      width: 567px; 
      height: 360px; 
     } 
     h1 { 
      font-size: 100px; 
     } 
    </style> 
</head> 
<body> 
    <h1>test</h1> 
</body> 
</html> 

問題は、私はドラフトを行うとき、それはフルサイズのものと同じに見える必要があり、それだけで大きなファイルサイズを持っていないだろうと簡単に収まるということですスクリーン。しかし、サイズを変更すると、同じサイズのコンテンツ(フォントなど)が複数のページに分割されます。

ドラフトのコピーを作成するには、PDF全体のサイズを変更するにはどうすればよいですか?

答えて

0

wkhtmltopdfには異なる引数を使用できます。たとえば:

./wkhtmltopdf -d 300 -L 0mm -R 0mm -T 0mm -B 0mm --page-width 88mm --page-height 56mm http://habrahabr.ru out.pdf 

あなたはknp_snappy_bundleの設定でオプションとしてこれらのコマンドを設定することができます。

knp_snappy: 
    pdf: 
     enabled: true 
     binary:  /usr/local/bin/wkhtmltopdf #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\"" for Windows users 
     options: [] 
    image: 
     enabled: true 
     binary:  /usr/local/bin/wkhtmltoimage #"\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltoimage.exe\"" for Windows users 
     options: [] 

https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

のドキュメンテーションのを見てみましょう
関連する問題