pdf 将字体颜色设置为文本

标签 pdf pdf-generation

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

源pdf文件click here
修改后的pdf文件clcik here

最佳答案

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

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

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
  [...]

编辑

如果您担心该更改可能会影响以后的文本,请记住使用图形状态堆栈运算符 q (参见 PDF specification 的第 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)

关于pdf 将字体颜色设置为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241337/

相关文章:

pdf - 从不同格式的 pdf 发票中提取数据

ios - 顶部/底部、左/右边缘有白线的 PDF 渲染

php - FPDI+TCPPDF导入PDF模板大小问题

php - Gmagick 在加载 PDF 之前设置密度

java - PDF 文本 | ClassCastException - com.lowagie.text.Paragraph 无法转换为 com.lowagie.text.Table

java - 打印解决方案

mysql - 如何用mysql数据创建pdf文件?

java - 书签未被复制

java - 我们可以使用 iText/PDFBox 或 java 中的任何其他 PDF 库创建动态 XFA 表单吗?

c# - 如何将 Silverlight 数据网格转换为 PDF?