2011-12-30 24 views
-1

私は別の章にブックマークを持つPDFファイルを持っています(各章はブックマークを使用して別のPDFファイルにリンクしています)。各chapternameをクリックすると、同じ親pdfファイルに新しいpdfが開きます。C#を使用してPDFブックマークのURLを編集する

親PDFファイルのブックマークURLを取得し、URLを変更する必要があります。ブックマークプロパティ(アクション、ファイル、タイトルなど)を取得するために以下のコードを使用しましたが、辞書のとおりにパスを変更できませんでしたキー値のペア。

IList<Dictionary<String, Object>> bmProperties= SimpleBookmark.GetBookmark(new PdfReader(new RandomAccessFileOrArray("http://XXXX/Shared%20Documents/Chapters.pdf"), 
null)); 

     foreach (IDictionary<String, Object> bmProperty in bmProperties) 
     { 

      foreach (var fileProperty in bmProperty.Keys) 
      { 
       if (fileProperty == "File") 
       { 
        // need the edit the value of Key-"File". Will it be possible to alter the value using pdfwriter 
       } 
      } 
+0

どのPDF操作ライブラリをお使いですか? –

+0

itextsharpを使用しています –

+0

あなたのタグを反映するように更新しました。あなたの質問に関連するすべてのタグを含めることを忘れないでください。 –

答えて

0

これは2つのステップで実行できます。

  1. 上記のコードスニペットのように親PDFからブックマークを取得します。 IListを繰り返し、必要な変更を加えてください。
  2. もう一度親PDFをPdfReaderで開きます。その後、手順1で更新するもので、既存のブックマークを上書き:
PdfReader reader = new PdfReader(PARENT-PDF-FILE); 
using (PdfStamper stamper = new PdfStamper(reader, YOUR-STREAM)) { 
    stamper.Outlines = bmProperties; 
} 

注意をステップ1であなたアカウントにあなたのコードからbmPropertyIDictionaryのいくつかを取る必要があることを上記)の値は、ブックマークにネストされたレベルがある場合は、それ自体がDictionary<String, Object>オブジェクトになる可能性があります。

関連する問題