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

标签 c# string line itext 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. 使用等宽字体(例如 Courier)。目前您使用的字体不同字符的宽度不同。
  2. 下载chapter 2 of my book并学习如何使用 TAB CHUNKS(在第 48 页查找该标题)。
  3. 按照 mkl 在他的评论中指出的那样使用 PdfPTable(也许您忽略了显而易见的内容)

如果您需要选项 2 的代码片段,请查看 DirectorOverview3例子。结果看起来像 this 。如果您不懂Java,请阅读C# example .

关于c# - 如何使用间距、制表符或填充来对齐列中的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912324/

相关文章:

ruby-on-rails - Eclipse(Aptana插件)源代码行边框

android - 您应该如何使用带有 PathShape 的 ShapeDrawable 在自定义 View 上绘制线条?

c# - 任务的 OnCompleted 回调在哪里?

Java如何检查字符串值是否是给定Class<?>的类型

java - charAt() 方法如何从字符串中获取数字并将它们放入 Java 中的新字符串中?

ruby - 打印 string.length 时出错

css - 有时在 chrome 上不会出现带有 css 的简单行

c# - Selenium WebDriver C# 使用 ChromeDriver 和 FirefoxDriver 的完整网站截图

c# - 如何找到依赖于特定依赖项的特定版本?

c# - 应用设置c#的依赖注入(inject)实现