我正在尝试使用我的 C# 软件创建一个 pdf 文件。我正在使用itextsharp
库来创建客户账单收据。
但是我无法格式化文本。我们如何格式化pdf文件中的文本。只有换行符\n
似乎在工作。我们如何使用制表符格式化文本?
附件是pdf文件中文本的屏幕截图。
非常感谢你的帮助。
我正在尝试使用我的 C# 软件创建一个 pdf 文件。我正在使用itextsharp
库来创建客户账单收据。
但是我无法格式化文本。我们如何格式化pdf文件中的文本。只有换行符\n
似乎在工作。我们如何使用制表符格式化文本?
附件是pdf文件中文本的屏幕截图。
非常感谢你的帮助。
对不起,我不得不反驳 Cuong Le,iTextSharp 确实支持 TAB 块。请下载http://www.manning.com/lowagie2/samplechapter2.pdf并查找标题为“TAB CHUNKS”的部分(第 2.2.6 节的一部分)。
当您要求 C# 解决方案时,让我从 iTextSharp 复制粘贴您需要的方法:
/**
* Creates a tab Chunk.
* Note that separator chunks can't be used in combination with tab chunks!
* @param separator the drawInterface to use to draw the tab.
* @param tabPosition an X coordinate that will be used as start position for the next Chunk.
* @param newline if true, a newline will be added if the tabPosition has already been reached.
* @since 2.1.2
*/
public Chunk(IDrawInterface separator, float tabPosition, bool newline)
: this(OBJECT_REPLACEMENT_CHARACTER, new Font()) {
if (tabPosition < 0) {
throw new ArgumentException(MessageLocalization.GetComposedMessage("a.tab.position.may.not.be.lower.than.0.yours.is.1", tabPosition));
}
SetAttribute(TAB, new Object[] {separator, tabPosition, newline, 0});
}
制表符位置是以用户单位表示的值(默认情况下 1 个用户单位 = 1 点 = 1/72 英寸)。在您的情况下,您需要Chunk
使用正确的选项卡值(您希望名称和地址信息开始的 X 值)创建这样的一个,并将此“选项卡块”Paragraph
添加到您要添加到文档的 4 个对象中。
iTextSharp
不支持Tab
,但您可以Paragraph
Paragraph.IndentationLeft
改用或cell.PaddingLeft
用于表格单元格。