TXT转HTM、HTML「TXT转网页」的vbs实现代码

在众多文本编辑器中,Microsoft的Word是功能很强大的。况且XP PRO本身支持VBS调用Word文档对象,那么使用VBS是最好不过的了。思路如下:VBS打开Word,Word打开TXT,另存为网页,退出。

1. VBS调用Word.Application组件

如果电脑中安装了Word,那么用VBS打开Word其实很简单,如下:

Set objWord = CreateObject("Word.Application")
objWord.Visible = True

这样可以以可视的方式打开Word。在MSDN的页面{http://msdn.microsoft.com/en-us/library/kw65a0we(VS.80).aspx}上我们可以看到在VBS中仅可以调用两个Word的子集:

Document object 打开的文档对象

Selection object 默认选择对象

不过这两个子集还包含子集,所以可以使用很多功能。Word文档对象本身是VBA的组件,VBS和VBA又有着明显的界限,所以虽然VBS可以调用Word文档对象,但是具体怎么用又是个未知的领域。幸好从微软的一些只言片语和一些短篇中能够大概知道用法。

2. 使用Word实例打开TXT

在创建一个Word实例objWord后,我们应该用其打开TXT了,如下:

Set objDoc = objWord.Documents.Open("e:\temp\1.txt",Format=5)

现在已经打开一个TXT了,Format=5即是说TXT是Unicode的:

─────────────────────────────────────────────────────────────────
wdOpenFormatAllWord 6 与 Word 早期版本向后兼容的 Microsoft Office Word 格式。
wdOpenFormatAuto 0 现有格式。
wdOpenFormatDocument 1 Word 格式。
wdOpenFormatEncodedText 5 编码文本格式。
wdOpenFormatRTF 3 RTF 格式。
wdOpenFormatTemplate 2 用作 Word 模板。
wdOpenFormatText 4 未编码的文本格式。
wdOpenFormatUnicodeText 5 Unicode 文本格式。
wdOpenFormatWebPages 7 HTML 格式。
wdOpenFormatXML 8 XML 格式。
wdOpenFormatAllWordTemplates 13 Word 模板格式。
wdOpenFormatDocument97 1 Microsoft Word 97 文档格式。
wdOpenFormatTemplate97 2 Word 97 模板格式。
wdOpenFormatXMLDocument 9 XML 文档格式。
wdOpenFormatXMLDocumentMacroEnabled 10 启用了宏的 XML 文档格式。
wdOpenFormatXMLTemplate 11 XML 模板格式。
wdOpenFormatXMLTemplateMacroEnabled 12 启用了宏的 XML 模板格式。
─────────────────────────────────────────────────────────────────

由于Word打开TXT后默认字体大小为10.5磅,这个值在网页中是很小的,合适的值是13~15磅,所以需要更改字体大小,同时还需要更改一下默认的西方字体,这里选用--Times New Roman:

Set oRange = objDoc.Range()
oRange.Font.Size = "13"
oRange.Font.Name = "Times New Roman"

然后就是首行应用“标题一”样式,如果首行为空行那么用编辑器使其不为空,其实也可以在VBS中实现,不过代码量增加,这样就很麻烦不利调试:

Set oSelection = objWord.Selection
oSelection.HomeKey wdStory, wdMove
oSelection.Style = objWord.ActiveDocument.Styles("标题 1")

更改完成后,保存:

objDoc.SaveAs oPath & ".htm", 10
objDoc.Close

下面是wdSaveFormat常数列表:

─────────────────────────────────────────────────────────────────
wdFormatDocument 0 Microsoft Office Word 格式。
wdFormatDOSText 4 Microsoft DOS 文本格式。
wdFormatDOSTextLineBreaks 5 Microsoft DOS 文本格式,并且保留换行符。
wdFormatEncodedText 7 编码文本格式。
wdFormatFilteredHTML 10 筛选的 HTML 格式。
wdFormatHTML 8 标准 HTML 格式。
wdFormatRTF 6 RTF 格式。
wdFormatTemplate 1 Word 模板格式。
wdFormatText 2 Microsoft Windows 文本格式。
wdFormatTextLineBreaks 3 Windows 文本格式,并且保留换行符。
wdFormatUnicodeText 7 Unicode 文本格式。
wdFormatWebArchive 9 Web 档案格式。
wdFormatXML 11 可扩展标记语言 (XML) 格式。
wdFormatDocument97 0 Microsoft Word 97 文档格式。
wdFormatDocumentDefault 16 Word 默认文档文件格式。对于 Microsoft Office Word 2007,这是 DOCX 格式。
wdFormatPDF 17 PDF 格式。
wdFormatTemplate97 1 Word 97 模板格式。
wdFormatXMLDocument 12 XML 文档格式。
wdFormatXMLDocumentMacroEnabled 13 启用了宏的 XML 文档格式。
wdFormatXMLTemplate 14 XML 模板格式。
wdFormatXMLTemplateMacroEnabled 15 启用了宏的 XML 模板格式。
wdFormatXPS 18 XPS 格式。
─────────────────────────────────────────────────────────────────

Word实例退出:

objWord.Quit

3. 完整代码


代码如下:

' ********************************************************************************
' TXT转网页,仅作转换演示
' Created By 千羽之城 / 2009年9月22日
' http://hi.baidu.com/asnahu
' ********************************************************************************

Dim objWord,objDoc,oRange,oPath

Const wdStory = 6
Const wdMove = 0
Const wdOpenFormatUnicodeText = 5
Const wdFormatFilteredHTML = 10

strFile = "E:\temp\1.txt" ' 该路径必须是完整路径

Set objWord = CreateObject("Word.Application")
objWord.Visible = True

Set objDoc = objWord.Documents.Open(strFile, Format=5)
Set oRange = objDoc.Range()
oRange.Font.Size = "13"
oRange.Font.Name = "Times New Roman"

Set oSelection = objWord.Selection
oSelection.HomeKey wdStory, wdMove
oSelection.Style = objWord.ActiveDocument.Styles("标题 1")

oPath = Split(strFile,".")(0)

objDoc.SaveAs oPath & ".htm", 10
objDoc.Close

objWord.Quit

如果要实现批量的多文本转换,那么建议生成一个TXT文件列表,然后用FSO调用其中内容,依次转换即可。

最后:该方法转换的质量比较高,但是也附带一些弊端,那便是垃圾代码很多,生成的网页文件很大。

(0)

相关推荐

  • TXT转HTM、HTML「TXT转网页」的vbs实现代码

    在众多文本编辑器中,Microsoft的Word是功能很强大的.况且XP PRO本身支持VBS调用Word文档对象,那么使用VBS是最好不过的了.思路如下:VBS打开Word,Word打开TXT,另存为网页,退出. 1. VBS调用Word.Application组件 如果电脑中安装了Word,那么用VBS打开Word其实很简单,如下: Set objWord = CreateObject("Word.Application") objWord.Visible = True 这样可以以

  • 「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)

    1. 实现一个new操作符 new操作符做了这些事: 它创建了一个全新的对象. 它会被执行[[Prototype]](也就是__proto__)链接. 它使this指向新创建的对象.. 通过new创建的每个对象将最终被[[Prototype]]链接到这个函数的prototype对象上. 如果函数没有返回对象类型Object(包含Functoin, Array, Date, RegExg, Error),那么new表达式中的函数调用将返回该对象引用. function New(func) { va

  • Python实现将目录中TXT合并成一个大TXT文件的方法

    本文实例讲述了Python实现将目录中TXT合并成一个大TXT文件的方法.分享给大家供大家参考.具体如下: 在网上下了一个dota的英雄攻略,TXT格式,每个英雄一个文件,看得疼,就写了一个小东西,合并一下. #coding=gbk import os import sys import glob def dirTxtToLargeTxt(dir,outputFileName): '''从dir目录下读入所有的TXT文件,将它们写到outputFileName里去''' #如果dir不是目录返回

  • 赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程 原创

    先上一波战果:证明脚本是有用的~ 好在前两天看到有大佬在 Github 上开源了一个抢茅台的脚本目前已经 1.4k ,我前一天看的时候才 500 star,是真的火起来了,不得不感叹,这传播速度也太大了吧. 原作者已经清除了仓库,不知道是什么原因.不过因为太火了被大量fork,有些用户保留了项目,并制作了改进版 改进版项目地址:https://github.com/mengxr123/jd_maotai_seckill 第一步 把项目代码下载到本地并解压. 第二步 安装对应的第三方库,可以直接使

  • Python 实现「食行生鲜」签到领积分功能

    用过食行生鲜的同学应该知道,每天可以在食行生鲜签到,签到可以领到 20 积分,在购物时可以抵 2 毛钱.钱虽少,但是积少成多,买菜时可以抵扣一两块钱还是不错的. 今天我们就用 Python 来实现自动签到,省得我每天打开 APP 来操作了. 分析 要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化.但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓包处理了. 不过还好,我们有微信. 在微信里面,我们发现也可以登录食行,这时选择在浏览器中打开页面,~哎~ ,柳

  • vue做网页开场视频的实例代码

    本demo背景是一个视频,文字是打印机效果,按钮在文字打完才会显示,点击按钮背景向上收起,同时显示默认首页组件(如是初建vue项目列表,则为helloWorld.vue的组件内容) 公司电脑没有gif动图尽情谅解 文末会附上demo地址,如需看效果,可前往下载 本人一直很喜欢网页开场有一段视频或动画,个人认为网页的开场动画起到引导浏览作用,相当于网页的一个开始,一个好的开始往往就成功了一半,对于浏览网站的用户来说,也就吸引了极大地注意力. 以上都是废话,网页开场动画在移动端的应用十分广泛,具体操

  • vue中将网页打印成pdf实例代码

    整理文档,搜刮出一个vue中将网页打印成pdf的代码,稍微整理精简一下做下分享. <template> <div class="pdf-wrap" id="pdfWrap"> <button v-on:click="getPdf">点击下载PDF</button> <div class="pdf-dom" id="pdfDom"></div&

  • js实现左侧网页tab滑动门效果代码

    本文实例讲述了js实现左侧网页tab滑动门效果代码.分享给大家供大家参考.具体如下: 这是一款开口靠左的网页滑动门,网页滑动门,TAB滑动门,竖排滑动门菜单,竖排TAB选项卡,兼容IE6/IE7/FF/opera浏览器.其实竖排和横排的代码基本一样,只不过稍加修改就可以了.只要学会了一种滑动门,就能举一返三了. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-left-tab-cha-style-codes/ 具体代码如下: <!DOCTY

  • jQuery实现固定在网页顶部的菜单效果代码

    本文实例讲述了jQuery实现固定在网页顶部的菜单效果代码.分享给大家供大家参考.具体如下: 这是一款基于jQuery的固定在页面顶部的菜单,获取要定位元素距离浏览器顶部的距离,滚动条的滑动距离大于等于定位元素距离浏览器顶部的距离,就固定,反之就不固定. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-top-fixed-menu-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W

  • JS+CSS实现自动切换的网页滑动门菜单效果代码

    本文实例讲述了JS+CSS实现自动切换的网页滑动门菜单效果代码.分享给大家供大家参考.具体如下: 这是一款支持自动切换功能的网页滑动门菜单,JS与CSS结合的技术成果,有人说它是自己会切换的网页选项卡标签面板,QQ登录后弹出的每日要闻迷你窗口中有类似效果,但是代码写法却是截然不同的,每一位作者的思路是不同的,因此您多了一份参考. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-auto-cha-tab-menu-style-code

随机推荐