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
RadFixedDocument
Dim
fileFormatProvider
As
Spreadsheet.FormatProviders.IWorkbookFormatProvider =
New
Spreadsheet.FormatProviders.OpenXml.Xlsx.XlsxFormatProvider()
Dim
workbook
As
Spreadsheet.Model.Workbook
Using stream
workbook = fileFormatProvider.Import(stream)
End
Using
Dim
formatProvider
As
New
Spreadsheet.FormatProviders.Pdf.PdfFormatProvider()
document = formatProvider.ExportToFixedDocument(workbook)
Dim
page
As
RadFixedPage = document.Pages(0)
Dim
factory2
As
New
ThumbnailFactory
Dim
size2 =
New
Size(1200, 1800)
'This line throws an error
Dim
imageSrc
As
ImageSource = factory2.CreateThumbnail(page, size2)
DOCX
Dim
stream
As
FileStream = File.OpenRead(inputPath)
Dim
document
As
RadFixedDocument
Dim
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 conversion
Dim
page
As
RadFixedPage = document.Pages(0)
Dim
factory2
As
New
ThumbnailFactory
Dim
size2 =
New
Size(1200, 1800)
'This line throws an error
Dim
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 RadFlowDocument
Dim
provider
As
New
Fixed.FormatProviders.Pdf.PdfFormatProvider()
Using output
As
Stream = File.OpenWrite(inputPath &
".pdf"
)
provider.Export(document, output)
End
Using
Dim
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
ThumbnailFactory
Dim
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