0

我正在尝试运行第 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 示例几乎相同。

请问有什么建议吗?

4

1 回答 1

1

setInitialLeading您无法带过来并被注释掉的电话实际上非常重要。添加回来将解决您的问题。我真的不喜欢将属性直接添加到我构造的对象上,所以我将分两行来做:

var w = PdfWriter.GetInstance(document, new FileStream(fileName, FileMode.Create));
w.InitialLeading = 16;
于 2013-10-09T13:29:32.073 回答