在PHP中获取PDF文件的内容

8

我有一个FlipBook jquery页面,需要显示太多的电子书(pdf格式)。我需要隐藏这些PDF文件,并使用PHP获取其内容并在我的FlipBook jquery页面上显示它们(而不是整个PDF,我想将其分成几部分)。

是否有任何方法可以用PHP获取PDF文件的全部内容?我需要根据它们的页面分开显示。


1
可能是 使用PHP读取pdf文件的重复问题 - ByteWelder
“获取PDF文件的全部内容”是什么意思? - Webeng
@Webeng 我的意思是图片和文本。 - Berk Kaya
1个回答

13

你可以使用PDF解析器(PHP PDF库)从PDF中提取一切内容。

PDF解析器库链接: https://github.com/smalot/pdfparser

在线演示链接: https://github.com/smalot/pdfparser/blob/master/doc/Usage.md

文档链接: https://github.com/smalot/pdfparser/tree/master/doc

示例代码:

<?php
 
// Include Composer autoloader if not already done.
include 'vendor/autoload.php';
 
// Parse pdf file and build necessary objects.
$parser = new \Smalot\PdfParser\Parser();
$pdf    = $parser->parseFile('document.pdf');
 
$text = $pdf->getText();
echo $text;
 
?>

关于你问题的另一部分:
如何将PDF页面转换为图片:
你需要ImageMagick和GhostScript。
<?php
$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>

The [0] means page 1.


1
仅获取文本的PDF解析器。我还需要获取PDF中的图像。 - Berk Kaya
1
@BerkKaya:看起来你可能需要针对页面的特定部分来获取图片,但我不认为这是动态实现的可能性..!如果它解决了你的问题,请将答案标记为已接受。 - Umair Shah Yousafzai
1
@KaushaThakkar:从简单文本重新生成PDF是不可能的,因为在解析过程中,所见即所得的PDF版本会变成简单文本...只有当您尝试将PDF解析为标记文本时,才有可能使用相同的标记文本重构PDF..! - Umair Shah Yousafzai
@KaushaThakkar :你需要将PDF转换为像DOCX等可以保持其真实形式的格式,然后你可以从docx重新构建PDF...请查看:http://www.zamzar.com/ - Umair Shah Yousafzai
1
@Simon30 更新了链接。该库的官方网站已经不存在了,但是该库仍然存在于Github和Composer等平台上。 - Umair Shah Yousafzai
显示剩余10条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接