在PHP中将PDF转换为HTML?
我希望能够通过PHP将PDF文件转换为HTML文件,但遇到了一些麻烦 我发现了一种基本的方法,可以使用它将PDF转换为HTML文件。但是,这也存在一些问题,例如SVG、图像、定位、字体等的使用 我所需要的只是能够从PHP文件中获取文本和与之相关的任何图像,然后以线性格式显示它,而不是以绝对定位格式显示它 我的意思是,如果PDF看起来像这样: 我想把它转换成一个单列设计HTML文件。如果有照片的话,我希望他们也能回来 这在PHP中可能吗?我知道我可以简单地从PDF文件中抓取文本,但是抓取图像又如何呢 另一个问题是,我希望所有内容都是内联的,因为它是在一个文件中提供给客户机的。目前,我可以通过一些代码在设置中执行此操作:在PHP中将PDF转换为HTML?,php,Php,我希望能够通过PHP将PDF文件转换为HTML文件,但遇到了一些麻烦 我发现了一种基本的方法,可以使用它将PDF转换为HTML文件。但是,这也存在一些问题,例如SVG、图像、定位、字体等的使用 我所需要的只是能够从PHP文件中获取文本和与之相关的任何图像,然后以线性格式显示它,而不是以绝对定位格式显示它 我的意思是,如果PDF看起来像这样: 我想把它转换成一个单列设计HTML文件。如果有照片的话,我希望他们也能回来 这在PHP中可能吗?我知道我可以简单地从PDF文件中抓取文本,但是抓取图像又如
for ($i = 0; $i < $object_number; $i++) {
$object = $html->find("object")->find("embed")->eq($i);
$embed = file_get_contents("Output/OutputHtml/" . $object->attr("src"));
array_push($converted_obj, $embed);
array_push($original_obj, $object);
}
for ($i = 0; $i < $object_number; $i++){
pq($original_obj[$i])->replaceWith($converted_obj[$i]);
}
($i=0;$i<$object\u number;$i++)的{
$object=$html->find(“object”)->find(“嵌入”)->eq($i);
$embed=file\u get\u contents(“Output/outputtml/”$object->attr(“src”);
数组推送($converted\u obj,$embed);
数组_push($original_obj,$object);
}
对于($i=0;$i<$object\u number;$i++){
pq($original_obj[$i])->替换为($converted_obj[$i]);
}
它获取所有的
SVG
文件并以内联方式显示它们。图像将更容易做到这一点,因为我可以使用base64
您实际上希望做的是重新流式显示PDF文件。我不确定这是否存在,充其量也很难做到
可以编写一些代码来完成特定文件所需的操作,但对于一般情况,我认为这是不可能的
我在这里写了一篇文章,解释了我认为回流PDF有缺陷的原因:
特别有趣的是开头的一段“让我们用报纸上的故事来说明这个问题。”
你可能想看看IDRsolutions(为了透明度,我在这里工作!)提供了什么
我们目前正在将我们的PDF转换为HTML5和PDF转换软件放到云中:
JPedal的PDF文本提取和PDF图像提取功能可能更适合您。如果PDF到HTML5运行良好,我们很可能也会考虑将其放到云中
文本提取:
图像提取:您希望从发布的图形中实现的实际上是图形的OCR转换 1)下载.exe文件并将其解压缩到文件夹: 2) 创建一个.php文件,并将此代码放入(假设pdftohtml.exe和源sample.pdf都在该文件夹中):
3) 输入MyFolder,您将看到转换的文件(取决于页数..)
p、 我不知道,但也存在许多商业或试用API。跨平台解决方案使用: 下载适当的Xpdf工具包,并将其解压缩到脚本目录中的子目录中。让我们假设它被称为“/xpdftools” 在php脚本中添加这样的代码:
$pdf_file = 'sample.pdf';
$html_dir = 'htmldir';
$cmd = "xpdftools/bin32/pdftohtml $pdf_file $html_dir";
exec($cmd, $out, $ret);
echo "Exit code: $ret";
成功执行脚本后,htmldir
目录将包含已转换的html文件(每个页面位于单独的文件中)
Xpdf工具使用以下退出代码:
-无错误0
-打开PDF文件时出错1
-打开输出文件时出错2
-与PDF权限相关的错误3
-其他错误99
$redired_pages=array(5,6,7,8);foreach($eachPageIndex形式的不需要的页面){unlink('filename'.$eachPageIndex);}
指定页面的pdf脚本有参数:$a=passthru(“pdftohtml-f$firstpage-l$lastpage$source\u pdf$output\u folder/new\u file\u name”,$b);还可以查看编码选项任何Unix解决方案,因为.exe无法在Unix系统上运行?感谢您让生活变得更轻松。IDR的产品看起来很有趣,但许可证非常昂贵。不适合单个网站所需的小规模转换。
$pdf_file = 'sample.pdf';
$html_dir = 'htmldir';
$cmd = "xpdftools/bin32/pdftohtml $pdf_file $html_dir";
exec($cmd, $out, $ret);
echo "Exit code: $ret";