2012-05-17 4 views
1

У меня есть документ с текстом, который использует нестандартный шрифт. Он не встроен, а установлен на рассматриваемой машине. В Word 2010, когда я печатаю это в файл пост-скрипта при указании определенного драйвера принтера (HP Color LaserJet 2800 Series PS), этот шрифт становится встроенным (подмножеством) просто отлично. Это если я сделаю это из самого приложения Word.Замещенные шрифты и Word Automation

Если я попытаюсь сделать это программно, используя msword :: _ Document :: Printout и указав один и тот же драйвер принтера, этот шрифт будет заменен чем-то другим. Я знаю, что один и тот же драйвер принтера используется в обоих случаях. Файлы .ps, созданные для обоих методов, перечисляют имя драйвера принтера вверху. Есть ли какая-то причина, проходящая через автоматизацию таким образом, заменит шрифт, но через это приложение не будет?

CComVariant vIgnore; 
vIgnore.vt = VT_ERROR; 
vIgnore.scode = DISP_E_PARAMNOTFOUND; 

CComVariant vFalse = false; 
CComVariant vTrue = true; 
CComVariant vOutputFile(m_csTempOutputFile); 
CComVariant vOneCopy((int)1); 

... 
.... 

m_piApp->SetActivePrinter((LPCTSTR) csPrinterName); 

m_Doc.PrintOut(
     &vFalse,//Background, return control while printing? FALSE 
     &vFalse,//Append, append output to existing file? FALSE, overwrite file 
     &vIgnore,//Range, the page range 
     &vOutputFile,//OutputFileName, name of printtofile file 
     &vIgnore,//From, starting page (ignored) 
     &vIgnore,//To, ending page (ignored) 
     &vIgnore,//Item, what content to print, DEFAULT 
     &vOneCopy,//Copies, number of 
     &vIgnore,//Pages, page range 
     &vIgnore,//PageType, even only, odd only, etc 
     &vTrue,//PrintToFile, TRUE 
     &vIgnore,//Collate, 
     &vIgnore,//ActivePrinterMacGX, (mac feature only) 
     &vIgnore,//ManualDuplexPrint, 
     &vIgnore,//PrintZoomColumn, (printing several pages on one page) 
     &vIgnore,//PrintZoomRow, 
     &vIgnore,//PrintZoomPaperWidth, 
     &vIgnore);//PrintZoomPaperHeight, 
+0

и достаточно смешно, если вместо распечатки, я использую API SAVEAS, чтобы сохранить как PDF - снова шрифт подставляется. Если я делаю то же самое через само Слово, он становится встроенным. –

ответ

1

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

И действительно, на некоторых из моих систем после перезагрузки я видел, как шрифт вставлен. Зачем делать то же самое через приложение Word не нужно было перезагрузки, но автоматическая работа - я понятия не имею.

http://www.idautomation.com/kb/ttf-printing.html

+1

Если это проблема, возможно, вы можете избежать полной перезагрузки сервера, перезапустив только службу буферизации: 'net stop spooler', а затем' net start spooler'. –

+0

Это соответствует моему опыту - иногда требуется перезагрузка. Остановка и запуск службы спулера не повлияли на мое дело. – woddle

1

Используемый драйвер принтера имеет различные настройки, которые влияют на обработку шрифтов. Они контролируют ...

  • ... ли шрифт встроенный или нет ('загрузки шрифтов на принтер' или 'Использовать шрифты принтера') и
  • ... IF это заделан, то, как это делается ('как TrueType', 'Преобразовать в контуры', 'Использование подстановки таблицы' и т.д.)

Предостережения: Я не могу найти это прямо сейчас в реальной системе Windows, я цитирую эти моменты из памяти.

Теперь эти настройки драйвера принтера могут быть установлены администратором, что сделает их стандартными для всех пользователей.

Каждый пользователь, в свою очередь, мог бы изменить эти настройки в другом режиме.

Сейчас здесь идет моя теория:

  • , когда вы делаете тест из приложения Word, вы делаете это точно при входе в систему в качестве определенного пользователя и настройки пользователя применяются к Созданный PostScript.

  • , когда вы выполняете свой тест программно, вы можете быть в ситуации, когда этот процесс работает как другой, другой пользователь, у которого есть разные настройки.

Это, безусловно, стоит следовать этот трек, даже если это только, чтобы исключить эту возможность из ...

+0

Очень хорошее предложение. На самом деле я играл с опциями «скачать как мягкие шрифты» на самом драйвере, а havent повезло. Я недавно немного повезло с моей проблемой. См. Мой ответ. спасибо –

Смежные вопросы