使用ITextSharp表时,我遇到了几个问题。
1)如何将表格列宽自动调整到最大值?
2)如何将整个表推向右侧(右对齐表不对齐表格内容)
以下是我想要实现的目标表示页面的开始和结束。 我们可以看到,第1列(发票A,B,CDE)的宽度不同,与第3列相同。我希望itextsharp自动适应宽度。也许在itextsharp中有一个函数可以实现这个目的吗?
| Invoice A : Be |
| B : Cdefg |
| CDE : abc |
答案 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;