1

我想阅读 pdf 文档并将内容显示到浏览器,而不允许用户保存 pdf 的副本。

我怎样才能为此目的使用 fpdf?到目前为止,除了创建一个新的 pdf 之外,我还想不出用 fpdf 阅读 pdf 文档的方法。谁能建议一个阅读pdf文件的例子,如果可能的话,如何禁用另存为pdf选项?

4

4 回答 4

2

fpdf 无法读取 pdf。看看它的常见问题解答- 16 和 17 听起来很有趣,看起来有插件可以做到这一点。

您真正无法避免的是让用户保存该pdf-必须将其发送到客户端计算机上的浏览器才能显示它,因此始终有可能保存它。一种可能性是将pdf的每一页转换为图像(例如使用Imagemagick)并仅显示这些图像,因此用户无法从中复制文本并且无法获取原始pdf文档-但是那只会惹恼人们。

于 2011-01-13T09:42:08.793 回答
0

如果你有一个现有的 PDF,你想内联显示它而不是要求他们下载它:

// Path to PDF file
$file = "blah.pdf";

// Show in browser
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit();

您不需要使用 FPDF,它只是一个帮助您从头开始创建 PDF 的类。

还要记住,即使显示内联,也没有什么可以阻止用户保存 PDF。

于 2011-01-13T09:39:02.383 回答
0

我不确定这是否可行,请在此处检查 FPDF 的 FPDI 扩展:http ://www.setasign.de/products/pdf-php-solutions/fpdi/

于 2011-01-13T09:39:25.300 回答
0

要将 pdf 转换为 html,有一个名为pdftohtml的 Linux 程序。但是请注意,这样做的结果不会创建看起来像原始 pdf 的东西,并且在许多情况下(锁定的 pdf 等)它会失败。一种可能的解决方案是使用ImageMagick之类的程序生成每个页面的图像,然后将 html 放在不可见的层上以允许交互。如果我是你,我还是宁愿去显示 pdf 内联。

于 2011-01-13T09:49:45.353 回答