Лучшая бесплатная альтернатива Acrobat SDK для работы с PDF-документами в c # .net - PullRequest
2 голосов
/ 29 декабря 2011

Мне нужно добавить закладки в документ pdf без использования Acrobat SDK (для этого требуется полная версия Acrobat professional).Я использую iTextSharp, но он был сделан для Java, и перенос на .net не завершен.Знаете ли вы бесплатную альтернативу или документацию для этого?

1 Ответ

2 голосов
/ 29 декабря 2011

Вы утверждаете, что " iTextSharp, но был создан для Java, и перенос на .net не завершен " совершенно ошибочно .Основными отличиями являются перечисленные здесь .

Добавить закладки с помощью iTextsharp очень просто.См. API для PdfOutline и PdfDestination .Вот простой пример, с которого можно начать:

using (Document document = new Document()) {
  PdfWriter writer = PdfWriter.GetInstance(
    document, Response.OutputStream
  );
  document.Open();
  PdfOutline root = writer.RootOutline;
  string section = "Section {0}";
  string paragraph = "Paragraph {0}";
  for (int i = 0; i < 10;) {
    PdfOutline sectionBookmark = new PdfOutline(
      root, 
      new PdfDestination(
        PdfDestination.FITH, writer.GetVerticalPosition(true)
      ),
      string.Format(section, ++i)
    );
    document.Add(new Paragraph(string.Format(section, i)));
    for (int j = 0; j < 4;) {
      PdfOutline subSectionBookmark = new PdfOutline(
        sectionBookmark,
        new PdfDestination(
          PdfDestination.FITH, writer.GetVerticalPosition(true)
        ),
        string.Format(paragraph, ++j)
      );
      document.Add(new Paragraph(string.Format(paragraph, j)));
    }
    document.NewPage();
  }
}

Приведенный выше пример протестирован в веб-среде с 5.1.3.Если ваша среда разработки отличается, замените Response.OutputStream выше на Stream на ваш выбор.

...