2015-06-25 1 views
1

Я создал файл с использованием Open Xml, и мне нужно отправить его в виде вложения в электронном письме с pdf-форматом , но я не могу сохранить физический pdf или текстовый файл на диске, потому что я разрабатываю свое приложение в облачной среде (CRM online).Преобразование файла Word (DOCX) в PDF в C# в облачной среде

Обнаружено, что только путь «Aspose Word .Net». http://www.aspose.com/docs/display/wordsnet/How+to++Convert+a+Document+to+a+Byte+Array Но это слишком дорого.

Тогда я нашел решение для преобразования слова в html, а затем конвертировать html в pdf. Но на моем слове есть картина. И я не могу решить проблему.

+1

Многие библиотеки, такие как «Microsoft.Office.Interop.Word», должны сохранять физический файл на диск. Поэтому преобразование байтового массива непросто. – JohnnyLiao

ответ

3

Самое точное преобразование из DOCX в PDF будет через Word. Для этого лучше всего настроить сервер с OWAS (Office Web Apps Server) и сделать это через него.

Вам нужно настроить WOPI конечную точку на сервере приложений и по телефону:

/wv/WordViewer/request.pdf?WOPISrc={WopiUrl}&type=downloadpdf

ИЛИ

/wv/WordViewer/request.pdf?WOPISrc={WopiUrl}&type=printpdf

В качестве альтернативы вы можете попробовать и сделать это с помощью OneDrive и Word Online, но вам нужно будет разработать параметры Word Online, а также разрешить ли это в Ts & Cs.

+0

Я не могу настроить сервер.Word Online может быть хорошим решением. Хотя это не бесплатно. – JohnnyLiao

+0

Word Online является бесплатным. – pmccloghrylaing

1

Вы можете попробовать Gnostice XtremeDocumentStudio .NET.

Преобразование из DOCX в PDF Использование XtremeDocumentStudio .NET http://www.gnostice.com/goto.asp?id=24900&t=convert_docx_to_pdf_using_xdoc.net

В опубликованной статье, преобразование было продемонстрировано для сохранения физического файла. Вы можете использовать метод documentConverter.ConvertToStream для преобразования документа в поток, как показано ниже в фрагменте кода.

DocumentConverter documentConverter = new DocumentConverter(); 
// input can be a FilePath, Stream, list of FilePaths or list of Streams 
Object input = "InputDocument.docx"; 
string outputFileFormat = "pdf"; 
ConversionMode conversionMode = ConversionMode.ConvertToSeperateFiles; 
List<Stream> outputStreams = documentConverter.ConvertToStream(input, outputFileFormat, conversionMode); 

Отказ от ответственности: Я работаю для гностиков.