你好,我们使用的Aspose-Excel版本:23.8
编程语言:java
转换代码:
`public static void convert2PdfNoInOnePage(InputStream excel, OutputStream pdf) throws Exception {
Workbook workbook = new Workbook(excel);
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
// 缩放到一个页面(如果列太多,太长)
pdfSaveOptions.setAllColumnsInOnePagePerSheet(false);
workbook.save(pdf, pdfSaveOptions);
}`
这段代码是把Excel的所有列都放在一页中,其中页边距是如何控制的呢?
@ZhonghaoSun
关于页面边距设置,你可以参考以下文档。
多谢。
我们还希望能了解,如果只设置以下配置(即一张表的所有列内容将只输出到结果中的一页)
PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
pdfSaveOptions.setAllColumnsInOnePagePerSheet(true);
这时的页边距是根据什么策略生成的呢?
@ZhonghaoSun,
请注意,当您使用 PdfSaveOptions.setAllColumnsInOnePagePerSheet (true) 时,Aspose.Cells 将仅确保工作表的所有列都呈现到单个 PDF 页面,尽管行可能会根据工作表中的数据扩展到多个页面。考虑到组件将尝试在单个页面上呈现所有列,左右边距不会太有效。
好的,
我并非是想在设置PdfSaveOptions.setAllColumnsInOnePagePerSheet (true) 时,再进行设置页边距。
而是希望知道,当我仅仅设置了PdfSaveOptions.setAllColumnsInOnePagePerSheet (true) ,而没有去设置页边距,这时的页边距默认是如何计算的呢
@ZhonghaoSun,
我们可能不会分享内部逻辑,但您可能认为 Aspose.Cells 遵循 MS Excel 标准,因此您可以将 Excel 电子表格渲染为 PDF,同时将所有列设置为一页选项。例如,在 MS Excel 中,打开工作表的打印预览并设置“将所有列调整到一页上”,并记下输出文件中页面的边距和大小。
好的,在Excel中是否有配置可以设置“将所有列调整到一页上”,可以截图告知下如何设置嘛
@ZhonghaoSun
在打印预览页面可以设置将所有列调整到一页上,请查看附件。result.png (69.6 KB)
@ZhonghaoSun
在Excel中, Page Layout → print Titles—> Page—>Scale
pagesetting.png (38.2 KB)
在Aspose.Cells中请参考文档