我想使用下面的代码
创建一个(.pdf)格式的CV$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;
它将为我创建它并将显示下载对话框以下载文件,下载后我无法打开文件它给我错误
错误Adobe Acrobat:它是作为电子邮件附件发送的而不是 正确解码了!
但它适用于(.doc)文件类型。
请帮助我!
答案 0 :(得分:2)
答案 1 :(得分: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
文件读取。它恰巧“巧合”。
要制作“真正的”.doc
文件,您还需要一个特殊的库,例如PHPWord(http://phpword.codeplex.com/documentation)。
P.S。这段代码还有其他问题,但这是最重要的。