【问题标题】:PDFTron: Filling a form with Scandic lettersPDFTron:用 Scandic 字母填写表格
【发布时间】:2020-08-19 07:54:46
【问题描述】:

我正在尝试编写一个 PHP 脚本来用数组中的数据填充表单。

这几乎可以正常工作。除了 PDFTron 对我的字符串进行编码,例如'Älli älä jätä' 变成 ' lli l j t'。

我尝试从文本字段中禁用只读,以查看手动编写某些文本是否可行 - 确实可行。

我还测试了使用其他工具 (PDFTK) 生成 PDF - 这也生成了带有 Scandic 字母的所需 PDF。

<?php
require_once './lib/pdftron/PDFNetPHP.php';

PDFNet::Initialize();

/**
 * @var PDFDoc
 */
$doc = new PDFDoc('./test.pdf');

$field = $doc->GetField('value');
$field->SetValue(utf8_encode('Älli älä jätä'));

$doc->RefreshFieldAppearances();
$doc->FlattenAnnotations();

$buffer = $doc->Save(SDFDoc::e_linearized);

header("Content-type:application/pdf");
header('Content-Length: ' . strlen($buffer));

echo $buffer;

Link to the PDF-document created with Adobe Indesign 15.1.1

【问题讨论】:

    标签: php encoding pdftron


    【解决方案1】:

    好的。 所以问题似乎不在于 PDFTron,而在于嵌入了损坏字体的 Indesign。

    当我在 Adob​​e Acrobat 中打开 PDF 文档时,我能够编辑文本字段的属性,因此将字体“TimesNewRomanPSMT”更改为“Times New Roman”,从而解决了问题。

    【讨论】:

    • 如果您回答了自己的问题,这在 StackOverflow 中很好,请将您的问题标记为答案。
    • 问题似乎是 Indesign 没有嵌入字段中使用的字体。所以因为我的 Docker 容器中没有可用的字体,所以它无法填充字形。解决此问题的一种方法是我上面提到的方法。另一种方法是安装 fontconfig 并配置它以在字形丢失时提供替换字体。
    • 听起来您对 InDesign 有疑问。我建议删除这个,并使用 adobe-indesign 标签创建一个新问题
    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 2018-01-15
    • 2021-04-23
    • 2014-05-30
    • 1970-01-01
    • 2012-01-23
    • 2012-11-26
    • 2023-03-16
    相关资源
    最近更新 更多