2013-10-09 22 views
0

我想從第2章開始運行Countrychunks示例。該示例工作正常但行:document.Add(Chunk.NEWLINE);不生成新行並且循環覆蓋第一行。我在這裏發佈我的代碼的情況下,我做錯什麼:第2章countrychunks示例

public void createCountryChunks(String fileName) 
     { 
      iTextSharp.text.Font font; 
      Document document = new iTextSharp.text.Document(); 

      //PdfWriter.GetInstance(document, new FileStream(fileName)).setInitialLeading(16); 
      PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); 
      document.Open(); 

      font = new iTextSharp.text.Font(iTextSharp.text.Font.FontFamily.HELVETICA, 6, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.WHITE); 

      foreach (var p in myProducts) 
      { 
       // add a country to the document as a Chunk 
       document.Add(new Chunk(p.pr_name)); 
       document.Add(new Chunk(" ")); 
       Chunk id = new Chunk(p.pr_URN.ToString(), font); 

       // with a background color 
       id.SetBackground(BaseColor.BLACK, 1f, 0.5f, 1f, 1.5f); 

       // and a text rise 
       id.SetTextRise(6); 
       document.Add(id); 
       document.Add(Chunk.NEWLINE); 
      } 

      document.Close(); 
     } 

正如你所看到的例子是有點不同,因爲數據的,但其餘幾乎是一樣的原始Java例子。

有什麼建議嗎?

+0

這是絕對正確的 - 我從來沒有想過這一點。我沒有把「setInitialLeading」帶到.Net庫的原因是我根本找不到它。現在我發現它實際上叫做InitalLeading,沒有「設置」。另外,因爲我無法訪問完整的iTextSharp庫API。 謝謝你的回覆 - 節省了我很多時間。你知道API文檔的任何鏈接嗎? 謝謝 –

回答

1

setInitialLeading呼叫您無法接管並被註釋掉實際上非常重要。重新加入將解決您的問題。我真的不喜歡直接添加屬性到我構建的對象上,所以我打算用兩行來做:

var w = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create)); 
w.InitialLeading = 16; 
相關問題