H All,
我正在使用 IText 在 PDF 上添加文本图层。
现在我想编辑PDF上的现有图层,图层也是仅由IText创建的。看来 IText 没有这样的方法支持。
我想到的另一种方法是删除现有图层并在其位置上放置新图层。看来 IText 也不支持删除。有办法做到这些吗?
提前致谢。
正如评论中所表明的那样,所讨论的图层实际上是 iText 所称的图层,但实际上在 PDF 行话中被称为可选内容组。
iText Xtra 包中确实有一个用于删除此类层的实用程序类(不是 extrajar,而是 itext-xtra.jar):com.itextpdf.text.pdf.ocg.OCGRemover https://github.com/itext/itextpdf/blob/develop/xtra/src/main/java/com/itextpdf/text/pdf/ocg/OCGRemover.java它利用了该类OCGParser https://github.com/itext/itextpdf/blob/develop/xtra/src/main/java/com/itextpdf/text/pdf/ocg/OCGParser.java在同一个包中。
/**
* 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.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)