我需要将图像添加到我的docx
文件中。该图像是签名的png
图像,该图像将放置在证书的签名行中的文本之后,以供用户以docx
,pdf
或{{1 }}。我遇到的第一个问题是,您只能使用最新版本的docx4j(v6.1.2)添加内嵌图像,并且当前禁用创建图像jpg
(请参见BinaryPartAbstractImage.java: line 1029)。这是一个问题,因为签名图像不是内联的,它应该出现在签名行名称的后面。我的解决方法是放置一个占位符图像,而不是自己插入一个图像:
这些图像分别映射为Anchor
和image1.png
在image2.png
未压缩版本的/word/media
目录上。然后,每次生成证书时,程序都会用签名的名称,位置和实际docx
替换这些签名。
问题是图像的缩放比例与占位符图像的缩放比例相同,实际上它应该看起来像这样:
在更换后如何保持图像的图像尺寸,或者至少保持宽高比?这是我将占位符图像替换为新图像的方法:
png
这是替换发生的实际方法:
File approveBySignatureImage = new File(...);
final String approvedByImageNodeId = "rId5";
replaceImageById(approvedByImageNodeId,
"image1.png", approveBySignatureImage);
答案 0 :(得分:0)
您需要在占位符图像上设置尺寸(或者可能只是删除现有的尺寸?)。
在此方面的帮助:-
docx4j使用org.apache.xmlgraphics ImageInfo检查图像以在https://github.com/plutext/docx4j/blob/master/src/main/java/org/docx4j/openpackaging/parts/WordprocessingML/BinaryPartAbstractImage.java#L512上工作。