在编辑文档的时候经常会遇到下划线无法显示的情况,如图:
如果遇到不能在姓名后面加下划线的情况,我们该怎么做?
请看下面的图解:
1、首先点击左上角的office图标
2、点击右下角“word选项”
3、点击“高级”,将右侧进度条拉到最后,找到板式选项,并点击打开
4、打开“板式选项”选项卡之后,往下拉进度条,找到“为尾部空格添加下划线”选项,点击选择此项,确认空格内出现对号后,点击确定退出。
5、这时候,我们就可以随心所遇的为自己的文档添加下划线了。
解决WORD文档无法显示链接的图像问题
参考文章:
(2)https://www.cnblogs.com/zhangjunrui/p/6659473.html
备忘一下。
OFFICE的VBA编程功能其实是蛮强大的,而VB的语法简单,学起来也很容易上手,如果做过OLE编程的对OFFICE的对象结构有了解就更容易了。利用VBA我们可以做很多批量处理的事,昨天刚好用它解决了个问题,这里把过程记录下供参考,应该对VBA新手会有帮助,熟手就不用看了。
昨天遇到的情况是,用Office2007从本地打开带图片的html并另存为word doc文档时,WORD把图像保存为链接而且不保留快照,这样在其它机器上打开时就会看不到图片,只看到一个“无法显示链接的图像,该文件可能已被移动、重命令或删除”的提示:
在WORD中尝试了很多办法,另存为MHT、另存为HTML再复制粘贴回来、存为旧版DOC、另存为RTF,都不能把图片一起保存,也找不到相应的选项。在网上查找了半天,找不到好的解决办法。重新插入图片可以解决,但由于文档较多,每个文档的图片有好几十个,且分布在不同的目录下,一个个去修改会非常麻烦。
县城的办法找不着,接下来就只好从农村出发,自己动手解决了。首先,利用WORD的宏录制功能,搞清楚插入图像和链接图像的区别。我录制了一个宏,在录制过程中分别以插入、链接、插入并链接的方式插入三个不同图:
停止录制之后,编辑之,可看到以下脚本:
很显然,在插图片Selection.InlineShapes.AddPicture时,“SaveWithDocument:=False”这个参数是导致图片不保存的罪魁祸首。
再进一步查帮助,发现InlineShape和Shape都有一个LinkFormat对象,而LinkFormat对象中就有SavePictureWithDocument属性,因此我们我只要把文档中的图像遍历一下,把这个属性都设置掉就能解决问题了。原理很简单,接下来我们就来实现它。
打开要处理的DOC文件,按ALT+F11进入VBA编程界面,在左边工程树上选中我们的文档,右键插入一个用户窗体:
在窗体上放一个按钮:
然后双击它生成点击事件函数,并在事件中编写代码,遍历所有图片对象,判断并设置是否保存的属性:
- Private Sub CommandButton1_Click()
- Dim c As Integer
- Dim shp As InlineShape
- Dim sp As Shape
- c = 0
- For i = 1 To ActiveDocument.InlineShapes.Count
- Set shp = ActiveDocument.InlineShapes.Item(i)
- If Not shp.LinkFormat Is Nothing Then
- If Not shp.LinkFormat.SavePictureWithDocument Then
- c = c + 1
- shp.LinkFormat.SavePictureWithDocument = True
- End If
- End If
- Next i
- For i = 1 To ActiveDocument.Shapes.Count
- Set sp = ActiveDocument.Shapes.Item(i)
- If Not sp.LinkFormat Is Nothing Then
- If Not sp.LinkFormat.SavePictureWithDocument Then
- c = c + 1
- sp.LinkFormat.SavePictureWithDocument = True
- End If
- End If
- Next i
- MsgBox CStr(c) + "个图片已经修改为与文档一起保存"
- End Sub
需要注意的是,有些图片对象可能没有LinkFormat属性,因此代码中要有判断是否为空的语句。
接下来按F5运行,显示用户窗体:
点击按钮,运行结果如下图:
关闭用户窗口,这时所有图片已经会随WORD文档一起保存了。
最后还要清理一下,回到VBA编程界面,把插入的用户窗体删除,关闭VAB编程窗口,保存退出。这时把文档拷到其它机器上也能看到图片了。
补充说明一点,如果有很多个文档要执行相同的操作,可专门新建一个叫“链接图像处理.doc”的文档来保存用户窗体和代码,我们的代码中处理的是ActiveDocument,因此只要同时打开要处理的文件和这个“链接图像处理.doc”文档,就能编写一次处理所有文件了。
http://blog.csdn.net/huzgd/article/details/6963548
- 顶
- 1
在编辑文档的时候经常会遇到下划线无法显示的情况,如图:
如果遇到不能在姓名后面加下划线的情况,我们该怎么做?
请看下面的图解:
1、首先点击左上角的office图标
2、点击右下角“word选项”
3、点击“高级”,将右侧进度条拉到最后,找到板式选项,并点击打开
4、打开“板式选项”选项卡之后,往下拉进度条,找到“为尾部空格添加下划线”选项,点击选择此项,确认空格内出现对号后,点击确定退出。
5、这时候,我们就可以随心所遇的为自己的文档添加下划线了。
转载于:https://www.cnblogs.com/yechangzhong-826217795/p/8023989.html
前一段时间遇到一个问题,就是将html转成word文档,里面有图片,表格,和各种形式的文字。刚开始的做法是将html代码取出来,然后以留的形式进行保存,后缀名为.doc。当我转成之后发现一切完美,但是图片出现了问题:
1.图片大小、像素有问题。
2.(最严重的)图片存在word的是一个链接而已。
当我们在断网的情况下(或者拷贝到两一台电脑上)打开word文档的时候 实际上看到的图片是一个链接,也就是说图片转化的不成功。
其实从本质上来说,我们可以看一下转化之后所谓的word文档的格式,(点击另存为,看文件类型)发现其实转化之后的文档的文件类型仍然是.html的格式。只有当我们再次另存为并且选择文件类型为.doc格式的时候 才能做到真正意义上的转化,并且图片不会出现上述问题。原因大致是html转word的时候中间会经过一步处理,先将html的文件转成了xml文件,然后在转成.doc格式,同时将html的图片转成了Base64编码的格式(替换了图片的链接)存在了xml文件里。(我们可以打开将任意一篇.doc格式的word文档另存为成.xml文档后分析带有图片的那部分代码。)
于是乎浏览网上各种大神的解决办法,发现并没有一个很好的解决方法。网上的关于html转化word的解决办法总结起来有以下几种情况:
1.用ASPOSE.WORDS控件来处理。(涉及到了asp。。还有神马控件。。扩展性太差,,果断不深入这个方法。废弃之。)
2.把html文件里面的图片转成Base64格式存储。
好像是涉及到了上面所叙述的html转word的原理部分,但是那是word做的事,鬼知道当我们在选择将word另存为.doc格式的时候word做了什么操作。。。。我们都知道html标签里的图片形式为:<img src="xxxxxxx" /> 将图片转成Base64编码容易,但是并不是将Base64编码的图片简单的放到src=“xxxxx”里面就行了,需要能让word读懂。 转成能让word读懂的格式就更不容易了(也就是前文提到的那个xml文件)。因为图片有很多格式(.jpg/.png等等),还要涉及到word里特殊的标签(类似这种<img
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />)。。。。 所以在尝试了之后也放弃了。
3.用POI 这个jar包
说这个的更是扯。 Apache的POI对图片的处理不友好,甚至有的版本根本就不支持。在入坑很久之后,果断放弃。。。
4. javacdoc 的包
亲测 不可以。以上4中方法是网上讨论最多的,我从09年的帖子一直翻到17年的,总结下来的。。发现并没有找到解决办法。。最后不得已,决定自己解析html文档,转化word。最终成功转化,实现了自己想要的结果。实现起来也很简单,只是解析了一下word而已。
5.利用freemaker模板。
这个可以解决,但是要大动干戈。实际开发的过程中不会因为一点问题就换模板的。这样不利于开发和维护。
解决思路:
设法解决转成word的时候另存为时候看到的文件类型不是.html格式的就ok,这样的话就不会以图片链接的形式放在word里面。
解决办法:(相关demo和jar包后面会给出)
1.先 用jsoup的包将html格式化。(此处用于解析html代码。方便后面用itext包调用)
2.利用iText的jar包,这个jar包是转化pdf用到的,但是转化成word也能用。保存后在word里面的文件类型是.rtf格式的。能够完美解决问题。
成功后的结果:

文件类型:

Demo地址:
http://download.csdn.net/download/wht21888/10120532
(年少无为,卖码为生,需要一点点资源币。
具体的方式在Demo里有,有什么问题或者你有更好的方式 欢迎加QQ:749938275 一起讨论)