我有一个使用非标准字体的 word 文档。它不是嵌入式的,而是安装在有问题的机器上。在 Word 2010 中,当我在指定某个打印机驱动程序(HP Color LaserJet 2800 系列 PS)的同时将其打印到后期脚本文件时,该字体被嵌入(子集)就好了。那就是我从 Word 应用程序本身执行此操作。
如果我尝试使用 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,