Я хочу добавить несколько закладок на основе штрих-кода в формате PDF. Считывание штрих-кода хорошо. С этим проблем нет. Но, пытаясь добавить закладки, я провел небольшое исследование и нашел ответы ниже.
Добавьте закладку на определенную страницу с помощью iTextSharp 4.1.6
Добавьте закладки страницы всуществующий PDF с использованием iTextSharp с использованием кода C #
Эти коды довольно полезны. Но проблема в том, что эти коды - всего лишь одна закладка. Я не могу добавить несколько закладок в цикле. Вы можете найти соответствующий код, который я сделал для нескольких закладок ниже
Dictionary<string, object> bm = new Dictionary<string, object>();
List<Dictionary<string, object>> bookmarks = new List<Dictionary<string, object>>();
foreach (var barcode in barcodes)
{
string title = barcode.Text.Substring(11, barcode.Text.Length - 11);
bm.Add("Title", title);
bm.Add("Action", "GoTo");
bm.Add("Page", barcode.Page.ToString() + " XYZ 0 0 0");
}
PdfStamper stamp = new PdfStamper(source, output);
stamp.Outlines = bookmarks;
stamp.Close();
проблема здесь PdfStamper.Outline (stamp.Outlines) с использованием коллекции List<Dictionary<string, object>>
. Но ключевым значением словаря является «строка». Поэтому я не могу добавить закладки в список, потому что значение ключа не может повторяться. Возникает исключение: «System.ArgumentException:« Элемент с таким же ключом уже добавлен ».
Но я не могу найти никаких других документов для имплантации закладки в pdf с помощью itextsharp.
Я уверен, что этот код работает только для закладки. Вы можете найти пример ниже.
Dictionary<string, object> bm = new Dictionary<string, object>();
List<Dictionary<string, object>> bookmarks = new List<Dictionary<string, object>>();
//foreach (var barcode in barcodes)
//{
string title = barcodes[0].Text.Substring(11, barcodes[0].Text.Length - 11);
bm.Add("Title", title);
bm.Add("Action", "GoTo");
bm.Add("Page", barcodes[0].Page.ToString() + " XYZ 0 0 0");
//}
PdfStamper stamp = new PdfStamper(source, output);
stamp.Outlines = bookmarks;
stamp.Close();
Я думаю, что нет никакого способа с этим кодом для добавления нескольких закладок из-за природы штампа. Есть ли другой способ реализации нескольких закладок в PDF с помощью itextsharp или вы знаете, как исправить этот код?