使用docx4j替换旧图像时保持新图像的尺寸

时间:2019-04-12 07:15:34

标签: java image docx4j

我需要将图像添加到我的docx文件中。该图像是签名的png图像,该图像将放置在证书的签名行中的文本之后,以供用户以docxpdf或{{1 }}。我遇到的第一个问题是,您只能使用最新版本的docx4j(v6.1.2)添加内嵌图像,并且当前禁用创建图像jpg(请参见BinaryPartAbstractImage.java: line 1029)。这是一个问题,因为签名图像不是内联的,它应该出现在签名行名称的后面。我的解决方法是放置一个占位符图像,而不是自己插入一个图像:

enter image description here

这些图像分别映射为Anchorimage1.pngimage2.png未压缩版本的/word/media目录上。然后,每次生成证书时,程序都会用签名的名称,位置和实际docx替换这些签名。

enter image description here

问题是图像的缩放比例与占位符图像的缩放比例相同,实际上它应该看起来像这样:

enter image description here

在更换后如何保持图像的图像尺寸,或者至少保持宽高比?这是我将占位符图像替换为新图像的方法:

png

这是替换发生的实际方法:

File approveBySignatureImage = new File(...);
final String approvedByImageNodeId = "rId5";

replaceImageById(approvedByImageNodeId,
    "image1.png", approveBySignatureImage);

1 个答案:

答案 0 :(得分:0)