2013-03-06 76 views
1

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

源pdf文件click here 改性pdf文件clcik here

+0

你是什么手动添加的文字是什么意思?它与编程有关还是你的意思是在Adobe Acrobat中? – ellak 2013-03-06 07:33:15

+0

不是用adobe acrobat.I想用编程来做。为此我想改变pdf的对象。 – 2013-03-06 08:18:18

+0

你可以显示你到目前为止的代码吗?你使用什么编程语言? – ellak 2013-03-06 08:20:12

回答

5

的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 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复制)

+0

谢谢。如果我通过指定诸如1 0 0 rg来使用颜色,那么它是否会影响所有字体和其他对象?因为我不想将这种颜色变化影响到我的PDF文件中的所有文本。 – 2013-03-06 09:15:06

+0

我能够用我想要的颜色添加文本。但是生成的pdf不能在Windows 8阅读器(应用程序在Windows 8中用于pdf视图)中打开。在Adobe Reader中它可以正常打开。我可以如何解决它? – 2013-03-06 09:27:11

+0

请提供。我假设无与伦比的运算符对。 – mkl 2013-03-06 09:34:46