Excelファイルをレンダリングする際にフォントの置換ワーニングを取得
Microsoft ExcelファイルをPDFにレンダリングする際に、Aspose.Cellsがフォントを置換することがあります。Aspose.Cellsには、特定のフォントが置換されたことを開発者に伝える機能が用意されています。これは便利な機能であり、Aspose.CellsによるPDFのレンダリング結果が実際のExcelファイルと異なる理由を特定して適切な対策を取るのに役立ちます。たとえば、不足しているフォントをインストールして、レンダリング結果が同じに見えるようにすることができます。
ExcelファイルをPDFにレンダリングする際にフォント置換のワーニングを取得したい場合は、IWarningCallbackインタフェースを実装し、PdfSaveOptions.setWarningCallback()メソッドを実装したインタフェースに設定します。
以下のスクリーンショットは、次のコードで使用されるソースExcelファイルを示しています。A6セルとA7セルには、Microsoft Excelによって適切にレンダリングされないフォントのテキストが含まれています。
Aspose.Cellsは、セルA6とA7のフォントを適切なフォントで置き換えます。
ソースファイルと出力PDFのダウンロード
以下のリンクからソースExcelファイルと出力PDFをダウンロードできます
IWarningCallbackを実装して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 ].