在 PHP 中将 PDF 转换为 HTML,类似于 DocuSign

Convert PDF to HTML in PHP similar to DocuSign

我们正在开发一个需要将PDF文件转换成HTML的网站,因为有些PDF是有表格的(不一定是可填写的PDF,这些PDF是打印来填写的)。

所以我们希望通过我们的网站填写,而不是打印文件并用笔填写。我们要无纸化了。

DocuSign 提供了这些,您可以在其中上传 PDF,然后您可以将其自定义为具有文本框、复选框。所以我们有点使用 DocuSign 作为参考,但仍然没有弄清楚他们是如何做到的(几乎完美地将 PDF 转换为 HTML,反之亦然)。

到目前为止,我已经尝试了几种将 PDF 转换为 HTML 的第 3 方软件。我试过 XPDF、Poppler 和 ImageMagick。

ImageMagick 将 PDF 转换为不适合的图像,因为这些图像在转换回 PDF 进行打印时尺寸较大。

根据我的研究,Poppler 是 XPDF 的一个分支,我在使用 XPDF 后尝试过它,看看它是否更好,它基本上做了 XPDF 所做的事情,但它将 PDF 转换为在 CSS 转换为 HTML 时。这很好,但它失去了字体系列。

XPDF转PDF为HTML但是像素比较小,所以转回PDF的时候放不下整页,还得手动调整所有的CSS 适合它。

所以在使用了这些第三方软件之后,我使用 MPDF 将 HTML 文件转换回 PDF,并且转换后的文件有很多不一致之处。文本未正确对齐。和原来的PDF基本不一样

如有任何帮助,我们将不胜感激!

您尝试做的事情并不像看起来那么简单。我与 Adob​​e Sign(以前称为 EchoSign)合作多年,我对这些服务的工作原理非常了解。话虽如此,我强烈建议研究其中一种 eSign 服务,而不是尝试推出自己的服务。它将为您节省很多时间。

这就是它的工作原理

  1. PDF 本身必须有一个带有命名字段的表单。换句话说,如果您在 Adob​​e Reader 或 Chrome 中打开此类 PDF,您应该能够填写这些字段。如果您的 PDF 没有 PDF 表单,您将需要 Acrobat PRO 等其他软件来创建表单。
  2. 您必须将 PDF 转换为可在浏览器中呈现的平面图像。
  3. 您将需要一个工具来提取 PDF 表单信息,例如字段名称、类型、维度和坐标。
  4. 有了所有这些信息,您就可以在浏览器中呈现 PDF 图像。使用上一步中的字段类型、尺寸和坐标,将绝对定位的 HTML 表单元素放置在图像上。每个 HTML 元素都需要按名称引用 PDF 表单域。
  5. 一旦您从 HTML 小部件收集了信息和像 field_name => field_value 这样的数据图,您将需要使用其他软件以编程方式在原始 PDF 中填写 PDF 表单。 PDF表单信息通常存储在FDF或XFDF文件中。

我不知道有哪个工具可以帮助您解决上述问题,至少 PHP 没有。但是,我可以为您提供一个有用的建议:

  • PDFtk Server - 可以帮助您同时提取 PDF 表单字段信息并填写相同的 XFDF 文件。不幸的是,您可以使用此类工具提取的表单字段信息不包括尺寸和坐标。
  • iText - .Net 和 Java 中可用的库,可用于提取有关 PDF 表单的详细信息,包括字段的维度和坐标。您可以使用此工具包创建可与 PHP.
  • 通信的微服务

肯定有更多的工具可以完成这项工作。希望这些信息能指导您朝着正确的方向前进,或者帮助您决定如何推进您的项目。