我正在尝试使用html2pdf将文件内容保存为PDF,但该文件包含一些需要处理的PHP代码。我做了一些研究,发现我必须使用输出缓冲,以便可以处理文件中的PHP内容。所以我做了类似的事情:
<?php
require_once('html2pdf.class.php');
ob_start();
require_once('my_file.php');
$content = ob_get_clean();
// force download of $content to a PDF
$html2pdf = new HTML2PDF('P','A3','fr', false, 'ISO-8859-1');
$html2pdf->writeHTML($content);
$html2pdf->Output('file_name.pdf', 'D');
?>
文件 my_file.php 是包含一些PHP代码和我希望保存为PDF的HTML内容的文件,变量 $ content 是实际的内容与PHP代码处理和一切。这适用于Apache,但不适用于IIS。
是否有人知道使用输出缓冲使其工作的另一种方法?我试过file_get_contents('my_file.php');但我的my_file.php中的php内容在我这样做时没有得到处理。
请问,我正在寻找无需输出缓冲的方法,以便它可以在任何服务器上运行。我不是在寻找答案,告诉我要更改我的IIS服务器配置或使用除html2pdf之外的其他内容。
提前感谢您提供任何帮助
答案 0 :(得分:1)
如果您可以修改my_file.php
的内容,则可以将所有文本放入变量中,而不是直接输出。
答案 1 :(得分:0)
您可以使用PHP / PDF库http://php.net/manual/en/book.pdf.php
并按照这个例子:http://php.net/manual/en/pdf.examples-basic.php
希望有所帮助:)
答案 2 :(得分:0)
最简单的方法是编辑my_file.php,以便不是包含HTML而是将HTML内容分配给PHP变量。然后你需要做的就是回显变量。
//other PHP processing goes here, or anywhere else.
$someVar = "hello world";
$myHTML = "<html>My output: $someVar </html>";
echo $myHTML;
这是处理HTML输出的一种丑陋方式,我并不是说它的编程很好,但是如果你想避免编辑配置文件,它会很快捷。