2017-09-20 13 views
0

私はそれが簡単に聞こえるかもしれないと知っています...しかし、ブックマークを追加するコードを探しています。ブックマークをクリックすると、PDFにあるテキストコンテンツに移動する必要があります。PDF IText 5のテキストをブックマークするには?

は、私はGO TO XYZをブックマークしているし、PDFに私はここでdoc.add(新しいフレーズ( "私を指していなければなりません"))

を追加したとしましょう私のコードは、私が見つけた

PdfOutline root = writer.getRootOutline(); 
PdfOutline gotoXyz= new PdfOutline(root, 
        new PdfDestination(PdfDestination.FITH, writer.getVerticalPosition(true)), "GO TO XYZ", true); 

ですiTextの7で、我々はページ番号でExplicitDestinationを与える...どちらも私は

は、この上で私を助けてください... Itext7を使用していないか、私はブックマークを使用してPDFの内容をテキストにポイントする必要があるページ番号を使用することができます。..

答えて

0

PART 1

あなたが持っている:

doc.add(new Phrase("Should Point Me")); 

はでこれを置き換えます

Paragraph p = new Paragraph("This is the "); 
Chunk chunk = new Chunk("destination"); 
chunk.setLocalDestination("XYZ"); 
p.add(chunk); 
doc.add(p); 

あなたは今名前XYZを持つローカルの宛先を作成しています。これは、HTML内に<a name="XYZ">があることに似ています。あなたは今<a href="#XYZ">ようなものが必要

PART 2

。それは、アクションのようになります。

PdfAction action = PdfAction.gotoLocalPage("XYZ", false); 

あなたはこのようなあなたのコンテンツからこのアクションを使用することができます。

Paragraph p = new Paragraph("Go to "); 
Chunk destination = new Chunk("destination"); 
destination.setAction(PdfAction.gotoLocalPage("XYZ", false)); 
p.add(destination); 
document.add(p); 

ます。またPdfOutlineのコンテキストでこのアクションを使用することができます。

あなたが持っている:

PdfOutline root = writer.getRootOutline(); 
PdfOutline gotoXyz= new PdfOutline(root, 
    new PdfDestination(PdfDestination.FITH, writer.getVerticalPosition(true)), "GO TO XYZ", true); 

そして、それはおよそ働くかもしれないが、これも動作するはずですが:

PdfOutline root = writer.getRootOutline(); 
PdfOutline gotoXyz= new PdfOutline(root, 
    new PdfDestination("XYZ"), "GO TO XYZ"); 

あなたはおそらく、この使用することができます=

PdfOutline root = writer.getRootOutline(); 
PdfOutline gotoXyz= new PdfOutline(root, 
    PdfAction.gotoLocalPage("XYZ", false), "GO TO XYZ"); 
+0

'段落pを新しいフレーズ( "This is the"); - これは間違っています。 – mkl

+0

はい、*間違っています。私は答えを更新します。 –

関連する問題