我正在尝试使用我的C#软件创建一个pdf文件。我正在使用itextsharp
库来创建客户账单收据。
但是我无法格式化文本。我们如何格式化pdf文件中的文本。只有新行字符\n
似乎正在运行。我们如何使用Tab字符格式化文本?
附件是pdf文件中文本的屏幕截图。
非常感谢你的帮助。
答案 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
代表表格。