如何使用间距,制表符或填充来对齐列中的内容?

时间:2013-02-20 14:54:22

标签: c# string line itextsharp padding

我正在尝试创建一个像这样的pdf

look like1

但是当我尝试字符串填充时,它在pdf文件中看起来像这样 look like2

这是我试过的c#代码的一部分。 myExcelData是从excel文件中填充的。

            for (int i = 0; i < 15; i++)
        {
            Chunk cSira = new Chunk((i + 1).ToString().PadRight(10), icerikFont);
            Chunk cHizmet = new Chunk(myExcelData.Tables[0].Rows[i][6].ToString().PadRight(80), icerikFont);
            Chunk cAdet = new Chunk(myExcelData.Tables[0].Rows[i][1].ToString().PadRight(10), icerikFont);
            Chunk cBirimFiyat = new Chunk(myExcelData.Tables[0].Rows[i][2].ToString().PadRight(20), icerikFont);
            Chunk cTutar = new Chunk(myExcelData.Tables[0].Rows[i][3].ToString().PadRight(20), icerikFont);
            d.Add(cSira);
            d.Add(cHizmet);
            d.Add(cAdet);
            d.Add(cBirimFiyat);
            d.Add(cTutar);
            d.Add(Chunk.NEWLINE);
        }

1 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点:

  1. 使用等宽字体(例如Courier)。目前,您使用的字体的宽度不同。
  2. 下载chapter 2 of my book并了解如何使用TAB CHUNKS(请参阅第48页的标题)。
  3. 使用PdfPTable作为mkl在他的评论中指出(也许你忽视了明显的)
  4. 如果您需要选项2的代码段,请查看DirectorOverview3示例。结果看起来像this。如果您不了解Java,请阅读C# example