2011-01-13 134 views
1

我想阅读PDF文档并将内容显示在浏览器中,而不允许用户保存pdf的副本。在pdf中将pdf转换为html格式

我如何使用fpdf达到此目的?到目前为止,除了创建一个新的pdf之外,我还无法找出用fpdf读取pdf文档的方法。任何人都可以提出阅读PDF文件的例子,如果可能的话,如何禁用保存为PDF选项?

+2

您想将文件作为PDF文件提供?或者将其转换为HTML,那么用户将无法获得原始PDF?无论哪种方式,用户可以**总是**保存*某事*。您正在向用户的计算机发送数据,您无法控制他的操作! – deceze 2011-01-13 09:32:39

+0

是的,我同意。但我想要的是能够读取PDF并将其转换为HTML以在浏览器中显示。如何实现这一目标? – 2011-01-13 09:35:12

+0

然后,您应该在问题中明确指出您正在尝试将PDF转换为HTML。您将无法禁用“另存为PDF”选项。 – deceze 2011-01-13 09:37:43

回答

2

FPDF无法读取PDF文件。看看它的FAQ - 16一个有趣的17声音,它喜欢有插件来做到这一点。

你真正无法避免的是让用户保存pdf--它必须发送到客户端机器上的浏览器来显示它,所以总有可能保存它。一种可能性是将pdf的每一页转换为图像(例如使用Imagemagick)并且显示这些图像,因此用户不能从中复制文本并且不可能获得原始的pdf文档 - 但是那只会让人烦恼。

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,即使在串联显示时也是如此。

0

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