Pdf将字体颜色设置为文本

IT *_*her 3 pdf pdf-generation

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

来源pdf文件点击这里 修改pdf文件clcik在这里

mkl*_*mkl 8

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 
Run Code Online (Sandbox Code Playgroud)

例如,如果您希望在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
  [...]
Run Code Online (Sandbox Code Playgroud)

编辑

如果您担心该更改可能会影响以后的文本,请记住使用图形状态堆栈运算符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
Run Code Online (Sandbox Code Playgroud)

(从如何将文本对象添加到现有pdf复制)

  • 如果它对其他人有帮助,还请注意“rg”(填充颜色)和“RG”(描边颜色)之间的区别。今天正在修改一些 pdf 文件,无法弄清楚为什么文本颜色没有按照我的预期改变。事实证明,当我需要修改“rg”时,我错误地修改了“RG”。 (2认同)