解决WORD输出Html图片Jpg变模糊的问题

最近用WORD输出HTML时碰到个小问题,就是输出的图片会变得有点模糊。比如这个文档页面:

解决WORD输出Html图片Jpg变模糊的问题_第1张图片

将它另存为筛选过的HTML:

解决WORD输出Html图片Jpg变模糊的问题_第2张图片

警告直接忽略:

然后用浏览器打开,会发现两个图的质量都有下降,有变模糊的感觉(区别不明显,但确实有区别):

解决WORD输出Html图片Jpg变模糊的问题_第3张图片

右键在新标签页打开图片,会发现用的是JPG格式:

解决WORD输出Html图片Jpg变模糊的问题_第4张图片

打开文件目录看看,确实全是JPG:

解决WORD输出Html图片Jpg变模糊的问题_第5张图片

JPG是有损压缩,自然质量会下降了。

不过WORD其实是有PNG格式的,如果另存时,不选择“筛选过的网页”,而是直接选择“网页”:

解决WORD输出Html图片Jpg变模糊的问题_第6张图片

出来的结果——,不好意思,也是糊的:

解决WORD输出Html图片Jpg变模糊的问题_第7张图片

还是用了JPG,但我打开文件夹发现,它其实把PNG也存了:

解决WORD输出Html图片Jpg变模糊的问题_第8张图片

虽然存了PNG,但它就是不用,为什么呢?

研究了半天,后来发现,其实WORD在输出HTML里,有个使用PNG的选项,在那个WEB选项里:

解决WORD输出Html图片Jpg变模糊的问题_第9张图片

 

解决WORD输出Html图片Jpg变模糊的问题_第10张图片

就是那个“允许将PNG作为图形格式”了,默认是没勾上的,我们勾上试试:

解决WORD输出Html图片Jpg变模糊的问题_第11张图片

勾上后上面的IE4会变成IE6,估计是IE4不支持PNG吧,无所谓,反正现在也没有人用IE4了。

保存打开一看,第一个图是变成PNG了,但第二个图还是JPG:

解决WORD输出Html图片Jpg变模糊的问题_第12张图片

解决WORD输出Html图片Jpg变模糊的问题_第13张图片

这又是为什么呢?经过一番试验,原来,只有百分百大小显示的原图才会以PNG输出。这个难不倒我,写段脚本把全部图重置一次就好了。于是录了个宏,发现重置是reset方法,上网查了下相关遍历shape的脚本,然后开干。

在WORD中打开文档,按Alt+F11进入VB界面,右键插入用户窗体:

解决WORD输出Html图片Jpg变模糊的问题_第14张图片

放一个大按钮上去:

解决WORD输出Html图片Jpg变模糊的问题_第15张图片

双击按钮,输入以下脚本(我的图片是嵌入型的,所以我只遍历InlineShapes):

Private Sub CommandButton1_Click()

    For Each iShape In ActiveDocument.InlineShapes
        iShape.Reset
    Next iShape

End Sub

解决WORD输出Html图片Jpg变模糊的问题_第16张图片

运行看看效果:

解决WORD输出Html图片Jpg变模糊的问题_第17张图片

很奇怪,图片大小确实有变化,但并没有如我想像的复位,而是变成了另一种拉伸状态。多点几次,它还会继续变,反正,就是不复位。

继续折腾,经过一番试验,我发现,只要在复位前,把大小先改一下,比如改成3x3cm,再复位就能成功。最终脚本修改如下:

Private Sub CommandButton1_Click()

    For Each iShape In ActiveDocument.InlineShapes
        iShape.Height = 3 * 28.35
        iShape.Width = 3 * 28.35
        iShape.Reset
    Next iShape

End Sub

效果如下:

解决WORD输出Html图片Jpg变模糊的问题_第18张图片

看上去挺好,这时再输出HTML:

解决WORD输出Html图片Jpg变模糊的问题_第19张图片

满怀希望打开一看,我靠,它居然全是JPG:

解决WORD输出Html图片Jpg变模糊的问题_第20张图片

怎么不按套路出牌呢?人与人之间的信任呢?

继续折腾吧。经过一番研究,最终发现,将DOC转存为DOCX,再执行重置脚本,再转存HTML设置PNG格式,出来的就是PNG了:

解决WORD输出Html图片Jpg变模糊的问题_第21张图片

我也不知道为什么会这样,反正,现实就是这么残酷,也许,是要逼你们升级DOCX吧:

解决WORD输出Html图片Jpg变模糊的问题_第22张图片

总算达到目的了。总结就3点:

1.先保存为DOCX格式

2.写VB脚本,遍历所有图片,先缩小再复位

3.转存HTML时,在WEB选项里设置PNG格式

注意:我只对自己的电脑负责,其他人机器上是否行得通我没验证过的,照此操作出不来结果不要怪我哈。

你可能感兴趣的:(Windows,其它技术话题)