您好,我当前使用的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);