Få varningar för teckensnittsersättning vid rendering av Excel fil
Ibland, när man renderar Microsoft Excel-filer till PDF, gör Aspose.Cells teckensnittsersättningar. Aspose.Cells tillhandahåller en funktion som låter utvecklare veta att ett visst teckensnitt har ersatts genom att avfyra en varning. Detta är en användbar funktion som kan hjälpa dig att identifiera varför Aspose.Cells renderade PDF är annorlunda än den faktiska Excel-filen och du kan sedan vidta lämpliga åtgärder. Till exempel kan du installera de saknade teckensnitten så att renderingresultaten ser likadana ut.
Om du vill få varningar för teckensnittsersättning vid rendering av en Excel-fil till PDF implementerar du IWarningCallback-gränssnittet och anger PdfSaveOptions.setWarningCallback() metoden med ditt implementerade gränssnitt.
Skärmdumpen nedan visar den källa Excel-fil som används i följande kod. Den har lite text i cellerna A6 och A7 i teckensnitt som inte renderas väl av Microsoft Excel.
Aspose.Cells kommer att ersätta teckensnitten i cellerna A6 och A7 med lämpliga teckensnitt, som visas nedan.
Hämta källfilen och output-PDF
Du kan hämta den käll-Excel-filen och output-PDF från följande länkar
Följande kod implementerar IWarningCallback och ställer in PdfSaveOptions.setWarningCallback() metoden med det implementerade gränssnittet. Nu, när något teckensnitt kommer att ersättas i någon cell, kommer Aspose.Cells att avfyra en varning inuti WarningCallback.warning() metoden.
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);
}
Varningsutdata
Efter att ha konverterat källfilen, utdata följande varningar till felsökningskonsolen:
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 ].