【问题标题】:OpenOffice and MS Office formats conversion into TIFFOpenOffice 和 MS Office 格式转换为 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 转换,并且可以转换为您列出的许多,但我不确定其他方式,值得一看。

标签: .net components file-format


【解决方案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 文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多