Измените макет изображения или оберните его в DOCX с помощью Apache POI.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Измените макет изображения или оберните его в DOCX с помощью Apache POI.

Сообщение Anonymous »

Я вставляю изображение в docx программно. Но в результате раскладка меня не устраивает. Столкнулся с отсутствием документации.
Нужно изменить обёртку изображения (макет). Например, сейчас у меня есть это:

Изображение


Но хочу вот этого:

Изображение


UPD1: Что я делаю: перебираю абзацы , затем просматриваем прогоны и находим определенный прогон со специальной закладкой. В этот прогон добавляю картинку:

XWPFPicture pic = run.addPicture(
new ByteArrayInputStream(picSource),
Document.PICTURE_TYPE_PNG,
"pic",
Units.toEMU(100),
Units.toEMU(30));


UPD2: Исследовал кое-что интересное внутри этого класса:

org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor


метод setWrapTight(CTWrapTight var1). Может быть, так оно и есть. До сих пор не знаю, как применить это к своему коду.

UPD3: Наконец-то я пришёл к этому (currentRun — запустить с нашей картинкой ):

CTWrapTight ctWrapTight = currentRun.getCTR().getDrawingList().get(0).addNewAnchor().addNewWrapTight();
CTWrapPath ctWrapPath = ctWrapTight.addNewWrapPolygon();

CTPoint2D ctStart = ctWrapPath.addNewStart();
ctStart.setX(0L);
ctStart.setY(0L);

CTPoint2D ctLineTo1 = ctWrapPath.addNewLineTo();
CTPoint2D ctLineTo2 = ctWrapPath.addNewLineTo();
CTPoint2D ctLineTo3 = ctWrapPath.addNewLineTo();

ctLineTo1.setX(21384L);
ctLineTo1.setY(20520L);

ctLineTo2.setX(21384L);
ctLineTo2.setY(0L);

ctLineTo3.setX(0L);
ctLineTo3.setY(0L);

ctWrapTight.setWrapText(STWrapText.BOTH_SIDES);


Но документ разбивается, когда я пытаюсь его открыть:


Мы извини. Мы не можем открыть документ, так как обнаружили проблему
с его содержимым.


Зависимости:

org.apache.poi
poi-ooxml
3.17


org.apache.poi
poi-ooxml-schemas
3.17


org.apache.poi
ooxml-schemas
1.3



Подробнее здесь: https://stackoverflow.com/questions/476 ... apache-poi
Ответить

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

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

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

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

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