URL から PDF を作成するために使用する素晴らしいソフトウェア wkhtmltopdf を本番 Debian サーバーにインストールしました。結果のPDFをクライアントにストリーミングします(正しい用語であることを願っています)。サーバー側に保存することには関心がありません。
ローカル URL (つまり、独自のサーバー上) からのみ PDF を生成します。ただし、サーバーには複数のサイトがあるため、URL は依然としてローカル IP ではなくドメインに基づいています。
私たちの問題は、一部のローカル ページでは、完全に空白のページ (PDF でさえない) しか返されないことです。レスポンス コードは 200 ですが、コンテンツ タイプは text/html です。PDF がクライアントに正常にストリーミングされたページの場合、コンテンツ タイプは application/pdf です。
PDF の生成で何か問題が発生したのではないかと考えたので、PHP が実行するコマンドとまったく同じコマンドを実行すると、PDF が正常に生成されました。
このページにあるライブラリを使用して、PHP を wkhtmltopdf に接続します。
$pdf = new WkHtmlToPdf(array(
'margin-left'=>0,
'margin-right'=>0,
'margin-top'=>0,
'margin-bottom'=>0,
'print-media-type',
'disable-smart-shrinking'
));
$url = "http://myserver.se/$url";
$pdf->addPage($url);
$pdf->send();
一部の URL で空白のページが返されるのはなぜですか?