Ошибки в службе конвертера DOCX в PDF
Пишу программу на с#, в которой нужно сконвертировать файл docx в pdf. Использовал для этого два способа:
- Открыть в Word`е и сохранить как pdf (Microsoft.Office.Interop.Word).
- Использовал библиотеку FreeSpire.Office.
Программа должна работать как служба Windows. Перед этим я тестировал код в консольном приложении. Проблема заключается в том, что при переносе кода в службу, при попытке сконвертировать файл из docx в pdf, используя Word, служба падала на моменте сохранения pdf файла, оставались висеть процессы Word`а и принтера Pdf. Сам pdf файл не появлялся. При использовании FreeSpire.Office возникла проблема с шрифтом Code128.ttf. В системе, где работает программа он есть. Но в выходном документе в pdf файле штрихкод не распознан и вместо него странные символы. Проблемы появляются только при запуске службы. Этот же код в консольном приложении работает без проблем.
Код работы с Word:
Word.Application application = new Word.Application();
application.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
Word.Document document = application.Documents.Open(Properties.Settings.Default.temp_docx + fileName);
document.ExportAsFixedFormat(filePdfName, Word.WdExportFormat.wdExportFormatPDF);
document.Close(Word.WdSaveOptions.wdDoNotSaveChanges);
application.Quit();
Код работы с FreeSpire.Office
Document document = new Document();
document.LoadFromFile(Properties.Settings.Default.temp_docx + fileName);
document.SaveToFile(filePdfName, FileFormat.PDF);
Может проблема быть связана с переносом кода в службу? И как её решить?
Ответы (1 шт):
При работе с библиотекой FreeSpire.Office и работы службы проблема заключалась в доступности шрифта Code128.ttf. Нужно было запустить Total Commander от имени администратора, щёлкнуть по шрифту правой кнопкой мыши и выбрать Установить для всех пользователей (как администратор). После этого служба начала конвертировать файлы с правильными штрихкодами.