OpenOffice 和 MS Office 格式转换为 TIFF

Posted

技术标签:

【中文标题】OpenOffice 和 MS Office 格式转换为 TIFF【英文标题】:OpenOffice and MS Office formats conversion into TIFF 【发布时间】:2011-05-11 13:56:24 【问题描述】:

我正在寻找一组 .NET 组件(或转换解决方案),它们允许将源文档转换为一系列光栅图像(多页 TIFF 是最好的)。此外,它们必须支持使用嵌入文档(如 Word 文档中包含的文档),至少允许检索嵌入文档以进行进一步处理。

应支持的文件格式:

DOC 和 DOCX RTF XLS 和 XLSX PPT 和 PPTX ODT 消耗臭氧层物质 ODP

很高兴拥有:

PDF PDF/A html(最好是基于非 IE 的渲染——它将用于服务器系统) 味精(dtto)

我一直在研究 Aspose 的组件,它们似乎享有很高的声誉,但它们不支持 OpenOffice 格式。

我对供应商的要求相当高:

没有一个人的商店或未来不确定的开源项目 应该是商业产品 必须提供商业优先支持 必须为将来的格式更新提供兼容性保证,作为维护订阅的一部分

许可模式无关紧要,不必免版税。预期用途是用于单个自定义开发项目。

【问题讨论】:

很高兴看到有人提出问题,他们实际上更喜欢 为处理文档转换的软件库付费。每个人似乎总是希望免费使用这个解决方案,所以这是一个受欢迎的变化。 谢谢 Ben :-) 我不太愿意依赖开源或其他免费项目来构建一个可以保存 10 多年寿命的 TB 数据的系统。 Leadtools 可以从 PDF 转换,并且可以转换为您列出的许多,但我不确定其他方式,值得一看。 【参考方案1】:

不知道任何开箱即用的解决方案,但一种方法可能是将文档打印到 postscript 文件并使用 Ghostscript 将它们转换为 TIFF。对于您列出的大多数程序,我很确定这可以通过编程方式完成(您可能需要针对 MS Office 和 Open Office 的不同解决方案)。例如,下面是我们在 MS Powerpoint 中使用的 VBA sn-p 使用 Ghostscript 打印机驱动程序将单页打印到 postscript 文件:

Sub CreatePostscriptfile(filename As String, pageNo As Integer)
    With ActivePresentation.PrintOptions
        .RangeType = ppPrintCurrent
        .NumberOfCopies = 1
        .Collate = msoTrue
        .OutputType = ppPrintOutputSlides
        .PrintHiddenSlides = msoTrue
        .PrintColorType = ppPrintColor
        .FitToPage = msoFalse
        .FrameSlides = msoFalse
        .ActivePrinter = "Ghostscript PDF"
    End With
    ActivePresentation.PrintOut From:=Str$(pageNo ), To:=Str$(pageNo ), _
           PrintToFile:=filename 
End Sub

(通过 .NET 使用 MS Office 应用程序的 COM 接口看起来与这个 VBA 例程非常相似。)我不习惯 OpenOffice API,但我认为找出它的工作原理应该不难以类似的方式。

【讨论】:

在任何类型的自动互操作中使用 Office 包本身不是此服务器端部署的选项。 您可以从 .NET 使用 Open Office 的命令行界面保存为 PDF,然后使用 GhostScript 转换为 TIFF。 @Ondrej:我怀疑你打算设计某种文档管理/归档系统?如果您想 100% 确定 TIFF 将准确包含您在将文档打印到纸上时得到的内容,您必须走“打印到文件”的路线。 AFAIK 这可以在没有互操作的情况下完成,但我几乎不相信没有原始 Office 应用程序的可靠解决方案(至少,我从未听说过)。在嵌入文档时,即使是 Open Office 也无法正确显示 MS Office 文档。

以上是关于OpenOffice 和 MS Office 格式转换为 TIFF的主要内容,如果未能解决你的问题,请参考以下文章

基于openOffice和python实现office转pdf和html示例代码

使用 UI 编辑 MS Office 或 Open Office 文件的 Java API 或库

openoffice里打开excel后汉字显示为乱码

Excel 和 OpenOffice 中的日期格式不同

Openoffice中的电子表格,如何把最上面的一行锁定在顶端不动

通过 ruby​​ 从 office 文档中删除宏等