2014-10-28 31 views
2

我有多個矩形,它們都共享相同的專色。有沒有辦法將它們合併/組合成一個矢量對象,這樣生成的pdf的尺寸就更小了?在iTextSharp中分組矩形

回答

2

如果您是從頭創建文檔,那麼答案是微不足道的:是的!

繪製共享相同專色的矩形的所有路徑就足夠了,然後使用填充,填充或填充&筆劃路徑的運算符。

如果您正在討論優化現有PDF文檔,那麼您需要進行一些繁重的編程工作。您需要解析每個查找矩形運算符的內容流(假設矩形不是使用移動到和運算符來繪製),檢查這些形狀填充和/或描邊的位置,然後重新排列所有這些運算符。這需要很多思考。我會知道從哪裏開始,但我無法預測它會在哪裏結束。也許事實證明,將單個矩形定義爲Form XObject並重用該單個外部對象(可能不是)更有意義。很難預測。

此外:您正在討論流中的操作符。無論如何,這些流都會被壓縮,因此您可能會做很多工作來減小尺寸。

我會說:你所要求的可能是可能的,但不清楚你爲什麼要這樣做,因爲它會導致文件大小的有限減少。

如果大小是一個問題,可能有其他地方,你是「浪費字節」,可能會導致更令人滿意的結果。我很好奇聽到你爲什麼認爲使用專色的矩形是罪魁禍首。你是重用專色實例,不是嗎?如果您爲繪製的每個矩形創建一個新的專色實例,那麼您已經找到了真正的罪魁禍首,並且您可以避免對矩形進行分組。