Aspose.Cells 转PDF失败

test.zip (2.2 MB)
hi:
附件的excel转pdf失败,报错信息如下:Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
版本Aspose.Cells 22.12

@ericwu99298,

感谢您提供示例文件。

我们将评估您的问题并尽快回复您。

@ericwu99298

Aspose.Cells for .Net 22.12, 以下代码生成pdf, 没有问题。

Workbook wb = new Workbook("test.xls");

wb.Save("output.pdf");

请给我们提供一个可独立运行的工程(请移除license文件),以便复现问题。

image.jpg (116.0 KB)
是的,22.12不报错了,但是转换的object变形了,如图所示

WindowsFormsApp1.zip (49.7 KB)
直接保存不会报错,但是把sheet复制到新的workbook,会报错,工程如下。你需要重新引用下aspose.cells,上传附件大小有限制。

@ericwu99298

我们已经注意到此问题,并记录问题单(id:CELLSNET-52418)。
后续有新的更新,将会通知到您!

@ericwu99298

我们能够复现此问题: Index was out of range. Must be non-negative and less than the size of the collection, 并记录问题单(id: CELLSNET-52419)。
后续有新的更新,将会通知到您!

test1.zip (5.1 MB)

1.这份excel转pdf,图片变形了;如下图1所示
2.X形状的object页变形了,如下图2所示
image.jpg (263.9 KB)

@ericwu99298,

感谢您提供屏幕截图和新模板 Excel 文件。

请注意,在将 Excel 文件渲染为 PDF 文件格式时,我们注意到形状和图像变形的问题。 我们已经为您的问题记录了 ID 为“CELLSNET-52420”的单独票证。 我们会尽快调查。

我们会在有更新后立即通知您。

@ericwu99298,

关于问题“CELLSNET-52420”,我们现在使用我们的最新版本(Aspose.Cells for .NET v22.12)使用您的文件测试了您的场景/案例,并且输出是正确的。 您能否尝试使用 Aspose.Cells for .NET v22.12 并让我们知道您的反馈。

关于问题“CELLSNET-52419”,我们已经修复了该问题,该修复将包含在我们即将于 2023 年 1 月上半月发布的 Aspose.Cells for .NET v23.1 版本中。

问题“CELLSNET-52420”,我使用的是最新版本(Aspose.Cells for .NET v22.12),出现的这个问题;<a
WindowsFormsApp1.zip (53.1 KB)
test1.zip (5.1 MB)
附件是我测试用project和测试excel,FYI

@ericwu99298,

感谢您提供示例项目。

您能否也分享您的输出 PDF 文件。 我们将进一步评估您的问题。

test1.pdf (2.0 MB)

@ericwu99298,

感谢您提供 PDF。

我们发现您没有直接保存为 PDF,而是先将工作表复制到新工作簿,然后再呈现为 PDF。 我们注意到了这个问题,并已将您的工件和资源文件与您现有的票证“CELLSNET-52420”一起记录到我们的数据库中。 我们将很快调查问题的详细信息。

@ericwu99298

我们已经解决了抛出异常的问题。 但是复制shapes有一些问题,特别是复制shapes从xls到xlsx。我们正在努力尝试解决此问题。
如果您是只想将单个sheet导出为 pdf ,可以尝试以下代码:

Workbook workbook = new Workbook(dir +"test.xls");
// workbook.Save(dir + "dest.pdf");

for (int i = workbook.Worksheets.Count - 1; i > 0; i--)
{
    workbook.Worksheets[i].IsVisible = false;
}

PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.OnePagePerSheet = true;
pdfSaveOptions.FontEncoding = PdfFontEncoding.AnsiPrefer;
pdfSaveOptions.DefaultFont = "宋体";
pdfSaveOptions.DefaultEditLanguage = DefaultEditLanguage.CJK;
pdfSaveOptions.CheckWorkbookDefaultFont = true;
workbook.Save(dir + "dest.pdf"); 

由于不用拷贝和删除,这种方式更为高效。

1.copy是因为我的项目中是要把部分符合规则的sheet合并到一个pdf,所以需要复制到一个新的workbook;
2.从xls保存为xlsx,是由于xls中的部分object报错,把xls另存格式为xlsx后,解析变形,才采取的方案,如果这些都修复了,应该就不用另存了,可以直接转pdf

@ericwu99298,

感谢您提供更多详细信息和您的疑虑。

很抱歉,我们建议的解决方法不适用于您的情况。 在将工作表复制到您的场景/案例的新工作簿时,我们一定会尝试修复输出 PDF 中有关形状和图片的变形问题。

一旦我们有新的更新,我们会通知您。

test3.zip (1.7 MB)
image.jpg (284.8 KB)
如图片所示,转出的pdf,阴影处理有问题,帮忙看下,谢谢

@ericwu99298
我们已经重现了你的问题,并记录成问题CELLSNET-52437。我们会尽快处理!
鉴于阴影,建议您现在把他和图片合成一张图,替换当前的图片。

@ericwu99298,

我们很高兴地通知您,您的问题(之前记录为“CELLSNET-52420”)现已解决。 该修复程序将包含在我们计划于 2023 年 1 月上半月发布的即将发布的版本 (Aspose.Cells v23.1) 中。下一个版本发布后,您将收到通知。

查看(内部)修复生成的输出结果供您参考。
CELLSNET-52420.pdf (2.0 MB)