0

以下のコードを使用して (.pdf) 形式の履歴書を作成したいのですが、

$data = "<P>This is my CV</P>";
$file = "cv.pdf";
$openedFile = fopen($file, "w");
fwrite($openedFile, $data);
fclose($openedFile);
$fileOpen = fopen($file, 'r');
$content = fread($fileOpen, filesize($file));
$fsize = filesize($file); 
$ftype = filetype($file);
fclose($fileOpen);
unlink($file);  // i don't want to store the file so i remove it
header("Content-length: $fsize");
header("Content-type: $ftype");
header("Content-Disposition: attachment; filename=$file");
echo $data;
exit;

それは私のためにそれを作成し、ファイルをダウンロードするためのダウンロードダイアログボックスを表示します。ダウンロード後、ファイルを開くことができず、エラーが表示されます

エラー Adob​​e Acrobat: メールの添付ファイルとして送信され、正しくデコードされませんでした!

ただし、(.doc) ファイル タイプでは機能します。

私を助けてください!

4

2 に答える 2

2

あなたがしようとしていることは不可能です。

のような PDF ライブラリを利用してTCPDFDOMPDFテキスト コンテンツを PDF に変換します。

FPDFを使用したイラスト

を使用したデモンストレーションのリンクは次のとおりですFPDF

于 2013-10-23T13:36:23.430 に答える
0
$data = "<P>This is my CV</P>";
$file = "cv.pdf";
$openedFile = fopen($file, "w");
fwrite($openedFile, $data);
fclose($openedFile);

このコードはPDF ファイルを作成しません。テキスト ( .txt) ファイルを作成し、名前を付けるだけ.pdfです。それは魔法のようにPDFにはなりません。PDF は特別な (バイナリ) 形式です (特別なヘッダーがあり、「テキスト」が特別な方法で保存されます)。したがって、Adobe Reader は、指定されたファイルをどう処理するかわかりません。

PHP で PDF ファイルを作成するには、dompdf ( https://github.com/dompdf/dompdf )などの特別なライブラリを使用する必要があります。


ファイルに対しては「機能します」.docが、あなたが考える理由ではありません。 .docファイルもバイナリ形式です。問題は、Microsoft Word はファイルを開くこともできる.txt(これは実際に作成しているもので、名前を変更するだけです) ため、.docファイルをファイルとして読み取るだけ.txtです。たまたま「うまくいった」だけです。

「実際の」ファイルを作成するには、PHPWord ( http://phpword.codeplex.com/documentation.doc )などの特別なライブラリも必要です。


PS このコードには他にも問題がありますが、これが最も重要です。

于 2013-10-23T13:35:22.940 に答える