java - iText 编辑或删除 PDF 上的图层

标签 java pdf itext layer ocg

H 所有,

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

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

提前致谢。

最佳答案

正如评论中所说,所讨论的图层确实是 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.

关于java - iText 编辑或删除 PDF 上的图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17687663/

相关文章:

php - 使用 TCPDF PHP 库横向显示的图像

php - 我如何在 html 中显示 pdf(响应/跨浏览器解决方案)

java - 如何将带有链接注释的覆盖文本添加到现有 pdf?

c# - 对 AcroFields (iTextSharp) 的访问速度缓慢

java - Binance API Java - 止损限价单?

java - TabLayout 上的标签标题未显示

r - 将 R 中 type=n 的绘图复制到 PDF 不会复制绘图点,仅在输出 pdf 中显示其线条

java - 向内部 PDF 文件添加超链接

java - 相当于 MongoCursor 快照的 MongoDB Java 驱动程序

java - 使用 java netbeans 程序打开各种文件