`
tedeyang
  • 浏览: 328308 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于SVN的word比较脚本

阅读更多

【2008-6月 bbs】

前面曾贴出TortoiseSVN可以调用word进行doc文件比较的图。

今天扫视了下 TortoiseSVN\Diff-Scripts目录,发现了奥秘:

diff-doc.js文件!

其内容如下:

 

QUOTE:

var objArgs,num,sBaseDoc,sNewDoc,objScript,word,destination;
// Microsoft Office versions for Microsoft Windows OS
var vOffice2000 = 9;
var vOffice2002 = 10;
var vOffice2003 = 11;
var vOffice2007 = 12;

// WdCompareTarget
var wdCompareTargetSelected = 0;
var wdCompareTargetCurrent = 1;
var wdCompareTargetNew = 2;
// WdViewType
var wdMasterView = 5;
var wdNormalView = 1;
var wdOutlineView = 2;
// WdSaveOptions
var wdDoNotSaveChanges = 0;
var wdPromptToSaveChanges = -2;
var wdSaveChanges = -1;

objArgs = WScript.Arguments;
num = objArgs.length;
if (num < 2)
{
   WScript.Echo("Usage: [CScript | WScript] diff-doc.js base.doc new.doc");
   WScript.Quit(1);
}

sBaseDoc = objArgs(0);
sNewDoc = objArgs(1);

objScript = new ActiveXObject("Scripting.FileSystemObject" );
if ( ! objScript.FileExists(sBaseDoc))
{
    WScript.Echo("File " + sBaseDoc + " does not exist.  Cannot compare the documents.");
    WScript.Quit(1);
}
if ( ! objScript.FileExists(sNewDoc))
{
    WScript.Echo("File " + sNewDoc + " does not exist.  Cannot compare the documents.");
    WScript.Quit(1);
}

objScript = null;

try
{
   word = WScript.CreateObject("Word.Application") ;
}
catch(e)
{
   WScript.Echo("You must have Microsoft Word installed to perform this operation.");
   WScript.Quit(1);
}

word.visible = true;

// Open the new document
destination = word.Documents.Open(sNewDoc) ;

// If the Type property returns either wdOutlineView or wdMasterView and the Count property returns zero, the current document is an outline.
if (((destination.ActiveWindow.View.Type == wdOutlineView) || (destination.ActiveWindow.View.Type == wdMasterView)) && (destination.Subdocuments.Count == 0))
{
    // Change the Type property of the current document to normal
    destination.ActiveWindow.View.Type = wdNormalView;
}

// Compare to the base document
if (Number(word.Version) <= vOffice2000)
{
    // Compare for Office 2000 and earlier
    destination.Compare(sBaseDoc);
}
else
{
    // Compare for Office XP (2002) and later
    destination.Compare(sBaseDoc, "Comparison", wdCompareTargetNew, true, true);
}

   
// Show the comparison result
if (Number(word.Version) < vOffice2007)
{
    word.ActiveDocument.Windows(1).Visible = 1;
}
   
// Mark the comparison document as saved to prevent the annoying
// "Save as" dialog from appearing.
word.ActiveDocument.Saved = 1;
   
// Close the first document
if (Number(word.Version) >= vOffice2002)
{
    destination.Close(wdDoNotSaveChanges);
}

这段代码揭示了用脚本控制word的冰山一角。

 收藏

0
0
分享到:
评论

相关推荐

    Linux环境下配置同步更新的SVN服务器(word文档)

    编辑`post-commit`脚本,设置自动更新命令: ```bash #!/bin/sh REPOS="$1" REV="$2" svn up --username=woody --password=woody http://127.0.0.1/boqii/www ``` 6. **重启Apache服务**: ```bash ...

    svn简单使用,非常好

    SVN,全称为Subversion,是一种版本控制系统,用于管理...总的来说,SVN 是一个强大的版本控制系统,对于软件开发团队来说必不可少,而 Word 则是日常办公中常用的文档编辑工具,掌握这些基础操作能显著提升工作效率。

    SVN操作手册.doc

    项目的根目录通常包含文档、源代码、构建脚本等。为了保持清晰,可以使用标准的目录结构,如`trunk`(主开发线)、`branches`(分支)和`tags`(标记,用于保存特定版本)。 #### 2-3:命名规则 命名规则应清晰、...

    龙芯开发系列word文档

    龙芯开发系列word文档 本文档涵盖了龙芯开发系列的各个方面,从编译龙芯BIOS(PMON)开始到分析源代码,提供了详细的指导和经验分享。以下是本文档中的知识点总结: 一、SVN 工具的使用 * 下载 SVN 工具以下载 ...

    git电子教程汇总(5本权威电子书)

    "git_Magic_CN"这个名字暗示这可能是一本中文版的Git进阶教程,涵盖了Git的一些高级特性,如子模块、工作流策略、钩子脚本、rebasing等。这些内容对于团队协作和项目管理尤为重要,能帮助开发者实现更高效、更整洁的...

    github-to-wordpress-deploy-script, 在Github上和部署到 WordPress,Bash脚本处理标签.zip

    github-to-wordpress-deploy-script, 在Github上和部署到 WordPress,Bash脚本处理标签 到 WordPress.org-部署...脚本执行的操作这个脚本将关闭远程GIT和SVN存储库,使用指定的分支标记发布,并将所有内容提交给 Word

    Gradle使用文档 中文WORD版

    这份“Gradle使用文档 中文WORD版”虽然基于较旧的2.0版本,但其基本概念和大部分功能仍然适用于当前的4.0及以上版本。 1. **Gradle基础** - **项目结构**:Gradle项目通常包含`build.gradle`构建脚本,`settings....

    ANT详细教程加world文档

    而“world文档”可能指的是“Word文档”,在本场景下可能是关于ANT的详细教程文档。 【描述】:“ANT详细教程加world文档ANT详细教程加world文档” 这个描述两次提到了“ANT详细教程加world文档”,暗示我们有一个...

    TortoiseSVN中文语言包

    TortoiseSVN是一款在Windows环境下非常流行的Subversion(SVN)版本控制系统客户端,它以图形界面的形式集成在文件资源管理器中,使得用户能够方便地进行版本控制操作。中文语言包则是为了方便中文用户使用而提供的...

    文件对比

    而专业对比工具提供更丰富的功能,如三向合并、文件夹比较、自动化脚本支持等,适用于团队协作和大规模项目。 在进行文件对比时,不仅要关注差异,还要理解这些差异的含义,例如在代码中,一处改变可能会影响到整个...

    变更单生成

    这个JAR文件内部可能封装了读取SVN信息、比较文件差异、生成变更单模板等功能。可能使用了如Apache Commons IO或Java内置的文件操作API来处理文件,以及可能使用了JAXB或Apache POI等库来处理和生成".doc"(Word文档...

    py2.5-pysvn-win32com

    这个模块对于自动化Windows系统任务或与Windows应用程序交互非常有用,比如,通过Python脚本控制Word文档的创建和编辑。 综上所述,这个“py2.5-pysvn-win32com”软件包是针对Python 2.5开发者的,他们可能需要在...

    PHP基于Web的subversion用户管理系统(源代码+论文).rar

    5. **论文文档**:可能是一个PDF或Word文档,包含了系统设计的详细描述、工作原理、实现过程和技术挑战的解决策略。 通过这个项目,学习者可以了解到如何使用PHP与Subversion API进行交互,以及如何构建一个Web应用...

    sitehelp.rar

    7. **版本控制系统**:如果压缩包内有.git、.svn或类似文件,说明可能包含了版本控制系统的备份,涉及Git或SVN的使用和协同工作流程。 8. **项目管理**:包含如README、LICENSE、.gitignore等文件,可能表示这是一...

    任务提交器,开发任务结束之后提交测试等操作的自动化实现.zip

    在实现上,"任务提交器"可能基于脚本语言(如Python或JavaScript)编写,利用这些语言的丰富库来实现各种功能。例如,可以使用Pandas库处理Excel数据,使用BeautifulSoup或Scrapy进行网页抓取,使用Selenium进行网页...

    有关主任述职报告范文汇总6篇.docx

    - **自动化报告生成**: 可以使用脚本或特定软件自动生成文档,例如使用Python的Docx库来自动填充模板中的数据,生成标准化的报告或文档。 ### 非IT但与信息技术应用相关 #### 1. **信息技术在教育管理中的应用** ...

    Nessus安装使用-20210316.docx

    Nessus支持NASL(Nessus Attack Scripting Language),这是一种由Tenable公司开发的语言,专门用于编写Nessus的安全测试脚本。此外,Nessus完全支持SSL,确保通信的安全性。作为一个成熟的软件,Nessus采用客户/...

    POI 3.5源码

    10. **版本控制和构建工具**:源码还包含版本控制系统(可能是SVN或Git)的提交历史,以及构建脚本(如Ant或Maven),这为我们展示了开源项目的一般开发流程和版本管理实践。 通过研究这个古老的POI 3.5源码,...

Global site tag (gtag.js) - Google Analytics