繁体   English   中英

C#(或VB6)将Word文档转换为Tiff

[英]C# (or VB6) Convert Word doc to Tiff

我正在使用一百多个用户使用的VB6应用程序。 它生成一个Word文档,然后将该文档的TIFF图像保存在数据库中。 当前,它只是将打印机设置为Microsoft Office Document Image Writer,将文档“打印”到设置的位置,然后将生成的TIFF文件导入数据库。 但是,该组织正在将所有人都升级到Office 07,这意味着Microsoft Office Document Image Writer即将消失。 因此,我想知道以编程方式从Word转换为TIFF有多困难。
我们已经引入了C#(.NET 3.5)控件库作为COM,因此这似乎是放置该功能的好地方。 在某个时候,我会将整个应用程序转换为3.5,因此,我希望已经有任何新代码,因此转换起来少了。

编辑:我很欣赏这些建议,但是我真的很想尝试而不使用昂贵的第三方组件来做到这一点。 很难让有钱人看到花费数千美元来修复过去免费工作的优点。 另外,我对自己进行滚动转换真正感兴趣。 我知道有些受虐狂,但是我开始编程是因为我对了解事物如何运作的渴望着……

感谢你的帮助!

据我所知(并且一个快速的Google似乎证实了这一点),TIFF格式和DOC二进制格式规范均可在网上免费获得。 因此,这将是一个相当大而复杂的项目(我在考虑人工月而不是人工周),因此您可以编写代码来读取DOC文档并填充对象模型。 然后,您可以编写更多代码,然后将对象模型输出为TIFF文档。

但是,只需考虑一些复杂性:表格,格式,字符集,间距,嵌入的内容等。 我猜这就是为什么它通常是昂贵的第三方库或专业文档管理系统的工作。

出于兴趣,现在是否该是时候摆脱专有文档格式并将文档存储在DB中更易管理的时候了?

您可以通过使用Microsoft Windows随附的标准“传真”驱动程序以编程方式将Word文档转换为TIFF。 这项工作的关键是确保OutputFileName的扩展名为“ .tiff”。这是示例代码(VB.net&Word 2010):

Dim objWdDoc As Word.Document
Dim objWord As Word.Application
Dim sDesktop As String = Environment.GetEnvironmentVariable("userprofile") & "\Desktop\"

objWord = CreateObject("Word.Application")
objWdDoc = objWord.Documents.Open(sDesktop & "testdocument.doc")
objWord.Visible = True

'Select Printer
objWord.ActivePrinter = "Fax"
'Print to Tiff
objWdDoc.PrintOut(Range:=WdPrintOutRange.wdPrintAllDocument, _
                      OutputFileName:=sDesktop & "test.tiff", _
                      Item:=WdPrintOutItem.wdPrintDocumentContent, _
                      PrintToFile:=True)
'Close Document
objWdDoc.Close()
'Close Word
objWord.Quit()
'General Cleanup
objWdDoc = Nothing
objWord = Nothing

尝试Aspose.Word组件

Microsoft Office Document Image Writer仍在Office 2007中可用(至少在Enterprise中可用)-它是可选组件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM