Word文件在指定位置插入图片

您好,我当前使用的Aspose-word版本是23.6,我想在文档首页的右上角插入条形码图片(图片已经生成),并且添加到Word文档中图片大小不进行缩放,保持原有大小,图片自动挤压文字到下一行,当前实现效果如下图所示,经过反复调整,都没有实现预期效果,请问该如何实现?

当前代码实现:

        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        builder.insertHtml(dto.getHtml());
        builder.insertImage(BarcodeUtil.generateBarCode(dto.getBarcode()),
                    RelativeHorizontalPosition.RIGHT_MARGIN, -200,
                    RelativeVerticalPosition.PAGE, 72, 200, 50, WrapType.TOP_BOTTOM);

想要的效果:

当前的效果:

@songyassen 有一个段落,您试图在该段中插入该图片。请尝试在第一步插入条形码,然后添加一个空段落并插入 HTML。类似这样

builder.insertImage(BarcodeUtil.generateBarCode(dto.getBarcode()),
                RelativeHorizontalPosition.RIGHT_MARGIN, -200,
                RelativeVerticalPosition.PAGE, 72, 200, 50, WrapType.TOP_BOTTOM);
builder.writeln();
builder.insertHtml(dto.getHtml());

您好,如果现在我的Word文件已经生成完了,我要在当前Word的基础上去添加这个图片(图片大小是不固定的),并且图片紧挨右上角的裁剪标记,效果如下图所示,我在使用builder.insertImage()方法时,这几个坐标相关的参数不知道该如何赋值,请问该如何填呢?

            LoadOptions opt = new LoadOptions();
            opt.getLanguagePreferences().setDefaultEditingLanguage(EditingLanguage.CHINESE_PRC);
            Document doc = new Document(inputStream, opt);
            DocumentBuilder builder = new DocumentBuilder(doc);
            // insertImage(InputStream stream, int horzPos, double left, int vertPos, double top, double width, double height, int wrapType)
            builder.insertImage();
            doc.save(outputStream, SaveFormat.PDF)

预期效果如下图所示:

@songyassen 您可以尝试使用

builder.moveTo(doc.getFirstSection().getBody().getFirstParagraph());
builder.insertImage("Barcode.png",
        RelativeHorizontalPosition.RIGHT_MARGIN, -200,
        RelativeVerticalPosition.PAGE, 72, 200, 50, WrapType.TOP_BOTTOM);

此外,如果上面的代码没有帮助,您可以尝试在第一段之前添加一个空段落:

Paragraph firstPara = doc.getFirstSection().getBody().getFirstParagraph();
if (!firstPara.getText().trim().equals("")) {
    Paragraph newParagraph = new Paragraph(doc);
    firstPara.getParentNode().insertBefore(newParagraph, firstPara);
}

builder.moveTo(doc.getFirstSection().getBody().getFirstParagraph());
builder.insertImage("Barcode.png",
        RelativeHorizontalPosition.RIGHT_MARGIN, -200,
        RelativeVerticalPosition.PAGE, 72, 200, 50, WrapType.TOP_BOTTOM);