为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕盖茨4494581 2022-01-08 17:50:30
我们正在开发一个需要将 PDF 文件转换为 HTML 的网站,因为某些 PDF 有一个表格(不一定是可填写的 PDF,这些 PDF 打印出来是为了填写)。所以我们希望它通过我们的网站填写,而不是打印文件并用笔填写。我们正在实现无纸化。DocuSign 提供了这些,您可以在其中上传 PDF,然后您可以将其自定义为具有文本框、复选框。所以我们有点使用 DocuSign 作为参考,但仍然没有弄清楚他们是如何做到的(几乎完美地将 PDF 转换为 HTML,反之亦然)。到目前为止,我已经尝试了几种将 PDF 转换为 HTML 的第三方软件。我试过 XPDF、Poppler 和 ImageMagick。ImageMagick 将 PDF 转换为不适合的图像,因为这些图像在转换回 PDF 进行打印时尺寸较大。Poppler 是基于我的研究的一个 fork XPDF,我在使用 XPDF 之后尝试过它是否更好,它基本上可以完成 XPDF 的工作,但它会将 PDF 转换为在转换为 HTML 时在 CSS 上具有更大的像素。这很好,但它失去了字体系列。XPDF 将 PDF 转换为 HTML 但像素较小,因此当我将其转换回 PDF 时,它不适合整个页面,我仍然需要手动调整所有 CSS 以适应它。所以在使用了这些 3rd 方软件后,我使用 MPDF 将 HTML 文件转换回 PDF,转换后的文件有很多不一致之处。文本未正确对齐。它基本上与原始PDF不同。任何帮助将不胜感激谢谢!
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

您尝试做的事情并不像看起来那么简单。多年来,我一直在使用 Adobe Sign(以前称为 EchoSign),并且对这些服务的工作方式有很好的了解。话虽如此,我强烈建议您研究其中一项电子签名服务,而不是尝试推出自己的服务。它将为您节省大量时间。

这就是一切的运作方式

  1. PDF 本身必须有一个带有命名字段的表单。换句话说,如果您在 Adobe Reader 或 Chrome 中打开此类 PDF,您应该能够填写这些字段。如果您的 PDF 没有 PDF 表单,您将需要 Acrobat PRO 等其他软件来创建表单。

  2. 您必须将 PDF 转换为可以在浏览器中呈现的平面图像。

  3. 您将需要一个工具来提取 PDF 表单信息,例如字段名称、类型、尺寸和坐标。

  4. 有了所有这些信息,您就可以在浏览器中呈现 PDF 图像。使用上一步中的字段类型、尺寸和坐标将绝对定位的 HTML 表单元素放置在图像上。每个 HTML 元素都需要按名称引用 PDF 表单字段。

  5. field_name => field_value 从 HTML 小部件中收集信息和数据映射后,您将需要使用其他软件以编程方式在原始 PDF 中填写 PDF 表单。PDF 表单信息通常存储在 FDF 或 XFDF 文件中。

我不知道有哪个工具可以帮助您完成上述工作,至少在 PHP 中没有。但是,我可以为您提供一个有用的建议:

  • PDFtk Server - 可以帮助您提取 PDF 表单字段信息并填写相同的 XFDF 文件。遗憾的是,您可以使用此类工具提取的表单字段信息不包括尺寸和坐标。

  • iText - .Net 和 Java 中可用的库,可用于提取有关 PDF 表单的详细信息,包括字段的尺寸和坐标。您可以使用这个可以与 PHP 通信的工具包创建微服务。

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


查看完整回答
反对 回复 2022-01-08
  • 1 回答
  • 0 关注
  • 360 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信