我需要从RGB中的灰度PDF转换为CMYK。所以我只需要在iText中创建一个未压缩的PDF,然后用"0.0 0.0 0.0 0.7 K“替换所有的条目,比如”0.70.7RB“。
它工作得很好,但当我在Acrobat Reader中打开pdf时,我看到一条消息,如"PDF已损坏,但可以打开“。那么pdf看起来没问题。我想在PDF格式中有一些安全的机制,比如哈希。我能以某种方式避免这条消息吗?
P.S.在CMYK中直接生成pdf是不可行的,因为我使用PdfGraphics2D来绘制我的AWT组件,而PdfGraphics2D只能使用RGB。
发布于 2012-02-16 14:23:39
PDF文件包含交叉引用表和/或一个或多个交叉引用流。基本上,这样的表/流包含关于PDF对象从文件开头偏移的信息。
当您用0.0 0.0 0.0 0.7 K替换0.7 0.7 0.7 RB时,您正在更改页面流的字节大小,并且呈现存储在交叉引用流中的值不正确。
许多PDF处理器都用来处理以这种方式损坏的PDF文件,但您肯定会尝试将正方形放入圆孔中:-)
请使用能够正确完成任务的工具。我想,Acrobat Professional应该可以很好地满足您的需求。或者至少更新交叉引用表(可能不是一项容易的任务)。
另一种选择是破解一些损坏的PDF,然后在Acrobat中打开它们,save.Acrobat将为您更新交叉引用表。
但请-请-请不要让这种破碎的PDF文件进入野外。
发布于 2012-02-16 03:15:59
假设您正在处理灰度值,只需尝试以另一种方式将RGB转换为CMYK即可:
RGB (0.7,0.7,0.7) -> CMYK (0.7,0.7,0.7,0.0)
https://stackoverflow.com/questions/9298949
复制相似问题