Вы утверждаете, что " 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 на ваш выбор.