Как получить существующую аннотацию штампа в PDF javascript?

#javascript #pdf #annotations #itext

#javascript #PDF #аннотации #itext

Вопрос:

Я использовал iTextSharp для успешного добавления аннотации штампа в файл PDF:

                 PdfReader reader1 = new PdfReader(new FileStream("f:\1.pdf", FileMode.Open));
                Stream ff = new FileStream(TestTmpFile, FileMode.Create);

                PdfStamper stamper = new PdfStamper(reader1, ff);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance("f:\1.png");
                float w = img.Width;
                float h = img.Height;
                iTextSharp.text.Rectangle location = new iTextSharp.text.Rectangle(36, 770 - h, 36   w, 770);
                PdfAnnotation stamp = PdfAnnotation.CreateStamp(stamper.Writer, location, "stampname", "stampname");
                img.SetAbsolutePosition(0, 0);
                PdfContentByte cbb = stamper.GetOverContent(1);
                PdfAppearance app = cbb.CreateAppearance(w, h);
                app.AddImage(img);
                stamp.Name = "stampname";
                
                stamp.SetAppearance(PdfName.N, app);

                stamp.Flags=PdfAnnotation.FLAGS_PRINT;
                stamper.AddAnnotation(stamp, 1);
                stamper.Close();
                reader1.Close();
  

Я установил имя аннотации как «stampname«, но я не могу получить эту аннотацию штампа в PDF javascript с помощью this.getAnnot(). Код javasript в PDF:

 var anno=this.getAnnot(0,"stampname");
  

Я вызвал неправильный метод? Или эта проблема связана с iTextSharp?

==== РЕДАКТИРОВАТЬ: я загрузил образец файла PDF, он содержит аннотацию штампа, которая представляет собой изображение png. Запись javascript находится по адресу «9124 0 obj».

https://www.hihisoft.com/sample.pdf

Комментарии:

1. Для атрибута NM имени аннотации правильно установлено значение «stampname» — смотрите здесь: i.stack.imgur.com/yKjv8.png — так что же все-таки getAnnot искать?

2. Как уже было сказано, перекрестные ссылки и трейлер PDF-файла повреждены: в вашем PDF-файле есть объекты с номерами объектов 9122, 9123 и 9124, но перекрестные ссылки относятся только к объектам 0 … 318, а в трейлере указано, что размер равен 319. Это не ошибка, типичная для iText, она больше похожа на то, что кто-то скопировал и вставил аннотацию в ваш PDF-файл с соблюдением требований PDF.

3. Спасибо, mkl, могу я узнать, какой инструмент вы использовали? Это кажется очень полезным.

4. Снимок экрана в моем первом комментарии был сделан из iText RUP. Замечания в моем втором комментарии я сделал с помощью обычного средства просмотра текста (встроенного в Total Commander).