2

我正在尝试使用我的 C# 软件创建一个 pdf 文件。我正在使用itextsharp库来创建客户账单收据。

但是我无法格式化文本。我们如何格式化pdf文件中的文本。只有换行符\n似乎在工作。我们如何使用制表符格式化文本?

附件是pdf文件中文本的屏幕截图。

非常感谢你的帮助。

在此处输入图像描述

4

2 回答 2

2

对不起,我不得不反驳 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 个对象中。

于 2012-11-03T09:10:33.967 回答
1

iTextSharp不支持Tab,但您可以Paragraph Paragraph.IndentationLeft改用或cell.PaddingLeft用于表格单元格。

于 2012-11-03T06:05:01.237 回答