4

我正在尝试手动将一些文本添加到 pdf 文件中。我能够添加具有特定字体的新文本。但我无法设置字体颜色。那么我该如何手动完成呢?(我只想手动更改这些,因为我已经有了编写这些字节以制作 pdf 文件的代码)另外,我如何使用 pdf 标准中指定的图形状态来操作文本,以便功能更改不会影响颜色变化等。我究竟如何使用图形状态?

源 pdf 文件单击此处 修改的 pdf 文件clcik 此处

4

1 回答 1

11

PDF 颜色运算符列在 PDF 规范ISO 32000-1:2008的表 74 中。

在您的情况下,您添加的内容流是

104 0 obj
<</Length 105 0 R>>stream
  /Helv 8 Tf
  BT
  1 0 0 1 15.67 150 Tm
  (l)Tj
  ET
  /Helv 8 Tf
  BT
  1 0 0 1 17.88 190 Tm
  (abcdefghijklmnopqr)Tj
  ET
endstream
endobj 

例如,如果您希望在 RGB 颜色空间中用红色填充文字,请添加1 0 0 rg

104 0 obj
<</Length 105 0 R>>stream
  BT
  1 0 0 1 15.67 150 Tm
  /Helv 8 Tf
  1 0 0 rg
  [...]

编辑

如果您担心该更改可能会影响以后的文本,请记住使用图形状态堆栈运算符qQ(参见PDF 规范的第 8.4.2 节)。例如

q
0 1 -1 0 595.22 0 cm
q
BT
1 0 0 1 36 540 Tm
/Xi0 12 Tf
0.75 g
(Hello people!)Tj
0 g
ET
Q
Q

(复制自How to add text object to existing pdf

于 2013-03-06T08:30:41.523 回答