Редактировать PDF закладки URL с помощью C # - PullRequest
0 голосов
/ 30 декабря 2011

У меня есть файл PDF, в котором есть закладки для разных глав (каждая глава связана с другим файлом PDF в отдельной папке с помощью закладок). щелкнув по каждому названию главы, вы откроете новый PDF-файл в том же родительском PDF-файле.

Мне нужно получить URL-адреса закладок родительского pdf-файла и изменить URL-адреса. Я использовал приведенный ниже код для получения свойств закладки (Action, File, Title и т. Д.), Однако мне не удалось изменить путь, поскольку он является ключом словаря. пара значений.

 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
                 }
             }

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Вы можете сделать это в два этапа.

  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 вы должны Имейте в виду, что некоторые из bmProperty (IDictionary из вашего кода выше) значений сами могут быть Dictionary<String, Object> объектами, если ваши закладки имеют вложенные уровни.

0 голосов
/ 30 декабря 2011

У меня нет особой уверенности в отношении itextsharp относительно ваших требований ... но есть еще одна библиотека PDFSharp, которая имеет некоторые хорошие функции закладок ...

PDFsharp закладки в тексте

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

С уважением.

...