We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Aspose Cells for .Net Excel -> ToPrinter出力時の問題

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にフォントをインストールすると正常表示されますが
インストールせずに正常表示になるようにするにはどのようにすべきでしょうか。

@HiroA,

Thanks for the sample code segment and details.

Could you please share the output PDF and emf file after using the following code:
e.g
Sample code:

            FontConfigs.SetFontFolder(yourFontDir, false);
            Workbook wb = new Workbook(srcFile);

            wb.Save("output.pdf");

            ImageOrPrintOptions imgOpt = new ImageOrPrintOptions();
            imgOpt.ImageType = ImageType.Emf;

            WorkbookRender wr = new WorkbookRender(wb, imgOpt);

            //output the page that has issue(font is not correctly applied)
            wr.ToImage(problemPageIndex, "output.emf");

Moreover, please share your source file, used font files (.ttf files) and runnable sample project to show the issue, we will check it soon.

PS. please zip your project and files prior attaching.

フォントは著作権があるので送信できません。
フォントをインストールしている環境とインストールしていない環境で2つで実行してみました。
フォントフォルダにあるファイルはどちらも同じものを置いています。
ConsoleApp1.zip (4.9 MB)
NG.zip (5.0 MB)

Version 19.12でも試しましたがNGでした。

@HiroA,

サンプルファイルとソリューションを提供していただきありがとうございます。

元のサンプルコンソールアプリケーション(スタンドアロン)を提供して、シームレスに実行し、最終的に問題を再現できるようにします。さらに、ワークシートを画像およびPDFファイル形式または印刷機能に変換するには、Aspose.CellsがTrue Typeフォント(ワークブックで使用)を使用してタスクを正しく実行する必要があります。とにかく、提供されたソースファイルと出力ファイルに基づいて、ID「CELLSNET-47063」の調査チケットを記録しました。できるだけ早く調査してください。

更新後にお知らせします。

@HiroA,
これは、問題を修正したことをお知らせするためです(以前は「CELLSNET-47063」として記録されていました)。 QAを実行し、他の機能強化と修正を組み込んだ後、修正バージョンをすぐに提供します。

@HiroA,
最新バージョン/修正をお試しください:Aspose.Cells for .NET v19.12.1:
Aspose.Cells19.12.1 For .Net4.0.Zip (5.0 MB)
Aspose.Cells19.12.1 For .Net2_AuthenticodeSigned.Zip (5.0 MB)

あなたの問題はそれで修正されるべきです。

ご意見をお聞かせください。

簡単なテストでは修正されていることが確認できました。
ありがとうございました。

他のパターンのテストを別途実施しています。
結果は後日連絡いたします。

@HiroA,

時間をかけて修正/バージョンを評価してください。新しい修正プログラムがテストケースに合格することを願っています。

The issues you have found earlier (filed as CELLSNET-47063) have been fixed in Aspose.Cells for .NET v20.1. This message was posted using Bugs notification tool by Amjad_Sahi