PDFドキュメントを開いてブックマークを追加したいと思います。ブックマークのタイトルとそれに関連付けられているページ番号があります(ブックマークをクリックすると、ドキュメント内の指定されたページに移動します)。
指定したページに移動するときは、現在のズームレベルを変更しないでください。
VB.Netの例は素晴らしいでしょうが、C#も歓迎します。
私はiTextSharp5.3を使用しています。
PDFドキュメントを開いてブックマークを追加したいと思います。ブックマークのタイトルとそれに関連付けられているページ番号があります(ブックマークをクリックすると、ドキュメント内の指定されたページに移動します)。
指定したページに移動するときは、現在のズームレベルを変更しないでください。
VB.Netの例は素晴らしいでしょうが、C#も歓迎します。
私はiTextSharp5.3を使用しています。
Javaリソースとして、私はあなたが望む正確なコードではあまり役に立ちませんが、一般的なアルゴリズムは同じように機能します。子供がいない単一のブックマークの場合(iTextは子供という用語を使用します。iTextSharpで見つけることができると思います)は次のとおりです。
private static List<HashMap<String, Object>> manipulatePdfBookMarkUtil(SortedMap<Integer, String> pgTtl, Rectangle rct) {
List<HashMap<String, Object>> mpBkMrkLst = null;
int itrCnt = 0;
if (pgTtl != null && !pgTtl.isEmpty()) {
mpBkMrkLst = new ArrayList<HashMap<String, Object>>();
for (Map.Entry<Integer, String> itrTtlPg : pgTtl.entrySet()) {
HashMap<String, Object> retMap = new HashMap<String, Object>();
retMap.put("Title", itrTtlPg.getValue());
retMap.put("Action", "GoTo");
retMap.put("Page", itrTtlPg.getKey() + " FitH " + rct.getTop());
mpBkMrkLst.add(itrCnt, retMap);
itrCnt++;
}
}
return mpBkMrkLst;
}
リスト>オブジェクト->リスト>など。私はiText(2.1.4)を使用していました。ページ番号のソートされたマップをkey(itrTtlPg.getKey())として使用し、ブックマークのタイトルをvalue(itrTtlPg.getValue())として使用しました。タイトル->必要なブックマークタイトルです。アクション->単に実行したいアクションです(値「GoTo」が意味するように)。"Page"、pageNum + "FitH" + position;つまり、指定された文字列(タイトル)のブックマークをクリックすると、pageNumで指定されたページが配置され、指定した位置に領域全体が水平にフィットします(ここで長方形オブジェクトはページサイズです)。 、つまりtopは、上部に水平に収まるという意味です。FitVもそこにあり、ページ全体をウィンドウサイズで表示できるように垂直に収まります。ズームレベルを維持するために言及したもう1つのことは、FitHを使用する必要があります。