PDFBox 3.2: Ошибка отсутствия ограничивающей рамки в PAC для тега изображения в PDF/UAJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PDFBox 3.2: Ошибка отсутствия ограничивающей рамки в PAC для тега изображения в PDF/UA

Сообщение Anonymous »

Я пытаюсь создать документ PDF/UA с помощью PDFBox 3.2 и воспользовался решением, предложенным @Tilman Hausherr в этой статье о переполнении стека. Мне удалось пометить как текстовые элементы, так и изображения, и изображение отображается правильно помеченным в PAC. Однако я по-прежнему получаю сообщение об ошибке в PAC, указывающее на отсутствие ограничивающей рамки изображения.
Вот что я пытался решить эту проблему:
Marked Content for Rectangle: I created marked content for the image’s rectangle and added it to the document. (No success, as the error persisted).
Adding COSName.BBOX to Figure Structure Element: I added a new item COSName.BBOX with a Rectangle(x, y, width, height) to the figure structure element. (Resulted in a corrupted PDF).
Adding COSName.BBOX to Figure Reference: I added a new item with COSName.BBOX in the figure reference, similar to step 2. (Also resulted in a corrupted PDF).

Несмотря на эти усилия, я по-прежнему ничего не вижу в структуре, представляющей ограничивающую рамку, когда пытаюсь преобразовать PDF в PDF/UA. Буду очень признателен за любые указания о том, чего мне не хватает для правильного определения ограничивающей рамки изображения в PDFBox 3.2! вот код для создания изображений и тегов:
COSDictionary markedContentDictionary3 = new COSDictionary();
markedContentDictionary3.setInt(COSName.MCID, mcidCounter + 2);
markedContentDictionary3.setString(COSName.ALT, "Alternate Image Description");

PDMarkedContentReference mcr3 = new PDMarkedContentReference();
mcr3.setMCID(mcidCounter + 2);

//COSDictionary markedContentDictionary4 = new COSDictionary();
//markedContentDictionary4.setInt(COSName.MCID, mcidCounter + 3);
//PDMarkedContentReference mcr4 = new PDMarkedContentReference();
//mcr4.setMCID(mcidCounter + 3);

contentStream.beginMarkedContent(COSName.IMAGE, PDPropertyList.create(markedContentDictionary3));
contentStream.drawImage(image, x, y, width, height);
contentStream.endMarkedContent();
// Schließen des Inhaltsstroms
contentStream.close();

PDStructureElement figureElement = new PDStructureElement(StandardStructureTypes.Figure, documentElement);
figureElement.setPage(page);
figureElement.setAlternateDescription("Dieses Bild zeigt: ");

figureElement.appendKid(mcr3);

documentElement.appendKid(figureElement);


Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-pdf-ua
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»