docx4j как вставить изображение в ячейку таблицы - PullRequest
0 голосов
/ 20 сентября 2018

Я не могу вставить изображение в ячейку таблицы, используя docx4j, используя следующий код:

WordprocessingMLPackage wordPackage = WordprocessingMLPackage.createPackage(PageSizePaper.A4,true);
ObjectFactory factory=Context.getWmlObjectFactory();Tbl table = factory.createTbl();
Tr tableRow = factory.createTr();    
byte[] imageBytes = Base64.getDecoder().decode(t.getBase64Image());
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordPackage, imageBytes);
Inline inline = imagePart.createImageInline("image", "image", 0, 1, false);

P celPar = addInlineImageToParagraph(inline, factory);

Tc tableCell = factory.createTc();
tableCell.getContent().clear();
tableCell.getContent().add(celPar);
tableRow.getContent().add(tableCell); 
wordPackage.getMainDocumentPart().addObject(table);


private P addInlineImageToParagraph(Inline inline, ObjectFactory factory) {
    P paragraph = factory.createP();
    R run = factory.createR();
    paragraph.getContent().add(run);
    Drawing drawing = factory.createDrawing();
    run.getContent().add(drawing);
    drawing.getAnchorOrInline().add(inline);
    return paragraph;
}

В Word проблема с отображением изображения.Я действительно не знаю, где проблема

1 Ответ

0 голосов
/ 20 сентября 2018

Если вы посмотрите на документ, полученный из вашего кода, вы увидите:

<w:tbl></w:tbl>

Вы просто пропали без вести

table.getContent().add(tableRow);

РЕДАКТИРОВАТЬ 24 сентября

Вы до сих пор не сказали, что пытаетесь добавить свое изображение в нижний колонтитул!

Для этого вам нужно указать эту часть, чтобы rel прикреплялся к нижнему колонтитулу.Поэтому используйте https://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java#L247 или https://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java#L339 и т. Д., Т. Е. Одну из подписей, которая содержит Part sourcePart

...