0

我正在尝试想出一种管理文档的方法。

目前,我们正在用 HTML 设计我们的文档模板,然后我们让我们的客户使用 CKEditor 填写一些空白,然后我们使用 DOMPDF 将 HTML 转换为 PDF,以便他们可以打印文档。

这工作正常,但有很多地方可能会出错。CKEditor 与 HTML 有点混淆,而 DOMPDF 并不总是完美地转换它。特别是,我们不能正确地处理页眉和页脚。

由于我们的最终目标是生成 PDF,是否有更好的方法来完成这一切?例如,我们可以用 PostScript 或 LaTeX 设计文档,然后以某种方式使用 JavaScript 直接在我们的网站上渲染 PDF(无需外部程序!),其中包含某种占位符文本框,以便我们的客户可以填写所需的部分,然后保存并导出?

“填写”部分必须保留在我们的网站上,因为我们需要跟踪他们输入的内容以进行审计和版本控制。

4

2 回答 2

1

这个问题的最佳答案将取决于您的客户添加到表单中的数据类型。

如果他们在特定的固定宽度字段中填写信息,那么最简单的方法(正如其他人也提到的)是创建一个可填写的 PDF,使用 XFDF 填充它,然后PDFTK将其展平。您可以查看我对代码示例的另一个问题的回答。

但是,如果您的客户在文本的行或段落中间填写空白,您将无法轻松使用可填写的 PDF。您对使用 PostScript 或 LaTeX 的建议是一个很好的建议。如果您在原始文件中留下某种标记,然后用从您的网页提交的数据即时替换它们,那么您可以在提交表单时调用ps2pdflatex2pdf(或任何其他转换程序)以返回完整的 PDF。

编辑这不是“没有外部程序”的问题。您最初的问题要求“没有外部程序”,但许多 其他 消息来源 似乎没有 PHP 库可以进行这种转换。

于 2013-05-01T00:39:55.360 回答
0

首先,您需要将 HTML 表单数据处理为 XFDF 格式(通过 createXFDF() 函数),然后您需要使用以下代码:

$pdf_template_path = dirname( __FILE__ ) . '/pdf_form_template.pdf';
$pdftk = '/usr/bin/pdftk';
$pdf_name = substr( $xfdf_file_path, 0, -4 ) . 'pdf';
$result_pdf = $result_directory . '/' . $pdf_name;
$command = "$pdftk $pdf_template_path fill_form $xfdf_file_path output $result_pdf flatten";

假设您的服务器上有一个模板 PDF 可将数据写入其中。

> 更多信息在这里

于 2013-05-01T00:18:42.767 回答