C#中itextsharp中的文本格式

时间:2012-11-03 05:58:03

标签: c# itextsharp

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

但是我无法格式化文本。我们如何格式化pdf文件中的文本。只有新行字符\n似乎正在运行。我们如何使用Tab字符格式化文本?

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

非常感谢你的帮助。

enter image description here

2 个答案:

答案 0 :(得分:2)

对不起,但我不得不反对Cuong Le,iTextSharp确实支持TAB Chunks。请下载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值),并将此“tab chunk”添加到4 {{1}您要添加到文档中的对象。

答案 1 :(得分:1)

iTextSharp不支持Tab,但您可以使用Paragraph Paragraph.IndentationLeft代替,或使用cell.PaddingLeft代表表格。