使用的是 aspose-words Java 24.2 文档图片解析出来变模糊了,麻烦看看是什么情况?
图片模糊.zip (248.2 KB)
@SalesDhorde
输出.zip (154.4 KB)
对我来说,使用您之前证明的代码,html 和 docx 的图像大小是一样的。但我认为,对于分辨率较低的图标,最好不要使用 “setImageResolution”,以避免质量下降。
有没有方法能判断出哪些图片是光栅图像?
@SalesDhorde 也许有一种更灵活的方法能让你如愿以偿。请将以下代码与您的文件进行核对:
public void Test throws Exception {
Document document = new Document("输入.docx");
HtmlSaveOptions htmlSaveOptions = new HtmlSaveOptions();
// 设置图像的正确路径。
htmlSaveOptions.setImagesFolder(getArtifactsDir());
htmlSaveOptions.setPrettyFormat(true);
htmlSaveOptions.setExportTocPageNumbers(true);
htmlSaveOptions.setExportRoundtripInformation(false);
OriginalImages imageSavingCallback = new OriginalImages();
htmlSaveOptions.setImageSavingCallback(imageSavingCallback);
document.save(getArtifactsDir() + "输出.html", htmlSaveOptions);
for (Map.Entry<String, String> item : imageSavingCallback.ImageFiles.entrySet())
{
// 设置图像的正确路径。
Path savedImagePath = Paths.get(getArtifactsDir() + item.getKey());
Path originalImagePath = Paths.get(item.getValue());
Files.delete(savedImagePath);
Files.move(originalImagePath, savedImagePath);
}
}
public static class OriginalImages implements IImageSavingCallback
{
public Map<String, String> ImageFiles = new HashMap<>();
public void imageSaving(ImageSavingArgs args) throws Exception {
if (args.getCurrentShape().isImage())
{
String originalImageFile = String.format("%s.original", args.getImageFileName());
Shape shape = (Shape)args.getCurrentShape();
ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.PNG);
saveOptions.setResolution(150);
shape.getShapeRenderer().save(originalImageFile, saveOptions);
ImageFiles.put(args.getImageFileName(), originalImageFile);
}
}
}
您可以使用 “ImageType”(图像类型)查看图像的类型。