H すべて、
PDFにテキストレイヤーを追加するためにITextを使用しています。PDF上の既存のレイヤーを編集したいのですが、レイヤーもITextのみで作成されます。IText にはサポートするメソッドがないようです。
別の方法として、既存のレイヤーを削除し、その場所に新しいレイヤーを配置することを考えました。remove も 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.