2017-07-13 17 views
0

画像、テキストなどを含むPDFコードをエクスポートする必要があるSymfonyプロジェクトがあります(データベースに保存され、その後ヘッダとともにダウンロードされます)。実際には何もインストールできませんWebサーバ上でKnpSnappyBundleを見ていないが、Spread PDFジェネレータバンドル(https://github.com/stedekay/SpraedPDFGeneratorBundle)を使用しています。symfonyのPDF生成ジェネレータバンドルを含む

私はそれは、コントローラでPDFを作成するために取得することができます:小枝ファイルから

$html = $this->render('templates/test1.html.twig'); 
$pdfGenerator = $this->get('spraed.pdf.generator'); 
return new Response($pdfGenerator->generatePDF($html), 
    200, 
    array(
     'Content-Type' => 'application/pdf', 
     'Content-Disposition' => 'inline; filename="out.pdf"' 
    ) 
); 

<html> 
<head> 
    <title>test</title> 
    <style> 
     @font-face { 
      font-family: 'Roboto'; 
      src: url({{ absolute_url(asset('css/fonts/Roboto/Roboto-Medium.ttf')) }}) format('truetype'); 
     } 

     h1 { 
      font-family: Roboto; 
      font-size: 100px; 
     } 
    </style> 
</head> 
<body> 
    <h1>test</h1> 
</body> 
</html> 

しかし、それは常にフォントとしてのTimes New Romanを示しています!私がArialと同じようなものを選んだとしても。

埋め込みフォントを取得するにはどうすればよいですか?あるいは、symfonyのために、htmlのPDFを作成する別のバンドルがあります。これはサーバーに何もインストールする必要はありませんか?

答えて

0

私は現在、wkhtmltopdfを拡張するKnpスナッピーバンドルhttps://github.com/KnpLabs/KnpSnappyBundleを使用しています。サーバーに何かを手動でインストールする必要がなくなり、私はhttps://github.com/zendre4/wkhtmltopdf-amd64を使用しています。これは、作者のインストール時にバイナリが含まれています(私はこのプロジェクトを使用しませんでした。

は、その後、あなたの設定で(一般的に/app/config/config.yml)を追加:

knp_snappy: 
    pdf: 
    enabled: true 
    binary:  %kernel.project_dir%/vendor/bin/wkhtmltopdf-amd64 
    options: [] 

を作曲インストールベンダーが追加されます(そのバイナリは、プロジェクトのリポジトリに含まれていない)を作成することベンダー/ binのバイナリへのシンボリックリンク。この設定はknp_snappyにこのバイナリの場所を伝えます。そのため、あなたのデプロイメントのためのすべてがコンポーザのインス​​トール(または更新)に役立ちます。

これは簡単な説明です。誰かが詳細を要求する場合は、コメントに質問を追加してください。この回答を更新します。

関連する問題