Чем конвертировать word документы в pdf?
От: Аноним  
Дата: 17.01.11 13:31
Оценка:
Как и чем программно конвертировать Word в PDF. Конечно, независимость от нативных библиотек приветствуется.

Спасибо.
Re: Чем конвертировать word документы в pdf?
От: adontz Грузия http://adontz.wordpress.com/
Дата: 17.01.11 13:49
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

Aspose?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Чем конвертировать word документы в pdf?
От: ZmeyNet  
Дата: 17.01.11 13:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Как и чем программно конвертировать Word в PDF. Конечно, независимость от нативных библиотек приветствуется.


А>Спасибо.

например с помощью самого Word 2007+
пример — http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/ceecbdd9-b331-47f5-b2b3-43766902ac55
Re[2]: Чем конвертировать word документы в pdf?
От: Аноним  
Дата: 17.01.11 14:08
Оценка:
А>>Спасибо.
ZN>например с помощью самого Word 2007+
ZN>пример — http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/ceecbdd9-b331-47f5-b2b3-43766902ac55

Насколько я понимаю, здесь нужно использовать интероп на библиотеку Word. Я с инероп не так знаком, можно ли динамически runtime как то проверять, установлен ли ворд или без ворда и существующей ссылки на COM запуск приложения не возможен.
Re: Чем конвертировать word документы в pdf?
От: vecs Россия  
Дата: 17.01.11 14:12
Оценка:
Если не смущает требование иметь установленный MS Office 2007 или 2010,
то есть такой прием — описано как при помощи Word (библиотека AWordReport) генерировать отчеты в разных форматах, в т.ч.в PDF.
У Вас будет примерно такой код:
aWordReport1.LoadFromFile(@"Ваш .DOC или .DOCX файл"); //Загружаем Ваш файл в Word
//aWordReport1.Render(); //Render document - закомментили, т.к. не надо менять содержимое файла
//Сохраняем в .PDF:
object filename = @"c:\test.pdf";//Куда сохранять
object format = 17;//PDF
object missing = System.Reflection.Missing.Value;
object vFalse = false;
object vTrue = true;
aWordReport1.WordDocument.SaveAs(ref filename, ref format, ref missing, ref missing, ref vFalse, ref missing, ref missing, ref missing, ref missing, ref vTrue, ref missing); //Сохраняем .PDF

В грядущей версии AWordReport код более читабельный:
aWordReport1.LoadFromFile(@"Ваш .DOC или .DOCX файл"); //Загружаем Ваш файл в Word
//aWordReport1.Render(); //Render document - закомментили, т.к. не надо менять содержимое файла
aWordReport1.SaveToFile(@"c:\test.pdf", wffPDF); //Сохраняем .PDF


Можно также реализовать этот подход самостоятельно без сторонних библиотек просто через COM Interop..
Re[3]: Чем конвертировать word документы в pdf?
От: Andrey_spb Россия  
Дата: 17.01.11 14:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>Спасибо.

ZN>>например с помощью самого Word 2007+
ZN>>пример — http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/ceecbdd9-b331-47f5-b2b3-43766902ac55

А>Насколько я понимаю, здесь нужно использовать интероп на библиотеку Word. Я с инероп не так знаком, можно ли динамически runtime как то проверять, установлен ли ворд или без ворда и существующей ссылки на COM запуск приложения не возможен.


Если необходимая библиотека отсутвует будет генериться исключение, путем его обработки можно выявить отсутствие требуемого компонента.
Re[2]: Чем конвертировать word документы в pdf?
От: Аноним  
Дата: 17.01.11 14:49
Оценка:
ZN>например с помощью самого Word 2007+
ZN>пример — http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/ceecbdd9-b331-47f5-b2b3-43766902ac55

Только что с шефом обсудил. 2007+ неприемлемое ограничение. Нужны рание версии. Хотя бы 2003
Re: Чем конвертировать word документы в pdf?
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 17.01.11 18:14
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Как и чем программно конвертировать Word в PDF. Конечно, независимость от нативных библиотек приветствуется.

Посмотрите тему: Серверных разбор офисных документов
Автор: rsn81
Дата: 23.11.10
.
Re: Чем конвертировать word документы в pdf?
От: Аноним  
Дата: 18.01.11 12:31
Оценка:
Привет всем еще раз. Решил использовать пока (вероятно на первых этапах) MS Office, как это описано здесь:
http://social.msdn.microsoft.com/Forums/en/innovateonoffice/thread/ceecbdd9-b331-47f5-b2b3-43766902ac55

Теперь мне нежно добиться стабильного поведения в тех случаях, если нет подходящей версии или вовсе нет офиса.
Попробовал запустить на машине 2003 офисом.
Код доходит до "// Export it in the specified format.", т.е. документ окрывается, но на коневертации падает. Причем показывается системное сообщение "программа выполнила недопустимую операцию", а не окно из блока cath (System.Windows.Forms.MessageBox.Show(ex.Message). Т.е. блок catch не выполняется.
После этого приложение закрывается, и код блока finally остается не выполенным. Word остается висеть в процессах
После повторного запуска, показывается Word, ругается, что файл используется.

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

Пробовал подгружать сборку в отдельный AppDomain,

wordDomain = AppDomain.CreateDomain("WordDomain");
Microsoft.Office.Interop.Word.Application wordApp;
Type worAddType = typeof(Microsoft.Office.Interop.Word.Application);

wordDomain = AppDomain.CreateDomain ("X");
Object obj = wordDomain.CreateInstanceFromAndUnwrap(worAddType.Assembly.Location, "Microsoft.Office.Interop.Word.Application" );
wordApp = ...


Но не получается создать инстанцию для Application, ведь это интерфейс, а ApplicationClass чего-то не создается, хоть обычным спосом (new), хоть через CreateInstanceFrom.

Что делать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.