ITextSharp自动将表格列宽最大化

时间:2015-02-06 16:06:53

标签: itextsharp

使用ITextSharp表时,我遇到了几个问题。

1)如何将表格列宽自动调整到最大值?
2)如何将整个表推向右侧(右对齐表不对齐表格内容)

以下是我想要实现的目标表示页面的开始和结束。 我们可以看到,第1列(发票A,B,CDE)的宽度不同,与第3列相同。我希望itextsharp自动适应宽度。也许在itextsharp中有一个函数可以实现这个目的吗?

|                    Invoice A : Be    |               
|                            B : Cdefg |
|                          CDE : abc   |
                 

1 个答案:

答案 0 :(得分:0)

关于问题的第1部分:根据内容自动调整列数

请查看The Best iText Questions on StackOverflow。它有关于如何调整表的不同示例,尤其是在名为“Tables”的章节中。

重要的是要了解PDF是决定哪些内容在哪里的格式。换句话说:定义列的宽度。列的宽度不是由其内容定义的,如HTML中的情况。

如果您希望表格为“自动调整大小”,为什么不将表格创建为HTML,然后使用XML worker将HTML转换为PDF。在这种情况下,iText的XML Worker将查看内容并相应地调整列宽。例如,请查看我对以下问题的回答:How to get particular html table contents to write it in pdf using itext

顺便说一句,该示例是用Java编写的,但是如果你需要一个C#示例,你会在这里找到一个C#示例:itextsharp html to pdf

关于问题的第2部分:设置表格的对齐

有一种方法。在Java中,它是setHorizontalAlignment()。您可以在此处找到C#计数器部分:Align itextsharp table

换句话说,你需要:

table.HorizontalAlignment = Element.ALIGN_RIGHT;