worksheet.zip (1.3 MB)
Excel 转PDF时有部分文字缺失
image.png (61.9 KB)
image.jpg (149.5 KB)
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
- 确保在Excel文件中使用的所有字体都已安装在系统中。
- 运行上述代码并检查控制台输出,以查看是否有字体替换的警告。
- 根据警告信息采取必要的措施,例如安装缺失的字体或调整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)