PdfSaveOptionsおよびImageOrPrintOptionsのDefaultFontプロパティを設定し、優先度を持たせます。

可能な使用シナリオ

DefaultFont プロパティを PdfSaveOptions および ImageOrPrintOptions に設定する際、インストールされていないフォントを持つワークブック内のすべてのテキストにその DefaultFont を設定することが期待されます。

通常、PDFや画像形式に保存する際、Aspose.Cellsはまずワークブックのデフォルトフォント(つまり、Workbook.DefaultStyle.Font)を設定しようとします。ワークブックのデフォルトフォントでもテキストを適切に表示/レンダリングできない場合は、PdfSaveOptions/ImageOrPrintOptionsDefaultFont 属性で指定されたフォントでレンダリングを試みます。

あなたの期待に応えるために、PdfSaveOptions/ImageOrPrintOptions には “CheckWorkbookDefaultFont” というブール型のプロパティがあります。これをfalseに設定すると、ワークブックのデフォルトフォントを試みないようにすることができます。または、PdfSaveOptions/ImageOrPrintOptionsDefaultFont 設定が優先されるようにすることができます。

PdfSaveOptions/ImageOrPrintOptionsのDefaultFontプロパティを設定します

以下のサンプルコードは、Excelファイルを開きます。 A1セル(最初のワークシートの)には、“クリスマス・タイム文字"というテキストが設定されています。フォント名は、マシンにインストールされていない"Christmas Time Personal Use"です。DefaultFont属性を PdfSaveOptions/ImageOrPrintOptions に “Times New Roman” に設定します。また、CheckWorkbookDefaultFont ブール型プロパティを “false” に設定することで、A1セルのテキストが “Times New Roman” フォントでレンダリングされ、ワークブックのデフォルトフォント(この場合は"Calibri”)を使用しないことを保証します。コードは最初のワークシートをPNGおよびTIFFイメージ形式にレンダリングし、最終的にPDFファイル形式にレンダリングします。

これは、例コードで使用される テンプレートファイル のスクリーンショットです。

todo:image_alt_text

これは、DefaultFont プロパティを “Times New Roman” に設定した後の出力PNGイメージです。

todo:image_alt_text

“Times New Roman"をImageOrPrintOptions.DefaultFontプロパティに設定した後のTIFFイメージを参照してください。

“Times New Roman"をPdfSaveOptions.DefaultFont プロパティに設定した後のPDFファイルを参照してください。

サンプルコード

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
String srcDir = Utils.Get_SourceDirectory();
String outDir = Utils.Get_OutputDirectory();
// Open an Excel file.
Workbook workbook = new Workbook(
srcDir + "sampleSetDefaultFontPropertyOfPdfSaveOptionsAndImageOrPrintOptions.xlsx");
// Rendering to PNG file format while setting the
// CheckWorkbookDefaultFont attribute to false.
// So, "Times New Roman" font would be used for any missing (not
// installed) font in the workbook.
ImageOrPrintOptions imgOpt = new ImageOrPrintOptions();
imgOpt.setImageType(ImageType.PNG);
imgOpt.setCheckWorkbookDefaultFont(false);
imgOpt.setDefaultFont("Times New Roman");
SheetRender sr = new SheetRender(workbook.getWorksheets().get(0), imgOpt);
sr.toImage(0, outDir + "outputSetDefaultFontProperty_ImagePNG.png");
// Rendering to TIFF file format while setting the
// CheckWorkbookDefaultFont attribute to false.
// So, "Times New Roman" font would be used for any missing (not
// installed) font in the workbook.
imgOpt.setImageType(ImageType.TIFF);
WorkbookRender wr = new WorkbookRender(workbook, imgOpt);
wr.toImage(outDir + "outputSetDefaultFontProperty_ImageTIFF.tiff");
// Rendering to PDF file format while setting the
// CheckWorkbookDefaultFont attribute to false.
// So, "Times New Roman" font would be used for any missing (not
// installed) font in the workbook.
PdfSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.setDefaultFont("Times New Roman");
saveOptions.setCheckWorkbookDefaultFont(false);
workbook.save(outDir + "outputSetDefaultFontProperty_PDF.pdf", saveOptions);