Программисты JAVA общаются здесь
Anonymous
DOCX4J Якорь Указанное местоположение изображения не вступает в силу?
Сообщение
Anonymous » 25 сен 2025, 07:16
Код: Выделить всё
17
org.docx4j
docx4j-JAXB-ReferenceImpl
11.4.11
< /code>
import org.docx4j.dml.CTPoint2D;
import org.docx4j.dml.wordprocessingDrawing.Anchor;
import org.docx4j.dml.wordprocessingDrawing.Inline;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.docx4j.wml.*;
public void addSealWithAnchor(String inputDocx, String outputDocx, String imagePath) throws Exception {
File imageFile = new File(imagePath);
if (!imageFile.exists()) {
throw new FileNotFoundException("error: " + imagePath);
}
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(inputDocx));
MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart();
ObjectFactory factory = new ObjectFactory();
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, imageFile);
long cx = 5 * 360000;
long cy = 5 * 360000;
Inline inline = imagePart.createImageInline("seal", "supplier seal", 1, 2, cx, cy, false);
Anchor anchor = new Anchor();
anchor.setRelativeHeight(0);
anchor.setBehindDoc(false);
anchor.setLocked(false);
anchor.setLayoutInCell(true);
anchor.setAllowOverlap(true);
CTPoint2D position = new CTPoint2D();
position.setX(9500000L);
position.setY(2800000L);
anchor.setSimplePos(position);
anchor.setExtent(inline.getExtent());
anchor.setDocPr(inline.getDocPr());
anchor.setGraphic(inline.getGraphic());
Drawing drawing = factory.createDrawing();
drawing.getAnchorOrInline().add(anchor);
R run = factory.createR();
run.getContent().add(drawing);
P paragraph = factory.createP();
paragraph.getContent().add(run);
documentPart.addObject(paragraph);
wordMLPackage.save(new File(outputDocx));
System.out.println("success: " + outputDocx);
}
< /code>
It seams position.setX(9500000L); не работает,
Указанное местоположение изображения не может настроить,
Мне нужно вставить изображение в указанное место в файле docx, чтобы сделать его похожим на электронный штамп. Не могу найти закладку.>
Подробнее здесь:
https://stackoverflow.com/questions/797 ... ake-effect
1758773812
Anonymous
[code] 17 org.docx4j docx4j-JAXB-ReferenceImpl 11.4.11 < /code> import org.docx4j.dml.CTPoint2D; import org.docx4j.dml.wordprocessingDrawing.Anchor; import org.docx4j.dml.wordprocessingDrawing.Inline; import org.docx4j.openpackaging.packages.WordprocessingMLPackage; import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage; import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart; import org.docx4j.wml.*; public void addSealWithAnchor(String inputDocx, String outputDocx, String imagePath) throws Exception { File imageFile = new File(imagePath); if (!imageFile.exists()) { throw new FileNotFoundException("error: " + imagePath); } WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File(inputDocx)); MainDocumentPart documentPart = wordMLPackage.getMainDocumentPart(); ObjectFactory factory = new ObjectFactory(); BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, imageFile); long cx = 5 * 360000; long cy = 5 * 360000; Inline inline = imagePart.createImageInline("seal", "supplier seal", 1, 2, cx, cy, false); Anchor anchor = new Anchor(); anchor.setRelativeHeight(0); anchor.setBehindDoc(false); anchor.setLocked(false); anchor.setLayoutInCell(true); anchor.setAllowOverlap(true); CTPoint2D position = new CTPoint2D(); position.setX(9500000L); position.setY(2800000L); anchor.setSimplePos(position); anchor.setExtent(inline.getExtent()); anchor.setDocPr(inline.getDocPr()); anchor.setGraphic(inline.getGraphic()); Drawing drawing = factory.createDrawing(); drawing.getAnchorOrInline().add(anchor); R run = factory.createR(); run.getContent().add(drawing); P paragraph = factory.createP(); paragraph.getContent().add(run); documentPart.addObject(paragraph); wordMLPackage.save(new File(outputDocx)); System.out.println("success: " + outputDocx); } < /code> It seams position.setX(9500000L);[/code] не работает, [code]documentPart.addObject(paragraph);[/code] Указанное местоположение изображения не может настроить, Мне нужно вставить изображение в указанное место в файле docx, чтобы сделать его похожим на электронный штамп. Не могу найти закладку.> Подробнее здесь: [url]https://stackoverflow.com/questions/79774357/docx4j-anchor-specified-image-location-does-not-take-effect[/url]