呈现 Excel 文件时获取字体替换警告

下面的屏幕截图显示了以下代码中使用的源 Excel 文件。它在单元格 A6 和 A7 中有一些文本的字体不能被 Microsoft Excel 很好地呈现。

待办事项:图片_替代_文本

Aspose.Cells 会将单元格 A6 和 A7 中的字体替换为合适的字体,如下所示。

待办事项:图片_替代_文本

下载源文件和输出 PDF

您可以从以下链接下载源 Excel 文件和输出 PDF

下面的代码实现了警告回调并设置PdfSaveOptions.setWarningCallback()方法与实现的接口。现在,无论何时在任何单元格中替换任何字体,Aspose.Cells 都会在 WarningCallback.warning() 方法中发出警告。

 public class WarningCallback implements IWarningCallback {

    @Override

    public void warning(WarningInfo info) {

        if(info.getWarningType() == WarningType.FONT_SUBSTITUTION)

        {

            System.out.println("WARNING INFO: " + info.getDescription());

        }

    }

}

//........

//........

static void Run() throws Exception

{

    Workbook workbook = new Workbook("source.xlsx");

    PdfSaveOptions options = new PdfSaveOptions();

    options.setWarningCallback(new WarningCallback());

    workbook.save("output.pdf", options);

}

警告输出

转换源文件后,调试控制台输出以下警告:

WARNING INFO: Font substitution: Font [ Athene Logos; Regular ]has been substituted in Cell [ A6 ]in Sheet [ Sheet1 ].

WARNING INFO: Font substitution: Font [ B Traffic; Regular ]has been substituted in Cell [ A7 ]in Sheet [ Sheet1 ].