Преобразование форматов OpenOffice и MS Office в TIFF - PullRequest
2 голосов
/ 17 ноября 2010

Я ищу набор компонентов .NET (или решение для преобразования), которые позволяют конвертировать исходный документ в серию растровых изображений (лучше всего использовать многостраничный TIFF).Кроме того, они должны поддерживать работу со встроенными документами (например, документами, включенными в документ Word), по крайней мере, позволяя извлекать встроенный документ для дальнейшей обработки.

Форматы файлов, которые должны поддерживаться:

  • DOC и DOCX
  • RTF
  • XLS и XLSX
  • PPT и PPTX
  • ODT
  • ODS
  • ODP

Приятно иметь:

  • PDF
  • PDF / A
  • HTML (желательно рендеринг без IE - этобудет использоваться в серверной системе)
  • MSG (dtto)

Я изучал компоненты Aspose, которые, кажется, имеют солидную репутацию, но они неподдержка форматов OpenOffice.

У меня довольно жесткие требования к поставщику:

  • ни один магазин или проекты с открытым исходным кодом с неопределенным будущим
  • не должен быть коммерческимпредложение
  • должно обеспечивать коммерческую приоритетную поддержку
  • должно иметь гарантию совместимостидля будущих обновлений формата в рамках подписки на обслуживание

Режим лицензирования не имеет большого значения, не обязательно должен быть бесплатным.Предполагаемое использование для одного индивидуального проекта разработки.

1 Ответ

0 голосов
/ 17 ноября 2010

Не знаю каких-либо готовых решений, но одним из подходов может быть печать документов в файлы postscript и использование Ghostscript для преобразования их в TIFF.Я почти уверен, что это можно сделать программно для большинства перечисленных вами программ (вам, вероятно, понадобятся разные решения для MS Office и Open Office).Например, вот фрагмент VBA, который мы использовали в MS Powerpoint для печати одной страницы в файл postscript с использованием драйвера принтера Ghostscript:

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

(Использование интерфейса COM приложений MS Office через .NET lookочень похож на эту подпрограмму VBA.) Я не привык к OpenOffice API, но я думаю, что не должно быть слишком сложно выяснить, как это работает аналогичным образом.

...