能否增加修改并保存Contents的功能,包括修改xobject里面的对象的内容流
能否增加修改并保存Contents的功能,包括修改xobject里面的对象的内容流。这样很多简单水印就可以直接使用补丁丁处理,更便捷。
顺便问一下,保存页面内容流在ItextSharp中用SetPageContent就可以了。保存xobject里面的对象的内容流用什么呢?例如x24的内容流如何修改之后保存?
pdf:
保存xobject里面的对象的内容流用什么呢?例如x24的内容流如何修改之后保存?
那是一个流,可以用 setData 方法重写里面的字节数组。
最近在忙其它的项目,暂未有暇兼顾。这个需求不难实现,但是内容流解码后可能会丢失数据,可以考虑提供修改内容节点树的方式来实现修改内容流的功能,但工作量就比较多了。
内容流解码为bytes[]时,应该不会丢数据。问题会出在处理内容流的时候。考虑内容流经常存在一些不可见字符,不能直接把内容流转成字符串进行处理,只能直接操作bytes,这会略微困难一些。我的PDFCommander主要就是为了解决这个问题而写的。
你的TextViewerForm需要以文本方式显示给用户才能方便修改。但是文本显示和contents bytes之间会存在不可见字符问题,这就会给用户造成一些数据上的理解混乱。
直接在TextViewerForm里面修改数据的好处是可以方便处理大量操作符。如果使用修改节点树的方法,有时候存在水印相关节点数量过多的问题,人工无法处理(我见过一页300万行的Contents)。
所以,这活要弄好的话,既要支持编辑器批量修改(需要处理不可见字符的显示,八进制可能不太适合普通用户),又要提供内容节点树的快捷修改,工作量挺大。
留待以后考虑吧。
没必要关闭,先留着。