2

我有一个模块可以合并来自数据库记录和.docx/或.odt文档模型的文档。

我必须输出.docx,.odt.pdf. 对于输出到 Microsoft 和 Open 格式,没有问题,一切正常。

但我想知道的是,我可以输出一种格式(如 XML 或 HTML),以便随后构建 PDF 文档吗?

如果我不能,是否有任何库提供合并文档功能,例如:

          DOCX (or ODT) + database record => PDF

而且我不想使用phplivedocx。

4

3 回答 3

2

我成功地将 libreoffice 的便携式版本放在了主机的网络服务器上,我用 PHP 调用它来进行从 .docx 等到 pdf 的命令行转换。在飞行中。我对主机的网络服务器没有管理员权限。这是我所做的博客文章:

http://geekswithblogs.net/robertphyatt/archive/2011/11/19/converting-.docx-to-pdf-or-.doc-to-pdf-or-.doc.aspx

耶!使用 PHP 和 LibreOffice(OpenOffice 的继任者)直接从 .docx 或 .odt 转换为 .pdf!

于 2011-11-20T01:47:58.800 回答
1

我不知道任何执行 DOCX => PDF 的 PHP 库。事实上,在 PHP 中将 DOCX 转换为其他东西是今天一个公开的问题。这与您制作 DOCX 的方式无关。

但正如您所说,它们是用于 HTML => PDF 的 PHP 库。

Html2Pdf是一个知名的 PHP 库,它执行 HTML => PDF。还有DomPdf

因此,如果您可以找到 DOCX => HTML 的 PHP 库,那么它会起作用。

当然它有一些局限性,因为即使PDF和DOCX都是开放格式,它们也有非常具体的功能,需要巨大的渲染过程,编辑们也为它们保留了一些好的提示。

理论上可以将 DOCX 转换为 HTML。EpingSoft有一个 Windows 软件可以做到这一点。如果你需要用 PHP 来做,一些网络文章会告诉你如何做,但由于我找不到任何 PHP 代码来做这件事,我想它是理论多于实际。

http://www.quepublishing.com/articles/article.aspx?p=691502

该过程的复杂程度取决于您在转换过程中需要保留多少 Word 的本机格式。

如果您想尝试这种方式,很高兴知道 OpenTBS 使您能够在合并之前和之后读取 XML。它基于一个 PHP 类名 TbsZip,它可以读取 DOCX 中的任何 XML 文件,因为它实际上是一个 zip 存档。

于 2011-05-25T10:24:35.120 回答
0

也有可能解压后直接在TBS中使用PDF文件:

qpdf --qdf --object-streams=disable in.pdf out.pdf
于 2016-11-07T09:17:05.830 回答