在iTextSharp中对矩形进行分组

时间:2014-10-28 10:19:11

标签: pdf-generation itextsharp rectangles

我有多个矩形,它们都有相同的专色。有没有办法将它们合并/分组到一个矢量对象中,以便生成的pdf具有更小的尺寸?

1 个答案:

答案 0 :(得分:2)

如果您是从头开始创建文档,那么答案是微不足道的:是的!

足以绘制共享相同专色的矩形的所有路径,然后使用填充,描边或填充的运算符。划过路径。

如果您正在讨论优化现有PDF文档,那么您需要进行一些繁重的编程。您需要解析每个寻找矩形运算符的内容流(假设矩形不是使用move-to和line-to运算符绘制的),检查这些形状的填充和/或描边位置,然后重新排列所有这些运算符。这需要很多思考。我知道从哪里开始,但我无法预测它会在何处结束。也许事实证明,将单个矩形定义为Form XObject并重用该单个外部对象更有意义,也许不是。这很难预测。

此外:您正在谈论流中的运营商。无论如何,这些流都是压缩的,因此您可能需要做很多工作才能获得非常小的尺寸减小。

我会说:你所要求的可能是可能的,但目前还不清楚为什么要这样做,因为它只会导致文件大小的有限减少。

如果大小是一个问题,可能还有其他地方“浪费字节”可能会产生更理想的结果。我很好奇听到为什么你认为使用专色的矩形是罪魁祸首。你是重复使用专色实例,不是吗?如果要为绘制的每个矩形创建一个新的专色实例,您就找到了真正的罪魁祸首,您可以避免对矩形进行分组。