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

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

看起来像1

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

这是我试过的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. 使用等宽字体(例如Courier)。 目前,您使用的字体的宽度不同。
  2. 下载我的书的第2章 ,学习如何使用TAB CHUNKS(在第48页查找该标题)。
  3. 使用PdfPTable作为mkl在他的评论中指出(也许你忽略了明显的)

如果您需要选项2的代码段,请查看DirectorOverview3示例。 结果看起来像这样 。 如果您不了解Java,请阅读C#示例 。