Word转html动态修改图片dpi

1.覆盖了ImagingSavingCallback

public class HandleImageSaving implements IImageSavingCallback
{
    private HtmlSaveOptions saveOptions;
    public HandleImageSaving(HtmlSaveOptions saveOptions) {
        this.saveOptions = saveOptions;
    }
    @Override
    public void imageSaving(ImageSavingArgs args) throws Exception
    {
        // Change any images in the document being exported with the extension of “jpeg” to “jpg”.

        if(args.getCurrentShape().getShapeType() == ShapeType.OLE_OBJECT){
            saveOptions.setImageResolution(300);
        }else{
            saveOptions.setImageResolution(96);
        }
    }
}

代码如上,发现总是后面的生效,当前的图片不生效,不知道是为什么,如果是全局的300dpi,会造成分布图片大小过大,比较模糊,所以像一般的图片是96dpi,公式这种ole的这种设定300dpi,但是发现不能针对当前的Image生效.

HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.setExportHeadersFootersMode(0);
saveOptions.setImageSavingCallback(new HandleImageSaving(saveOptions));
saveOptions.setSaveFormat(SaveFormat.HTML);
//saveOptions.setOfficeMathOutputMode(HtmlOfficeMathOutputMode.MATH_ML);
doc.save(folder + “/images/” + fileName + “.html”,saveOptions);

@feihaodong

谢谢你的询问。 请在此处输入您的输入Word文档并进行测试。 我们将调查此问题,并为您提供更多信息。

word.zip (45.1 KB) 多谢,word文件见附件,辛苦看一下,公式的话如果动态设置300dpi,当前不生效,下一个图片反而生效了.

@feihaodong

谢谢你分享这份文件。 我们使用最新版本的Aspose.Words for Java 19.1测试了该场景,并注意到一个数学方程具有不正确的DPI。 请检查附图并确认您是否面临同样的问题。 然后,我们会在问题跟踪系统中记录此问题。

我们已将输出文档附在此帖子中供您参考。output.zip (17.7 KB)

你好,就是这个问题,我不知道是否能通够API能规避这个问题,能够在动态设定当前图片的DPI,现有的API可以满足否,目前我这种调用和这个结果是一样的,第一个图片模糊,当前设定的300dpi没有生效.

@feihaodong

感谢您分享细节。 我们在问题跟踪系统中将此问题记录为 WORDSNET-18050。 解决此问题后,您将通过此论坛主题通知您。

对由您带来的不便,我们深表歉意。