1

に行くと/fileDownload、500 Internal Server Error - RuntimeException が表示されます:

「0」シグナルのため、プロセスが停止しました。

コントローラーのアクション:

public function fileAction()
{
    $html = $this->render('MyBundle:Downloads:file.html.twig', array(
    'fileNumber'  => '1234'
    ));

    return new Response(
        $this->get('knp_snappy.pdf')->getOutputFromHtml($html),
        200,
        array(
            'Content-Type'          => 'application/pdf',
            'Content-Disposition'   => 'attachment; filename="file.pdf"'
        )
    );
}

WKHTMLTOPDF の端末コマンドを使用したところ、PDF が正常に生成されました。Symfony2 アプリでは機能しません。

私のconfig.ymlでは:

knp_snappy:
    pdf:
        enabled:    true
        binary:     /usr/local/bin/wkhtmltopdf
        options:    []
4

5 に答える 5

0

私はこれと同じ問題を抱えていましたが、最終的に解決しました。私のアドバイスはwkhtmltopdf、OSリポジトリからlibをインストールしてから削除し、GoogleコードWebサイトから静的バージョンをダウンロードし、バージョン11rcを使用せず、バージョン9を使用することですstatic lib、それは私と一緒に働いたものです。

http://code.google.com/p/wkhtmltopdf/downloads/list

于 2013-06-02T16:55:31.503 に答える
0

wkhtmltopdf が実際に指定したフォルダーにあり、適切な権限があることを確認してください: /usr/local/bin/wkhtmltopdf

Symfony 2.0でKNP Snappy Bundleを正常に使用しています.htmlを生成するときにrenderの代わりにRenderViewを使用してみてください(動作しているコードを確認してください):

コントローラ:

$html = $this->renderView('YOPYourOwnPoetBundle:thePoet:poemPDF.html.twig', array(
                'poem'  => $customizedPoem,
                'fontType' => $fontType,
                'fontSize' => $formData['fontSize'],
                'fontWeight' => $fontWeight,
                'fontStyle' => $fontStyle,
            ));
return new Response(
                $this->get('knp_snappy.pdf')->getOutputFromHtml($html),
                200,
                array(
                    'Content-Type'          => 'application/pdf',
                    'Content-Disposition'   => 'attachment; filename="'.$session->get('poemTitle').'.pdf"',
                )
            );
于 2012-10-30T03:35:48.640 に答える
0

Symfony がある段階で exec() を発行していると仮定しています。返される正確なコマンド ライン エラーを取得する必要があります。端末セッションで機能するという事実は、別のユーザー/プロセスが実行しているときに機能するとは限りません。

wkhtmltopdf のアクセス許可を確認して、Apache または Web サーバーを実行しているユーザーがコマンドを実行するためのアクセス権を持っていることを確認します。

また、この質問 wkhtmltopdf: cannot connect to X serverと、ここの最初の投稿もチェックしてください: http://geekisland.org/index.php?m=05&y=11&entry=entry110518-114630

wkhtmltopdf の特定のビルドを実行するには X サーバーが必要ですが、cron 経由または apache プロセス内から実行する場合は存在しません。この場合、上記の最初のリンクで bash ラッパーを使用する必要があります。

于 2012-10-29T18:19:00.463 に答える
0

wkhtmltopdf と同じシナリオで同じ問題が発生しました。そして、次のコマンドで取り除きました:

setsebool httpd_execmem オン

于 2015-01-12T12:13:25.740 に答える