文本框中文本设置为单倍行距,输出pdf,显示结果与EXCEL不一致,见附件示例文件,谢谢!
单倍行距测试.zip (92.4 KB)
企业微信截图_17651674036047.png (214.3 KB)
public static void outputpdf()
{
Workbook workbook = new Workbook("D:\\单倍行距测试.xlsx");
workbook.Save("D:\\单倍行距测试.pdf");
}
@lingtian
您遇到的文本框行距在 Excel 与 PDF 之间不一致,是 Aspose.Cells 在渲染 Shape(文本框)时的已知回归问题。
- 该问题在 8.9.0 / 8.9.0.5 中仍可复现,表现为
CalculateTextSize() 在处理含换行符的文本时返回默认高度(与 8.6.2 的正常行为不同)【论坛帖子】。
为进一步定位并确认是否已在最新版本中修复,请提供以下信息:
- Aspose.Cells .NET 版本(完整版本号,例如 24.9.0)
- 目标平台:.NET Framework / .NET Core / .NET 5+,以及运行时版本(如 4.8、6.0)
- 操作系统(Windows 10、Server 2019 等)
- 最小复现文件(您已上传的
单倍行距测试.xlsx),请确认文件中仅包含一个文本框,且文本设置为单倍行距。
- 如有可能,请提供 完整的堆栈跟踪或日志(打开
WorkbookSettings.EnableLogging = true 并保存日志),以便我们查看内部计算细节。
后续建议
- 升级到最新的 Aspose.Cells 版本(如 24.x),后续版本已对 Shape 渲染进行多项修复。
- 使用以下代码打开并保存 PDF,检查行距偏差是否仍然存在:
// 替换为实际使用的最新 Aspose.Cells DLL
var wb = new Aspose.Cells.Workbook(@"D:\单倍行距测试.xlsx");
// 如需保持原始行距,可显式设置 TextBox 的 LineSpacing 属性
var shape = wb.Worksheets[0].Shapes[0] as Aspose.Cells.Drawing.TextBox;
if (shape != null)
{
shape.Text = shape.Text; // 触发内部重新计算
shape.LineSpacing = 1.0; // 单倍行距(可选)
}
wb.Save(@"D:\单倍行距测试.pdf", Aspose.Cells.SaveFormat.Pdf);
如果在最新版本中仍出现相同差异,请将上述信息(版本、平台、最小复现文件、日志)回复给我们。我们将记录此回归并尽快提供修复或临时方案。
@lingtian
通过使用样例文件和代码在最新版本v25.11上进行测试,我们可以复现问题。当输出文件到pdf格式时,文本行间距错误。
我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。
问题单号:CELLSNET-59510
John.He
5
@lingtian
由于您的问题是两天前记录的,请给我们一些时间来详细评估和分析问题。如果它不复杂,我们应该很快就能修复它。如果问题很复杂,可能需要几周甚至一个月的时间才能解决。无论如何,我们会尽快确认能否提供您问题的预计解决时间,并尽快与您联系。
@lingtian
您的问题(CELLSNET-59510)已得到解决,修复后的功能将随版本26.1一起发布。
这是我使用最新功能生成的结果文件:
CELLSNET-59510.pdf (54.5 KB)
@lingtian,
Aspose.Cells v26.1 版本预计将在 2026 年 1 月上半月发布(预计日期为 10 日至 15 日之间)。新版本一旦可用,我们会立即通知您。