5

大厅,

我正在使用 IText 在 PDF 上添加文本层。现在我想编辑 PDF 上的现有图层,图层也仅由 IText 创建。似乎 IText 没有这样的方法来支持。

我想到的其他方法是删除现有图层并在其位置放置新图层。似乎 IText 也不支持删除。有什么办法做到这些吗?

提前致谢。

4

1 回答 1

5

正如评论中所证明的那样,有问题的图层实际上是 iText 所谓的图层,但实际上在 PDF 术语中称为可选内容组。

在 iText Xtra 包中确实有一个用于删除此类层的实用程序类(不是 extrajars,而是 itext-xtra.jar):com.itextpdf.text.pdf.ocg.OCGRemover它使用OCGParser同一包中的类。

/**
 * Class that knows how to remove OCG layers.
 */
public class OCGRemover
{
    /**
     * Removes layers from a PDF document
     * @param reader    a PdfReader containing a PDF document
     * @param layers    a sequence of names of OCG layers
     * @throws IOException
     */
    public void removeLayers(PdfReader reader, String... layers) throws IOException
    [...]
}

在将该方法应用于 a 之后,PdfReader您显然必须保存更改,例如通过 aPdfStamper.

于 2013-07-18T08:43:05.937 回答