Free Support Forum - aspose.com

Aspose.Wordsfor JAVA hml转word的时候可以控制图片的大小吗?


#1

测试产品:Aspose.Words
开发语言:JAVA
测试问题:HTML转word的时候可以控制图片的大小吗?附件.zip (68.6 KB)
附件一为“输入HTML文件”,附件二为“目标输出word文档”

在html可以通过css样式控制图片大小显示,但是导入到word的中样式失效了。如图:QQ图片20181225145550.png (71.5 KB)
。所以在word里的图片希望设置一个最大宽度,请问怎么实现?


#2

@chenxf

图像作为Shape节点导入到Aspose.Words的DOM中。 您可以使用Shape.Width和Shape.Height属性更改图像的大小。

此外,请注意Aspose.Words模仿MS Word的行为。 如果您使用MS Word将HTML转换为DOCX,您将获得相同的输出。

如果您仍然遇到问题,请分享您的预期输出Word文档。 然后,我们将为您提供有关查询的更多信息。


#3

您好,非常感谢您的指导。

但是这个方法要遍历节点,效率不高。

请问还有其他方法吗?其实我本质问题不是去控制图片大小,而是在html通过css样式已经控制好了图片大小的显示,但是再导入到word的中图片大小样式就失效了。这个问题有解决的办法吗?

附件一为“输入HTML文件”附件一.zip (1.5 KB)
,附件二为“导入word文档格式失效示例”附件二.zip (67.5 KB)


#4

@chenxf

谢谢你的询问。 您能否分享问题详细信息及其面临的屏幕截图? 请同时分享您的预期输出Word文档。 谢谢你的合作。


#5

你好,我这边整理了一下你要的文档。

我希望图片在html中设置的最大宽度可以生效,输入文件和输出文件请参考以下:输入文件.zip (1.6 KB)
输出文件.zip (71.1 KB)


#6

@chenxf

感谢您分享细节。 您可以使用Shape.Width和Shape.Height属性来设置图像的宽度和高度。 在您的情况下,我们建议您设置左缩进和第一行缩进,如下所示。 希望这对你有所帮助。

Document doc = new Document(MyDir + "in.html");
for (Shape shape :(Iterable<Shape>) doc.getChildNodes(NodeType.SHAPE, true))
{
    if (shape.hasImage())
    {
        shape.getParentParagraph().getParagraphFormat().setFirstLineIndent(0);
        shape.getParentParagraph().getParagraphFormat().setLeftIndent(0);
    }
}
doc.save(MyDir + "19.1.docx");