Повторяющееся содержимое изображения для DOCX4J - PullRequest
0 голосов
/ 25 мая 2020

BinaryPartAbstractImage.createImagePart не обрабатывает повторяющиеся изображения, что делает WORD / PPT / EXCEL очень тяжелым по размеру.

Сценарий БЕЗ DOCX4J : 1) Если одно изображение размещается на двух разных страницах (стр. 1 и стр. 2), вы можете видеть только одно изображение в папке xl / media. 2) Изображения называются image1, image2, image3 и т. Д. 3) В xl / drawing / _rels / drawing. xml значение TARGET, соответствующее значению Relationship, имеет имя изображения, например image1 или image2 и т. Д.

Scenarion WITH DOCX4J : 1) Если один изображение размещается на 2 разных страницах, вы видите ДВА одинаковых изображения в папке xl / media. 2) Одинаковые изображения называются drawing1_image_rId1 и drawing2_image_rId1. 3) В xl / drawing / _rels / drawing. xml Значение TARGET, соответствующее идентификатору отношения, имеет имя изображения, такое как drawing1_image_rId1 или drawing1_image_rId1 и т. Д.

ДЛЯ ТОЧКИ 1: не определяется, присутствует ли уже изображение в папке xl / media. Таким образом, он создает одни и те же изображения несколько раз. Для файлов с более чем 100 страницами и одинаковым изображением (например: LO GO компании), присутствующим в каждом файле, он создает 100 одинаковых изображений в папке xl / media, что делает его очень большим по размеру.

ДЛЯ ТОЧКИ 2 : BinaryPartAbstractImage.createImagePart (OpcPackage opcPackage, Part sourcePart, byte [] bytes) -> createImageName (OpcPackage opcPackage, Base sourcePart, StringhibitedRelId, String ext) -> generateUniqueName (Base sourcePart, String Предложенный каталог_RelId, String ext)

В методе generateUniqueName переименование выполняется для файлов изображений. Добавляет имя чертежа, relID, подчеркивания. Это вызывает проблему.

ДЛЯ ТОЧКИ 3: Если обрабатываются ТОЧКА 1 и ТОЧКА 2, эта точка будет обработана автоматически.

Возможно ли для вас обработать этот сценарий ios?

...