itextsharp输出多行的字符串

时间:2013-05-13 09:07:12

标签: c# pdf-generation itextsharp phrase

这是我试图复制的参考文献。

http://www.depo.com.tw/asp/pdf/R_VW_PASAT_2.pdf

我正在处理PDF目录,我正在尝试输出类似红色文本区域的内容。

正如大家们在PDF中看到的那样,输出字母 441-11B2-LDHEM 非常简单。但是,输出 441-11A7-LD / RD-EM1 不是。

private void PlaceChunck(String text, int x, int y)
{
    PdfContentByte cb = writer.DirectContent;
    cb.SaveState();
    cb.BeginText();
    cb.MoveText(x, y);
    cb.ShowText(text);
    cb.EndText();
    cb.RestoreState();
}

我能想到的只是在相应区域放置块。但这是一个非常漫长的过程,需要对字符进行大量计算......

我想知道是否有人知道如何以更简单的方式做到这一点?感谢。

1 个答案:

答案 0 :(得分:1)

好的,现在我明白了这个问题。

执行此操作的最佳方法是创建一个小PdfTemplate对象,并在正确的位置(一个在另一个之上)添加LD和RD。现在将PdfTemplate包裹在Image对象中,并将Image包裹在Chunk内(可能带有Y偏移量)。 现在,您可以使用“441-11A7-”创建Phrase,然后创建图像块,然后是“-EM1”。不幸的是,这是我所知道的最简单的方式。

另一种方法是使用ChunksetTextRise(),但是你必须找到一种方法来返回一些字符。虽然这可能是可能的,但它可能更难以且更容易出错。

最后,编写DrawInterface或VerticalMark的自定义实现可能会有效,但我需要更多时间来编写这样的示例(我目前没有的时间;我是维也纳ISO的ISO委员会成员)那一刻)。

也许你可以向我们展示你到目前为止所尝试的内容?