Excelからプリンタへ出力時、出力するPCにはインストールされていない
フォントを使用しています。
そこでフォントファイルを指定してプリンタ出力を実施しようとしています。
var _fontdir = System.AppDomain.CurrentDomain.BaseDirectory + "font";
string[] _dir = new string[2]{ _fontdir, "C:\\WINDOWS\\FONTS"};
Aspose.Cells.FontConfigs.SetFontFolder(_fontdir, false);
fontConfigs.SetFontFolder(_fontdir, false);
opts.FontConfigs = fontConfigs;
var _workbook = new Aspose.Cells.Workbook(”<入力ファイルフルパス>”, opts);
var pd = new PrintDocument();
pd.PrinterSettings.PrinterName = ”<プリンタ名>”;
System.Windows.Forms.PrintDialog pDialog = new System.Windows.Forms.PrintDialog();
pDialog.Document = pd;
//印刷の選択ダイアログを表示する
if (pDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
return (false, "印刷がキャンセルされました");
}
pd = pDialog.Document;
Aspose.Cells.Rendering.WorkbookRender _workbookrender = null;
var io = new Aspose.Cells.Rendering.ImageOrPrintOptions();
var pe = new PrintPageEventHandler((object sender, System.Drawing.Printing.PrintPageEventArgs e) =>
{
int currentIndex = _workbookrender.CustomPrint(true, e);
if (currentIndex != _workbookrender.PageCount)
e.HasMorePages = true;
else
e.HasMorePages = false;
});
var qe = new QueryPageSettingsEventHandler((object sender, System.Drawing.Printing.QueryPageSettingsEventArgs e) =>
{
e.PageSettings.PaperSource = pd.DefaultPageSettings.PaperSource;
e.PageSettings.PaperSize = pd.DefaultPageSettings.PaperSize;
e.PageSettings.Margins = pd.DefaultPageSettings.Margins;
e.PageSettings.PrinterResolution = pd.DefaultPageSettings.PrinterResolution;
e.PageSettings.Landscape = pd.DefaultPageSettings.Landscape;
e.PageSettings.Color = pd.DefaultPageSettings.Color;
}
});
io.CustomPrintPageEventHandler += new PrintPageEventHandler(pe);
io.CustomQueryPageSettingsEventHandler += new QueryPageSettingsEventHandler(qe);
_workbookrender = new Aspose.Cells.Rendering.WorkbookRender(_workbook, io);
if (_workbookrender.PageCount > 0)
{
_workbookrender.ToPrinter(pd.PrinterSettings);
}
上記を実行後し印刷を行うとオートシェイプのテキストは正しいフォントが適用されません。
(セルに直接テキストを書いているものは正常)
Windowsにフォントをインストールすると正常表示されますが
インストールせずに正常表示になるようにするにはどのようにすべきでしょうか。