PDF中的文本是否可以转换为图像,呈现为自定义字体?

时间:2014-07-22 13:15:36

标签: pdf pdftk

一些事实:

  • 我的许可字体无法嵌入到我创建的PDF中。
  • PDF中的唯一文字位于可编辑的表单字段中。这些领域' '字体' property设置为许可字体。
  • 我使用.fdf

    以编程方式使用动态生成的pdftk文件填写这些表单字段
    pdftk infile.pdf fill_form data.fdf output outfile.pdf flatten
    
  • flatten参数会导致PDF中的表单字段转换为不可编辑的文本。

我正在寻找一种方法让这些文字显示在许可字体中而不会在PDF中实际嵌入字体。

我已在生成PDF的服务器上安装了该字体。 有没有办法将许可字体中显示的文字转换为静态/展平图像?

1 个答案:

答案 0 :(得分:1)

可以在PDF中执行此操作。是否有可能在pdftk中是另一回事。

在PDF格式中创建表单字段时,它们可以包含一组可选的外观流,用于定义表单字段在查看器中的显示方式。特别是,您需要查看Appearance Streams的PDF参考中的12.5.5节。

它归结为子类型/表单的XObject,其中包含相关字段的外观。您需要将文本渲染为与表单字段的/ Rect元素具有相同比例的图像(可能在其中具有框轮廓),并创建与其匹配的/ Form XObject。

这完全可行,但实现这一目标也是一项相当多的细节工作。

这是任何给定文本字段的工作

  1. 从/ Rect(PDF单位)
  2. 获取表单字段的尺寸
  3. 使用与表单字段相同的比例创建一个图像,可能是96 dpi,将该图像转换为子类型的XObject / Image
  4. 创建子类型/表单的XObject,将对步骤2中的/ Image的引用放入资源,创建将/ Image缩放到正确大小的内容流
  5. 将表单字段的字典的/ AP元素设置为带有一个元素/ N的新字典,该元素引用#3中的/ Form XObject
  6. 在字段的/ Ff元素
  7. 中设置ReadOnly标志