2

PDFドキュメントを開いてブックマークを追加したいと思います。ブックマークのタイトルとそれに関連付けられているページ番号があります(ブックマークをクリックすると、ドキュメント内の指定されたページに移動します)。

指定したページに移動するときは、現在のズームレベルを変更しないでください。

VB.Netの例は素晴らしいでしょうが、C#も歓迎します。

私はiTextSharp5.3を使用しています。

4

1 に答える 1

1

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を使用する必要があります。

于 2013-01-25T22:03:45.443 に答える