Ошибки в службе конвертера DOCX в PDF

Пишу программу на с#, в которой нужно сконвертировать файл docx в pdf. Использовал для этого два способа:

  1. Открыть в Word`е и сохранить как pdf (Microsoft.Office.Interop.Word).
  2. Использовал библиотеку 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 шт):

Автор решения: Support Fito

При работе с библиотекой FreeSpire.Office и работы службы проблема заключалась в доступности шрифта Code128.ttf. Нужно было запустить Total Commander от имени администратора, щёлкнуть по шрифту правой кнопкой мыши и выбрать Установить для всех пользователей (как администратор). После этого служба начала конвертировать файлы с правильными штрихкодами.

→ Ссылка