IText在PDF上编辑或删除图层

时间:2013-07-16 21:51:47

标签: java pdf itext layer ocg

全部,

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

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

谢谢你。

1 个答案:

答案 0 :(得分: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
    [...]
}

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