.net OpenOffice和MS Office格式转换为TIFF
我正在寻找一套.NET组件(或转换解决方案),可以将源文档转换为一系列光栅图像(多页TIFF最好)。此外,它们必须支持使用嵌入文档(如Word文档中包含的文档),至少允许检索嵌入文档以进行进一步处理 应支持的文件格式:.net OpenOffice和MS Office格式转换为TIFF,.net,components,file-format,.net,Components,File Format,我正在寻找一套.NET组件(或转换解决方案),可以将源文档转换为一系列光栅图像(多页TIFF最好)。此外,它们必须支持使用嵌入文档(如Word文档中包含的文档),至少允许检索嵌入文档以进行进一步处理 应支持的文件格式: DOC和DOCX RTF XLS和XLSX PPT和PPTX ODT 消耗臭氧物质 ODP 很高兴有: PDF PDF/A HTML(最好是非基于IE的呈现-它将在服务器系统中使用) 味精(dtto) 我一直在研究Aspose的组件,这些组件似乎名声很好,但它们不支持Op
- DOC和DOCX
- RTF
- XLS和XLSX
- PPT和PPTX
- ODT
- 消耗臭氧物质
- ODP
- PDF/A
- HTML(最好是非基于IE的呈现-它将在服务器系统中使用)
- 味精(dtto)
- 没有未来不确定的单人商店或开源项目
- 应该是商业发行
- 必须提供商业优先支持
- 作为维护订阅的一部分,必须为将来的格式更新提供兼容性保证
许可模式无关紧要,不需要免版税。预期用途是用于单个定制开发项目。不知道任何现成的解决方案,但一种方法可能是将文档打印到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,但我认为以类似的方式了解其工作原理应该不会太难。不知道任何现成的解决方案,但一种方法可能是将文档打印到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,但我认为,以类似的方式找出它的工作原理应该不会太难。很高兴看到有人问一个问题,他们实际上更愿意为处理文档转换的软件库付费。每个人似乎都希望这个解决方案是免费的,所以这是一个受欢迎的变化。谢谢Ben:-)我不太愿意依赖开源或其他免费项目来构建一个可以保存TB数据、使用寿命超过10年的系统。Leadtools可以从PDF转换,也可以转换为您列出的许多版本,但我不确定另一种方式,值得一看,值得一想。很高兴看到有人问一个问题,他们实际上更愿意为处理文档转换的软件库付费。每个人似乎都希望这个解决方案是免费的,所以这是一个受欢迎的变化。谢谢Ben:-)我不太愿意依赖开源或其他免费项目来构建一个可以保存TB数据、使用寿命超过10年的系统。Leadtools可以从PDF转换,也可以转换为您列出的许多版本,但我不确定另一种方法是否值得一看一想。在任何类型的自动互操作中使用Office软件包本身都不是此服务器端部署的选项。您可以从.NET使用Open Office的命令行界面保存为PDF,然后用GhostScript转换成TIFF。@Ondrej:我想你是要设计某种文档管理/归档系统?如果您想100%确保TIFF完全包含您将文档打印到纸张上时得到的内容,您必须选择“打印到文件”路线。当然,这可以在没有互操作的情况下完成,但我几乎不相信没有原始的Office应用程序(至少,我从来没有听说过)就有值得信赖的解决方案。即使是Open Office,在嵌入文档时也无法正确显示MS Office文档。在任何类型的自动互操作中使用Office软件包本身都不是此服务器端部署的选项。您可以从.NET使用Open Office的命令行界面另存为PDF,然后用GhostScript转换成TIFF。@Ondrej:我想你是要设计某种文档管理/归档系统?如果您想100%确保TIFF完全包含您将文档打印到纸张上时得到的内容,您必须选择“打印到文件”路线。当然,这可以在没有互操作的情况下完成,但我几乎不相信没有原始的Office应用程序(至少,我从来没有听说过)就有值得信赖的解决方案。即使是Open Office,在嵌入文档时也存在正确显示MS Office文档的问题。