0

这是我试图复制的参考 pdf。

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();
}

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

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

4

1 回答 1

1

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

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

另一种方法是使用Chunkwith setTextRise(),但是您必须找到一种方法来返回多个字符。虽然这可能是可能的,但它可能更困难且更容易出错。

最后,编写 DrawInterface 或 VerticalMark 的自定义实现是可行的,但我需要更多时间来编写这样的示例(我目前没有时间;我目前在维也纳的 ISO 委员会工作) .

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

于 2013-05-13T09:51:41.053 回答