2011-12-30 6 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

두 단계로 수행 할 수 있습니다.

  1. 위의 코드 조각과 같은 상위 PDF에서 책갈피를 가져옵니다. IList을 반복하고 필요한 변경을하십시오.
  2. PdfReader으로 부모 PDF를 다시 엽니 다. 그런 다음 1 단계에서 업데이트 된 것과 기존 책갈피를 덮어 : 단계에서 1 당신이 고려해야한다는
    PdfReader reader = new PdfReader(PARENT-PDF-FILE); 
    using (PdfStamper stamper = new PdfStamper(reader, YOUR-STREAM)) { 
        stamper.Outlines = bmProperties; 
    } 
    

코드에서 bmProperty ( IDictionary의 일부가 북마크에 중첩 된 레벨이있는 ​​경우 그 자체가 Dictionary<String, Object> 일 수 있습니다.