对齐字符串C#的内容

时间:2013-04-19 17:01:48

标签: pdf itextsharp

我正在使用iTextSharp扩展名将数据输出到PDF文件。我使用For loop动态输出数据,这是在XML表单上。我遇到的问题是对齐一行的内容,或者在这种情况下,正在写入pdf页面的“段落”。目前的输出是:

__ 0002 dog name              breed              John Doe
__ 0004 Kona                 Doberman             Jesus Montero

我需要输出看起来像这样:

__ 0002 dog name             breed                John Doe
__ 0004 Kona                 Doberman             Jesus Montero

请记住,这些只是在For loop的两个独立循环中写入pdf文件的两个字符串。添加字符串的代码是:

iText.Paragraph dogEntryParagraph = new iText.Paragraph(
  (   "__   "
    + String.Format( "{0,-40}{1,-40}{2,-40}{3,-40}" ,
        armBandString ,
        dogNameString ,
        breedString   ,
        ownerNameString
        )
  ) ,
  _smallFont
  ) ;

对于尝试在字符串中对齐品种和所有者名称时,是否有人对我做错了什么有任何建议?我花了很多时间才能把它关闭,但不完全是我需要的。

2 个答案:

答案 0 :(得分:3)

您需要使用表格。我用iTextSharp自己解决了这个问题 - 即使你使用的是等宽字体,除非你在特定坐标处绘制文本然后炸掉流布局,否则你要做的事情将无法工作。因此,在iTextSharp中制作表格数据的最佳方法是使用表格...

首先将表格创建为对象,然后将其添加到流程中......

PdfPTable table = new PdfPTable(2);

table.addCell("Dog Name");
table.addCell("Breed");

table.addCell("Akira");
table.addCell("Chinese Crested");

table.addCell("Kaika");
table.addCell("Greyhound");

document.add(table);

这确实非常有效,如果需要,您可以将格式化对象添加到单元格,或图像或其他任何内容。你也可以添加边框和其他东西......

http://www.geek-tutorials.com/java/itext/itext_table.php

答案 1 :(得分:0)

在这种情况下,您也可以尝试使用等宽字体。这将确保每个空格和字符都是固定长度。