2013-07-12 30 views
-1

我創建了一些帶有輪廓的PdfTemplate。現在我想複製它4次,並在它們的每一個上放置不同的形狀。我現在所嘗試的是:iText PdfTemplate複製

PdfTemplate[] oRTA = new PdfTemplate[4]; 
for(int i=0; i<4; i++) 
{ 
    oRTA[i] = (PdfTemplate)oTemplate.GetDuplicate(false); 
} 

其中oTemplate是我的標準PdfTemplate對象。問題可能是我不能使用覆蓋的GetDuplicate方法,所以我必須施放它(不知道爲什麼)。我試圖用簡單的幾點:

oRTA[iTemplateIndex].Circle(oCmp.iXLocation, oCmp.iYLocation, 0.1f); 
oRTA[iTemplateIndex].Stroke(); 

結果我什麼也沒有印。嘗試:

oTemplate.Circle(oCmp.iXLocation, oCmp.iYLocation, 0.1f); 
oTemplate.Stroke(); 

的作品。

+0

作爲iText的郵件列表上進行了說明,但目前還不清楚爲什麼你要複製一個'PdfTemplate'實例。你可能使用'PdfTemplate'來避免冗餘。複製一個實例而不是重複使用它將引入冗餘。 –

+0

我使用'PdfTemplate',因爲我發現它是簡單的使用和滿足我的需求。我想打印4個印刷電路板。我把板子的形狀繪製成一個模板。現在,我想複製這種形狀的4倍,並放置在每一個他們(如SMD於一體,THT另一個等等) – papiozo

+0

重新使用原來的PdfTemplates的不同組成部分,並添加在他們頂部另一個PdfTemplate。這可以減少PDF的大小。 –

回答

0

解決辦法是不要重複你的模板,但創造它4個(不同PdfTemplate對象),然後添加你需要他們每個人的東西。我知道也許現在是最好的選擇,但它應該像它應該的那樣工作。布魯諾Lowagie給出的解決方案似乎是適當的太:)