非標準フォントを使用した単語文書があります。埋め込まれていませんが、問題のマシンにインストールされています。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,