Hi, Im trying to convert docx/xlsx documents to jpg images. The only way I know of how to do this is via the WPF telerik. By converting a Docx/XLSX to PDF then PDF to jpg image. If there is any other way please let me know. This is what I'm currently doing:
XLSX
Dim stream As FileStream = File.OpenRead(inputPath)Dim document As RadFixedDocumentDim fileFormatProvider As Spreadsheet.FormatProviders.IWorkbookFormatProvider = New Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider()Dim workbook As Spreadsheet.Model.WorkbookUsing stream workbook = fileFormatProvider.Import(stream)End UsingDim formatProvider As New Spreadsheet.FormatProviders.Pdf.PdfFormatProvider()document = formatProvider.ExportToFixedDocument(workbook)Dim page As RadFixedPage = document.Pages(0)Dim factory2 As New ThumbnailFactoryDim size2 = New Size(1200, 1800)'This line throws an errorDim imageSrc As ImageSource = factory2.CreateThumbnail(page, size2)
DOCX
Dim stream As FileStream = File.OpenRead(inputPath)Dim document As RadFixedDocumentDim docxformatprovider As New Flow.FormatProviders.Docx.DocxFormatProvider()Dim docxdocument As Flow.Model.RadFlowDocument = docxformatprovider.Import(stream)Dim formatProvider As New Flow.FormatProviders.Pdf.PdfFormatProvider()document = formatProvider.ExportToFixedDocument(docxdocument)'To image conversionDim page As RadFixedPage = document.Pages(0)Dim factory2 As New ThumbnailFactoryDim size2 = New Size(1200, 1800)'This line throws an errorDim imageSrc As ImageSource = factory2.CreateThumbnail(page, size2)
The code is a little bit different, the xlsx code contains Using Stream but makeing no difference.
The last line throws an error: An unhandled exception of type 'System.NullReferenceException' occurred in Telerik.Windows.Controls.FixedDocumentViewers.dll
But if I save the Flowdocument as a PDF, then open it again it wont be a problem to create an imageSrc with the fixedpage, this is of course not a desirable situation:
'Here I already converted the document to a RadFlowDocumentDim provider As New Fixed.FormatProviders.Pdf.PdfFormatProvider()Using output As Stream = File.OpenWrite(inputPath & ".pdf") provider.Export(document, output)End UsingDim stream2 As FileStream = File.OpenRead(inputPath & ".pdf")Dim pdf As New Fixed.FormatProviders.Pdf.PdfFormatProvider(stream2, Fixed.FormatProviders.FormatProviderSettings.ReadOnDemand)document = pdf.Import()Dim page As RadFixedPage = document.Pages(0)Dim factory2 As New ThumbnailFactoryDim size2 = New Size(1200, 1800)'No problem, image can be created.Dim imageSrc As ImageSource = factory2.CreateThumbnail(page, size2)This only works for the DOCX file. The XLSX can't be saved from the workbook file.
I hope you can help me.
These are the guides I used:
http://docs.telerik.com/devtools/document-processing/libraries/radwordsprocessing/formats-and-conversion/pdf/pdfformatprovider.html
http://docs.telerik.com/devtools/document-processing/libraries/radwordsprocessing/formats-and-conversion/docx/docxformatprovider.html
http://docs.telerik.com/devtools/document-processing/libraries/radspreadprocessing/formats-and-conversion/xlsx/xlsxformatprovider.html
http://docs.telerik.com/devtools/document-processing/libraries/radspreadprocessing/formats-and-conversion/pdf/pdfformatprovider.html
http://docs.telerik.com/devtools/document-processing/libraries/radpdfprocessing/formats-and-conversion/pdf/pdfformatprovider.html
http://www.telerik.com/forums/convert-pdf-to-jpg
