Получение предупреждений о замене шрифта при рендеринге файла 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 ].