代码之家  ›  专栏  ›  技术社区  ›  Ondrej Tucny

OpenOffice和MS Office格式转换为TIFF

  •  2
  • Ondrej Tucny  · 技术社区  · 14 年前

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

    应支持的文件格式:

    • doc和docx
    • RTF
    • XLS和XLSX
    • PPT和PPTX
    • ODT
    • ODS
    • ODP

    很高兴拥有:

    • PDF
    • PDF/A
    • HTML(最好是非基于IE的渲染,它将用于服务器系统)
    • 味精(DTTO)

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

    我对供应商有很强的要求:

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

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Doc Brown    14 年前

    不知道有什么现成的解决方案,但一种方法可能是将文档打印到postscript文件,并使用ghostscript将它们转换为tiff。我敢肯定,这可以对你列出的大多数程序进行编程(你可能需要对MS Office和Open Office不同的解决方案)。例如,下面是我们在ms powerpoint中使用的vba片段,它使用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,但我认为以类似的方式了解它是如何工作的并不难。