首先推荐大家读一读这篇博文:http://blog.csdn.net/ibingow/article/details/8613556

----------------------------------------------------------------------------

word-to-latex(下载地址:http://www.wordtolatex.com),顾名思义。是用来将doc和docx文件转化为tex文件的(事实上还能够转化为xml文件)。有一个名称和word-to-latex非常相似的软件。叫word2tex(下载地址:http://www.word2tex.com),百度搜索word转为latex。出来的结果大多是这个word2tex。遗憾的是word2tex仅仅能支持到Microsoft Office
2010 32-bit,office 2013和2016以及64bit的office都不能用(本人亲測不能用)。有些跟不上时代。只是它的官网上有另外一个好东西:Tex2Word.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

word-to-latex能够支持64bit的office。可支持到office 2013 ,在office 2016上会出现:执行时错误‘429’:ActiveX部件不能创建对象。真可惜啊真可惜!

word-to-latex在win 10 x64上也能正常安装和使用(尽管它的官网上仅仅提到win8没提到win10)。

官网上另一句提示:MathType is needed for converting MathType and Equation Editor equations!

(要转换MathType和word公式编辑器的公式,必须安装MathType)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

装好后进入安装路径(默认是C:\Program Files (x86)\Word-to-LaTeX)看一看,一共8个dll文件,当中6个是mathtype的(mt5.dll; mt6_7.dll; mt6_8_32.dll; mt6_8_64.dll; mt6_9_32.dll;mt6_9_64.dll;含义非常明白。自己思考吧)。话说你都把人家mathtype的文件复制过来了,为什么又要求用户装mathtype呢???另外两个名字非常长的dll,是word-to-latex自己的。在后面要讲到的用.NET
Reflector加载的就是这两个文件。

再看看好压MD5校验的结果(注意观察dll文件的路径)以及文件的属性:

word-to-latex在安装过程中还可能出现例如以下问题:參数无效,操作无法完毕(不知道怎么解决)

假设正常完毕安装。那么在控制面板的“设备和打印机”中应该看到EPS打印机:

个人觉得,这个eps打印机没什么用处。

图片插入word后默认会被压缩,word 2013最高支持220ppi的位图。(word 2016有所进步,最高支持330ppi的位图)。

在此提供一个方法看看图片插入word后相较原图片到底缩小了多少。把一个含有图片的docx文件的后缀docx改为zip(docx,xlsx,pptx文件本质上都是zip压缩包),用解压软件直接打开,能够看到三个目录(_rels,docProps,word)和一个名为[Content_Types].xml的文件:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

打开里面的word目录,再打开media目录,docx中的所有图片均在这个media目录里面,换句话说,这样便能够方便地提取一个docx文件里的所有图片,然后跟原始图片对照一下~

质量已经下降的图片再经过一次转化(转化为eps格式),即使转化过程没有导致质量进一步下降,得到的图片也没实用处了。由于杂志社的要求是:有矢量图的就提供矢量图;若是位图。就提供未经压缩、未经格式转换的高清原图(分辨率不低于300dpi。最好600dpi)。综上所述。我建议你把Images的Action设置为Ignore,能够节省转换时间:

word-to-latex正常完毕安装后,在word中应该看到例如以下载入项:

假设你没装word,貌似会出现例如以下问题:没有注冊类;server执行失败。

假设你用的是wps而不是word,貌似会出现例如以下问题:指定的參数数目与所需数目不匹配。(话说国外的软件开发人员哪知道中国的wps呢!

!。)

我有较大的把握认定word-to-latex必须依赖word,而不能独立执行,除了上面提到的症状(反正就是不能转换)。另一条理由:每次使用word-to-latex后,word的近期使用文件列表中就会添加一项名字为13位纯数字的文件。再把鼠标悬停上去看看这些文件的路径……

在word的VBA编辑器(按Alt+F11启动)中能够看到word-to-latex的Project,而且被锁定,“不可查看”。

真的不能查看吗?呵呵!

进入word-to-latex的安装路径(默认是C:\Program Files (x86)\Word-to-LaTeX)。然后进入templates目录,找到Word-to-LaTeX.dotm,双击打开。然后word就变成这样:

word-to-latex出现两次(看右上角),点“启用内容”,再按Alt+F11进入VBA编辑器,能够看到word-to-latex的project也出现了两次。当中一个能够查看,还有一个还是锁定。进入:模块>Module1,

咱们来看一看它的代码:

-----------------------------------------------------------------------------------------------

Option Explicit

#If Win64 Then

    Private Declare PtrSafe Function ShellExecute _

      Lib "shell32.dll" Alias "ShellExecuteA" ( _

      ByVal hWnd As Long, _

      ByVal Operation As String, _

      ByVal Filename As String, _

      Optional ByVal Parameters As String, _

      Optional ByVal Directory As String, _

      Optional ByVal WindowStyle As Long = vbMinimizedFocus _

      ) As Long

#Else

    Private Declare Function ShellExecute _

      Lib "shell32.dll" Alias "ShellExecuteA" ( _

      ByVal hWnd As Long, _

      ByVal Operation As String, _

      ByVal Filename As String, _

      Optional ByVal Parameters As String, _

      Optional ByVal Directory As String, _

      Optional ByVal WindowStyle As Long = vbMinimizedFocus _

      ) As Long

#End If

'Callback for buttonWordToLaTeXConvert onAction

Sub actionWordToLaTeXConvert(control As IRibbonControl)

    Dim productKey As String

    Dim app As Object

    productKey = Application.ProductCode

    'If Mid(productKey, 21, 1) = "1" Then

    '    MsgBox "Word-to-LaTeX Add-in for Microsoft Word does not support Microsoft Office 2010 64bit." _

    '        & vbCrLf & vbCrLf & "Please run Word-to-LaTeX by clicking icon on your Desktop or in the Windows Start Menu." _

    '        , vbInformation, "Word-to-LaTeX"

    If Documents.Count = 0 Then

        MsgBox "No document is open.", vbInformation, "Word-to-LaTeX"

    Else

        If Not ActiveDocument.ReadOnly Then

            If Not ActiveDocument.Saved Then

                ActiveDocument.Save

            End If

        End If

        

        If ActiveDocument.Content.End <= 1 Then

            MsgBox "The document is empty.", vbInformation, "Word-to-LaTeX"

        ElseIf ActiveDocument.Saved Then

            Set app = CreateObject("WordToLatex.Gui.WLConvertorAddin")

            app.Startup Application, ActiveDocument

            app.Convert

            app.Shutdown

        Else

            MsgBox "Please save the document before running Word-to-LaTeX.", vbInformation, "Word-to-LaTeX"

        End If

    End If

End Sub

'Callback for buttonWordToLaTeXHelp onAction

Sub actionWordToLaTeXHelp(control As IRibbonControl)

    Dim lSuccess As Long

    lSuccess = ShellExecute(0, "Open", "http://www.wordtolatex.com/manual")

End Sub

'Callback for buttonWordToLaTeXUpload onAction

Sub actionWordToLaTeXUpload(control As IRibbonControl)

    Dim lSuccess As Long

    lSuccess = ShellExecute(0, "Open", "http://www.wordtolatex.com/upload")

End Sub

'Sub WordToLaTeX(inputFile As String, outputFile As String, optionsFile As String, basePath As String, log As Object, events As Object)

'    Dim convertor As Object

'    Set convertor = CreateObject("WordToLatex.WLConvertor")

'    convertor.Init inputFile, outputFile, optionsFile, basePath, log, Application, events

'    convertor.Convert

'End Sub

-------------------------------------------------------------------------------------------

    上面的代码的第二行。第三行:

#If Win64 Then

    Private Declare PtrSafe Function ShellExecute _

看到这两句,就知道这个软件为了支持64位的office。确实付出了努力。

在第30行的凝视中有一句略显奇怪(注意:不是代码。是凝视。也能够说是作废的代码):

Word-to-LaTeX Add-in for Microsoft Word does not support Microsoft Office 2010 64bit. Please run Word-to-LaTeX by clicking icon on your Desktop or in the Windows Start Menu. 你在官网上不是说了支持office 2010的吗?难道是office 2010非常特殊,你仅仅能支持其32位版而不能支持其64位版?或者以前不支持2010,如今进步了能够支持了,所以把以前写的代码加上凝视符号相当于删掉?

接下来解决关键问题:How to crack.(Of Course。本人已经制作好破解版了,不喜欢自己动手的就直接去下载: http://pan.baidu.com/s/1sksZsst,另外,破解步骤已经录下来了。想看的能够上优酷看:http://v.youku.com/v_show/id_XMTQ2MDAzMzUzMg==.html )

我在这里把破解步骤再演示一遍,先查壳:



去下载这两个东西:

.NET Reflector (下载地址:http://www.red-gate.com/dynamic/products/dotnet-development/reflector/download)

Reflexil.Reflector.AIO.dll (下载地址:http://www.cr173.com/soft/62031.html 。这个dll文件是上面软件的插件)

装插件:在.NET Reflector中。Tools>Add-Ins,再点右下角的“+”,然后选中Reflexil.Reflector.AIO.dll就ok.

有时候会出现:Could not load file or assembly 'file:///……(意思就是无法安装插件)

还有时候会变成中文:未能载入文件或程序集 'file:///……

真是“长太息以掩涕兮,哀吾生之多艰”,这应该是.NET Reflector本身的bug,解决方法是把Reflexil.Reflector.AIO.dll换个位置存放(比方说换到C盘、D盘的根文件夹。一定要多换几个位置试试)。插件装好后。把word-to-latex的安装路径(默认是C:\Program Files (x86)\Word-to-LaTeX)中的两个dll文件加进来。File>Open Assembly,选中word-to-latex-gui-lib.dll和word-to-latex-lib.dll,

在左側的最以下找到word-to-latex-lib(2.56.0.0)。左键单击选中它。然后Tools > Search,输入register

点右边第三个图标Search String or Constant。然后找到AboutForm_Shown,双击。再到以下找到isRegistered。点一下。

在左側找到这个:get_isRegistered():Boolean,(它的上一层是isRegistered:Boolean,左側本来是+,点击+号展开,就能看到:get_isRegistered():Boolean),左键单击选中它,然后Tools >Reflexil v1.6(这就是之前安装的插件)

在Reflexil的面板上右键,replace all with code

把return后面的default(bool)改为true。注意行尾另一个分号。不要删去分号。然后左下角Compile,再右下角OK.

在左側找到word-to-latex-lib(2.56.0.0),左键单击选中它。然后右键,Reflexil v1.6 > Save as

它试图在C:\Program Files (x86)\Word-to-LaTeX中保存名为word-to-latex-lib.Patched.dll的文件。可是.NET Reflector 不是以管理员身份执行的,全部没有写入权限。随便换个地方保存就好了。

注意保存时把名字改为word-to-latex-lib.dll(把Patched.删去),然后用这个改动过的dll文件替换C:\Program Files (x86)\Word-to-LaTeX中同名的dll文件,遇到“目标目录訪问被拒绝”,“继续”就可以。至此。大功告成。

来赞赏一下成果:

再看看这个软件的其他界面吧。

假设想知道该怎样汉化这个程序。能够參看我的还有一篇博客 http://blog.csdn.net/pijianzhirui/article/details/68948796

.NET 逆向project工具还有 ILSpy。DotPeek。JustDecompile。CodeReflect,有兴趣的能够尝试一下。

怎样将word文件转化为Latex文件:word-to-latex-2.56具体解释的更多相关文章

  1. WPF: 读取XPS文件或将word、txt文件转化为XPS文件

    读取XPS格式文件或将doc,txt文件转化为XPS文件,效果图如下: 1.XAML页面代码: <Window x:Class="WpfWord.MainWindow" xm ...

  2. WFP: 读取XPS文件或将word、txt文件转化为XPS文件

    读取XPS格式文件或将doc,txt文件转化为XPS文件,效果图如下: 1.XAML页面代码: <Window x:Class="WpfWord.MainWindow"    ...

  3. Netlib文件转化为mps文件

    Netlib文件转化为mps文件 简单方法1 下载并执行: git clone https://github.com/mtanneau/Netlib_experiments.git cd Netlib ...

  4. jupyter命令把.ipynb文件转化为.py文件

    jupyter nbconvert --to script *.ipynb 就能把当前文件夹下面的所有的.ipynb文件转化为.py文件

  5. 使用vivado将bit文件转化为mcs文件

    使用vivado将bit文件转化为mcs文件 1.在Tcl Console中运行脚本: write_cfgmem -force -format MCS -size 64 -interface spix ...

  6. 将caj文件转化为pdf文件进行全文下载脚本(ubuntu下亲测有用)

    最近ubuntu下caj阅读器,突然崩掉了,而偏偏要准备开题,在网上搜索原因未果,准备放弃时候,突然在网上看到一个脚本,说是很好用,可以在指定页面将caj文件转化为pdf文件,亲测有用,这里直接给出脚 ...

  7. plink格式文件转化为vcf文件(VCF versions convert)

    plink1.9版本支持转化为VCFv4.2格式 plink2.0版本支持转化为VCFv4.3格式 两个版本用到的命令不一样 对于plink1.9版本,转化为vcf文件的命令行为: plink --b ...

  8. 如何将freemarker文件转化为html文件

    最近在做静态的页面报表服务,将前端生成的ftl文件转化为html格式的文件,供后面合成pdf使用. freemarker基础可以参见:freemarker官方文档 前期准备:需要一个基础的ftl格式的 ...

  9. Python脚本:批量将.doc文件转化为.docx文件

    将.doc转换为.docx文件有几种常用的方法: Microsoft Word 和 WPS 自带.doc转换.docx功能,但只能一个文件一个文件转换,批量转换要会员 在线网页 Office-Conv ...

  10. C++ 利用 libxl 将 Excel 文件转化为 Xml 文件

    在游戏开发工作中,策划和运营一般会用Excel来编写配置文件,但是程序读取配置,最方便的还是xml文件.所以最好约定一个格式,然后在二者之间做一个转化. 本文利用libxl来读取Excel文件,利用 ...

随机推荐

  1. C# let 子句

    在查询表达式中,存储子表达式的结果有时很有帮助,可在后续子句中使用. 可以通过 let 关键字执行此操作,该关键字创建一个新的范围变量并通过提供的表达式结果初始化该变量. 使用值进行初始化后,范围变量 ...

  2. js with用法

    有标签的语句 with 语句用于设置代码在特定对象中的作用域. 它的语法: with (expression) statement 例如: var sMessage = "hello&quo ...

  3. 透过浏览器看HTTP缓存[转载]

    http://www.admin10000.com/document/6299.html     作为前端开发人员,对于我们的站点或应用的缓存机制我们能做的似乎不多,但这些却是与我们关注的性能息息相关 ...

  4. jQuery选择器(内容过滤选择器)第四节

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  5. jsp静态与动态包含的区别和联系

    1. <%@ include file=” ”%>是指令元素.<jsp:include page=” ”/>是行为元素 2. 最终编译成java文件的数目不同. * 静态包含在 ...

  6. 06.十分钟学会表达式语言EL

    一. 概念:MVC设计模式一个主要好处就是让jsp中的代码越来越来少,而且规定只能出现三种代码:接收属性,判断语句,迭代输出.但是,在开发中,jsp输出至少还是需要接受VO对象的,这时候为了避免导入V ...

  7. 【MFC】基于OpenCV的魔镜

    最近半个月事情太多了,参加了泰迪杯数据挖掘,参加学院的科技节,科技节里面总共我参加了数学建模.PS.软件设计制作.电子设计大赛这4个.还有期中考.英语论文作业.今天终于忙的差不多,有时间来总结一下前段 ...

  8. Java中Httpsession是如何实现的?

    HTTP协议(http://www.w3.org/Protocols/)是“一次性单向”协议. 服务端不能主动连接客户端,只能被动等待并答复客户端请求.客户端连接服务端,发出一个HTTP Reques ...

  9. C#执行批处理命令

    using System.Diagnostics ; using System.IO; private void btnRun_Click(object sender, EventArgs e)    ...

  10. Python进阶---面向对象的程序设计思想

    Python的面向对象 一.面向过程与面向对象的对比 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...