这是我试图复制的参考文献。
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();
}
我能想到的只是在相应区域放置块。但这是一个非常漫长的过程,需要对字符进行大量计算......
我想知道是否有人知道如何以更简单的方式做到这一点?感谢。
答案 0 :(得分:1)
好的,现在我明白了这个问题。
执行此操作的最佳方法是创建一个小PdfTemplate
对象,并在正确的位置(一个在另一个之上)添加LD和RD。现在将PdfTemplate
包裹在Image
对象中,并将Image
包裹在Chunk
内(可能带有Y偏移量)。
现在,您可以使用“441-11A7-”创建Phrase
,然后创建图像块,然后是“-EM1”。不幸的是,这是我所知道的最简单的方式。
另一种方法是使用Chunk
和setTextRise()
,但是你必须找到一种方法来返回一些字符。虽然这可能是可能的,但它可能更难以且更容易出错。
最后,编写DrawInterface或VerticalMark的自定义实现可能会有效,但我需要更多时间来编写这样的示例(我目前没有的时间;我是维也纳ISO的ISO委员会成员)那一刻)。
也许你可以向我们展示你到目前为止所尝试的内容?