5

H すべて、

PDFにテキストレイヤーを追加するためにITextを使用しています。PDF上の既存のレイヤーを編集したいのですが、レイヤーもITextのみで作成されます。IText にはサポートするメソッドがないようです。

別の方法として、既存のレイヤーを削除し、その場所に新しいレイヤーを配置することを考えました。remove も 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
    [...]
}

そのメソッドを に適用した後、PdfReader明らかに変更を保存する必要があります。PdfStamper.

于 2013-07-18T08:43:05.937 に答える