gpt4 book ai didi

pdf - 在 PHP 中使用 utf-8 字符将 FDF/XFDF 表单展平为 PDF

转载 作者:行者123 更新时间:2023-12-02 06:08:48 26 4
gpt4 key购买 nike

我的场景:

  • 带有表单域的 PDF 模板:template.pdf
  • 包含要填写的数据的 XFDF 文件:fieldData.xfdf

现在我需要将这些文件合并并展平。pdftk 在 php 中轻松完成这项工作:

exec("pdftk template.pdf fill_form fieldData.xfdf output flatFile.pdf flatten");

不幸的是,这不适用于完整的 utf-8 支持。例如:西里尔字母和希腊字母被打乱。我使用 Arial 来实现此目的,并使用 unicode 字符集。

  • 如何才能扁平化我的 unicode 文件?
  • 还有其他提供 unicode 支持的 pdf 工具吗?
  • pdftk 是否有我缺少的 unicode 开关?

编辑 1:由于这个问题已经超过 9 个月没有得到解决,我决定开始悬赏它。如果有选项可以赞助 pdftk 中的功能或错误修复,我很乐意捐赠。

编辑2:我不再从事这个项目了,所以我无法验证新的答案。如果有人有类似的问题,我很高兴他们能以我的方式做出回应。

最佳答案

我发现通过使用 Jon 的模板,但使用 DomDocument,数字编码已为我处理并且运行良好。我的细微变化如下:

$xml = new DOMDocument( '1.0', 'UTF-8' );

$rootNode = $xml->createElement( 'xfdf' );
$rootNode->setAttribute( 'xmlns', 'http://ns.adobe.com/xfdf/' );
$rootNode->setAttribute( 'xml:space', 'preserve' );
$xml->appendChild( $rootNode );

$fieldsNode = $xml->createElement( 'fields' );
$rootNode->appendChild( $fieldsNode );

foreach ( $fields as $field => $value )
{
$fieldNode = $xml->createElement( 'field' );
$fieldNode->setAttribute( 'name', $field );
$fieldsNode->appendChild( $fieldNode );

$valueNode = $xml->createElement( 'value' );
$valueNode->appendChild( $xml->createTextNode( $value ) );
$fieldNode->appendChild( $valueNode );
}

$xml->save( $file );

关于pdf - 在 PHP 中使用 utf-8 字符将 FDF/XFDF 表单展平为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3973283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com