Установка Office 2007 и использование библиотеки объектов Word 12 - это, безусловно, вариант, который я бы выбрал (и сделал это для некоторых моих собственных проектов).
Если вы не хотите устанавливать Word на рабочий веб-сервер, почему бы не установить его на дополнительный сервер. Вы можете заставить этот второй сервер взаимодействовать с первым (используя веб-сервис или что-то в этом роде) - он может запросить следующий документ Word, который необходимо экспортировать, выполнить преобразование и затем вернуть данные PDF.
Дайте мне знать, если вы хотите C # пример автоматизации Word, который выполняет это преобразование (это очень тривиально).
Адриан
Вот мой код, опубликованный для Джейсона. Это работает с Word 2007. Вам необходимо скачать и установить экспортер PDF с веб-сайта Office:
using Microsoft.Office.Interop.Word;
...
object _read_only = false;
object _visible = true;
object _false = false;
object _true = true;
object _dynamic = 2;
object _missing = System.Reflection.Missing.Value;
object _htmlFormat = 8;
object _pdfFormat = 17;
object _xpsFormat = 18;
object fileName = "C:\\Test.docx";
ApplicationClass ac = new ApplicationClass();
//ac.Visible = true; // Uncomment to see Word as it opens and converts the document
//ac.Activate();
Document d = ac.Documents.Open(ref fileName, ref _missing, ref _true, ref _read_only, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _visible, ref _missing, ref _missing, ref _missing, ref _missing);
object newFileName = ((string)fileName).Substring(0, ((string)fileName).LastIndexOf(".")) + ".pdf";
d.SaveAs(ref newFileName, ref _pdfFormat, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing, ref _missing);
d.Close(ref _false, ref _missing, ref _missing);
ac.Quit(ref _false, ref _missing, ref _missing);
ac = null;
Итак, Soul_Master, вы говорите, что вы не хотите использовать взаимодействие (хотя вы не говорите, почему, что мне было бы интересно узнать), вы не хотите платить за рекламу экспортер, а вы хотите идеальных результатов?
Я не могу вам помочь, боюсь. Interop даст вам отличные результаты, каждый раз, и у вас уже есть программное обеспечение. Если вы этим не воспользуетесь, вам придется принести жертву - либо за цену, либо за качество.