Excel 转成 PDF 文本缺失

worksheet.zip (1.3 MB)
Excel 转PDF时有部分文字缺失
image.png (61.9 KB)
image.jpg (149.5 KB)

@cromwell1994

Cause

在将Excel文件转换为PDF时,文本缺失通常是由于字体替换或缺少某些字体导致的。这种情况可能会影响PDF的视觉效果,尤其是当Excel中使用了特定的自定义字体,而这些字体在PDF生成过程中无法正确嵌入或替换时。

Solution

为了确保在转换过程中不会丢失文本,您可以使用PdfSaveOptions类中的setWarningCallback方法来捕获字体替换的警告。这将帮助您识别哪些字体被替换,并采取相应措施,例如安装缺失的字体。

Code

以下是一个示例代码,展示如何实现字体替换警告的回调:

public class WarningCallback implements IWarningCallback {
    @Override
    public void warning(WarningInfo info) {
        if(info.getWarningType() == WarningType.FONT_SUBSTITUTION) {
            System.out.println("WARNING INFO: " + info.getDescription());
        }
    }
}

public static void convertExcelToPdf() throws Exception {
    Workbook workbook = new Workbook("source.xlsx");
    PdfSaveOptions options = new PdfSaveOptions();
    options.setWarningCallback(new WarningCallback());
    workbook.save("output.pdf", options);
}

Next Steps

  1. 确保在Excel文件中使用的所有字体都已安装在系统中。
  2. 运行上述代码并检查控制台输出,以查看是否有字体替换的警告。
  3. 根据警告信息采取必要的措施,例如安装缺失的字体或调整Excel文件中的字体设置。

如果您有任何其他问题或需要进一步的帮助,请随时告诉我,我将乐意提供支持!

@cromwell1994
通过使用样例文件和以下样例代码在最新版本v25.7上进行测试,我们可以复现问题。当转换文件到pdf时,图形丢失了部分文本。

Workbook workbook = new Workbook(filePath + "worksheet.xlsx");
PdfSaveOptions options = new PdfSaveOptions();
workbook.Save(filePath + "out_net.pdf", options);

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号: CELLSNET-58741

@cromwell1994
您的问题(CELLSNET-58741)已得到解决,修复后的功能将随版本25.8一起发布。
这是我使用最新功能生成的结果文件:
CELLSNET-58741.pdf (1.2 MB)