Получить предупреждения о замене шрифта при рендеринге файла Excel
Иногда, при рендеринге файлов Microsoft Excel в PDF, Aspose.Cells заменяет шрифты. Aspose.Cells предоставляет функцию, которая позволяет разработчикам узнать, что определенный шрифт был заменен, и выдает предупреждение. Это полезная функция, которая может помочь вам определить, почему PDF-файл, полученный с помощью Aspose.Cells, отличается от фактического файла 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 ].