我正在处理一个公司报告生成系统,该系统生成带有标记和签名的文档 .

令人遗憾的是,系统无法将图像放置在现有文本和表格下方,因此jpg-stamps重叠文本看起来非常奇怪且不切实际 . 系统也不支持具有透明度通道的图像 .

我试图通过首先将报告打印到PDF然后使用iTextSharp操纵将所有图像发送回来(在文本和其他矢量内容下面)来修复问题 . 最后将结果发送到硬件打印机 .

所有图像都存储在资源(XObjects)中 .

问题是我不知道如何使用iTextSharp操作PDF对象z-order(创建顺序) .

当前版本(c#COM-object / assembly)的工作原理如下:

  • 使用parser.ProcessContent()在页面循环中构建对现有图像(引用,图像字节,图像CTM)的引用列表

  • 对找到的任何引用执行KillIndirect()

  • 用writer.AddDirectImageSimple()和空白图像(带透明蒙版)替换它们

  • 在GetUnderContent模式下,将先前存储的图像字节作为图像(将CTM考虑在内)与压模一起插入 .

我想知道是否有一个更简单的解决方案没有空白图像,多余的参考等 .