我正在尝试从第2章运行Countrychunks示例。该示例有效但行:document.Add(Chunk.NEWLINE);
不生成新行,循环覆盖第一行。我在这里发布我的代码,以防我做错了什么:
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 :(得分:1)
你无法带来的setInitialLeading
电话并被注释掉其实非常重要。添加它将解决您的问题。我真的不喜欢直接在我构造的对象上添加属性,所以我将分两行:
var w = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
w.InitialLeading = 16;