我想阅读pdf文档并将内容显示给浏览器,而不允许用户保存pdf的副本。
如何将fpdf用于此目的?到目前为止,除了创建新的pdf之外,我无法找到一种用fpdf阅读pdf文档的方法。任何人都可以建议一个阅读pdf文件的例子,如果可能的话,如何禁用另存为pdf选项?
答案 0 :(得分:2)
fpdf无法读取pdf文件。看看它是FAQ - 16一个17声音很有趣,它就像有插件一样可以做到这一点。
你真正无法避免的是让用户保存该pdf - 必须将其发送到客户端机器上的浏览器,以显示它,因此总是有可能保存它。一种可能性是将pdf的每一页转换为图像(例如使用Imagemagick)并显示这些图像,因此用户无法从中复制文本,也无法获得原始的pdf文档 - 但是这只会让人烦恼。
答案 1 :(得分: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。
答案 2 :(得分:0)
我不确定这是否可行,请在此处查看FPDF的FPDI扩展名:http://www.setasign.de/products/pdf-php-solutions/fpdi/
答案 3 :(得分:0)
要将pdf转换为html,有一个名为pdftohtml的linux程序。但请注意,这样做的结果不会创建看起来像原始pdf的东西,并且在许多情况下(锁定pdf等)它将失败。什么是可能的解决方案是使用像ImageMagick之类的程序生成每个页面的图像,然后将html放在不可见的图层上以允许交互。如果我是你,我还是宁愿去内联展示pdf。