我有一本名为 php_5_for_dummies.pdf 的书。
它的总页数是5.
我想以不同的div显示每个PDF页面内容。
示例:它应该显示如下:
<div class='1'>Content of pdf page 1 </div>
<div class='2'>Content of pdf page 2 </div>
<div class='3'>Content of pdf page 3 </div>
<div class='4'>Content of pdf page 4 </div>
<div class='5'>Content of pdf page 5 </div>
到目前为止,我已经做了。
function pdf_page_no($filepath){
$fp = @fopen(preg_replace("/\[(.*?)\]/i", "",$filepath),"r");
$max=0;
while(!feof($fp)) {
$line = fgets($fp,255);
if (preg_match('/\/Count [0-9]+/', $line, $matches)){
preg_match('/[0-9]+/',$matches[0], $matches2);
if ($max<$matches2[0]) $max=$matches2[0];
}
}
fclose($fp);
if($max==0){
$im = new imagick($filepath);
$max=$im->getNumberImages();
}
return $max;
}
$filename = "php_5_for_dummies.pdf";
$total_page_no = pdf_page_no($filename);
for ( $i=0 ; $i >= $total_page_no; $i++ ) {
echo "<div class='{$i}'>";
// here should display the content from page 1 of pdf
echo "</div>";
}
答案 0 :(得分:2)
PDF不是与HTML,SVG或典型图像格式(JPG,PNG,TIF等)相同的本机Web格式。 PDF的显示取决于浏览器,通常是一个完整的页面&#34; item,不是&lt; div&gt;等页面的元素。根据浏览器配置,PDF有时根本不会显示在浏览器中 - 例如,我将浏览器配置为使用浏览器外部的Adobe Reader打开PDF以提供更多选项,更高质量的打印等。反之亦然问题 - 典型的HTML页面打印效果不好,解决方案是转换为PDF以实现一致的WYSIWYG打印。但大多数网站都不这样做,因为没有大量的编程就没有简单的方法。任何能够真正解决潜在问题的人都会发大财。好吧,实际上可能根本没有赚到多少钱,因为这么多软件实际上是免费的,但我离题了......
我见过的解决方案:
a)将PDF页面转换为图形图像。您可以使用ImageMagick转换程序执行此操作。然后显示&lt; img&gt;在每个&lt; div&gt;里面。缺点是分辨率仅限于图像大小,而不是完全可扩展(且易于打印)的PDF页面。我已经通过图像点击进行预览,生成了与浏览器相关的实际PDF下载/显示。
b)构建包含PDF的页面。我相信我已经在一些公用事业账单网站上看到了这一点。在框架内部,页面被视为整页,因此如果浏览器支持内部PDF查看,那么这将起作用。