3

FPDFライブラリを使用して PDF ドキュメントを生成しています。生成されたドキュメントをブラウザー ( Firefox、Chrome、Opera )で表示しようとしていますが、次の文字で始まる奇妙な文字しか表示されません。

%PDF-1.3 3 0 obj <>...

これは私のコードです。ドキュメントに 2 つの画像を追加しようとしています。

$pdf = new FPDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Image('./image.png',10,10,0,0,'png');
$pdf->Image('./image.png',10,120,0,0,'png');
$pdf->Output('file.pdf','I');

「D」オプションで出力を使用する場合:

$pdf->Output('file.pdf','D');

ファイルをディスクに保存すると、pdfドキュメントは問題ありません。

4

7 に答える 7

8

おそらく、正しいコンテンツ タイプ ヘッダーを追加する必要があります。Web サーバーがファイルを提供するとき、ファイルから推測した正しいコンテンツ タイプ ヘッダーを提供しようとしますが、ここでは PHP で生成しているため、デフォルトのヘッダー (通常は text/html) が送信されます。これをコードの先頭に追加してみてください。

header('Content-type: application/pdf');

また、正しいコンテンツ タイプ ヘッダーで送信する必要があります。

于 2013-01-16T13:57:05.900 に答える
7

ob_get_clean();同じ問題に遭遇し、前に追加$pdf->OutPut()したところ、正しい結果が得られました。

ヘッダーが正しくないためでしたが、pdfを出力する前にヘッダーを設定しても、まだ正しくありません。

于 2016-09-02T06:40:23.580 に答える
3

DをIに変更

$pdf->Output('file.pdf','I');

ファイルをインラインでブラウザに送信します。プラグインが使用可能な場合は使用されます。name で指定された名前は、PDF を生成するリンクで [名前を付けて保存] オプションを選択したときに使用されます。

そこからドキュメンテーション fpdf ドキュメンテーション

于 2014-05-18T23:44:35.447 に答える
0

上記のすべてのオプションをさまざまなシーケンスで適用しましたが、これが最終的にどのように機能するかです。ありがとう

$str = iconv('UTF-8', 'windows-1252', $custom_data);
$final = html_entity_decode($str ,ENT_QUOTES, 'windows-1252');
$pdf = new FPDF();
header('Content-type: application/pdf');
$pdf->AddPage();
$pdf->SetFont('Courier','',16);
$pdf->MultiCell(190, '10', $final, '', 'L');
ob_get_clean();
$pdf->Output($afterDash.".pdf", "I");
exit;
于 2020-11-19T08:45:58.663 に答える