使用c#编辑pdf书签url

本文关键字:书签 url pdf 编辑 使用 | 更新日期: 2023-09-27 18:19:00

我有一个pdf文件,其中有不同章节的书签(每个章节使用书签链接到另一个pdf文件中的单独文件夹)。点击每个章节名称将在同一个父PDF文件中打开一个新的PDF。

我需要检索父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
                 }
             }

使用c#编辑pdf书签url

可以分两步完成。

    从父PDF中获取书签,就像上面的代码片段一样。迭代IList并进行任何必要的更改。
  1. PdfReader再次打开父PDF。然后用第1步更新的内容覆盖现有书签:
PdfReader reader = new PdfReader(PARENT-PDF-FILE);
using (PdfStamper stamper = new PdfStamper(reader, YOUR-STREAM)) {
  stamper.Outlines = bmProperties;
}

注意,在步骤1必须考虑到一些bmProperty (IDictionary从你上面的代码)本身可能是Dictionary<String, Object>对象,如果你的书签有嵌套的水平

我对你的要求不太有信心。但是有另一个库PDFSharp有一些很好的书签功能…

pdf格式的书签

http://www.pdfsharp.net/wiki/Bookmarks-sample.ashx

问候。