本帖最后由 Richard.Ma 于 2021-4-7 17:33 编辑
目前没有办法自动缩放以填充除边距外的空白部分,但是可以通过代码,计算缩放比例,手动设置缩放比例代码如下
注意,这个代码仅考虑了宽度,实际应该宽高都考虑。 取宽、高各自计算的缩放比例中较小的一个,否则仅取宽度计算的比例的话,高度可能会超出
- void ExPDF()
- {
- Workbook workbook = new Workbook();
- workbook.Open(@"D:\Projects\12341234.xlsx");
- var worksheet = workbook.Worksheets[0];
-
- worksheet.PageSetup.PaperSize = PaperSize.A4;
- worksheet.PageSetup.LeftMargin = 30;
- worksheet.PageSetup.TopMargin = 30;
- worksheet.PageSetup.RightMargin = 0;
- worksheet.PageSetup.BottomMargin = 0;
- //将表格缩小到一张纸中打印
- worksheet.PageSetup.FitToPagesTall = 1;
- worksheet.PageSetup.FitToPagesWide = 1;
- //获取打印区域的原始宽高
- var size = new PrintManager().GetSize(worksheet.UsedRange);
- //以A4纸宽度为例,转毫米为point,
- double paperwidth = 210/ 25.4* 72- worksheet.PageSetup.LeftMargin;
- //计算缩放比例
- int zoom = (int)(paperwidth / size.Width*100);
- //设置缩放比例
- worksheet.PageSetup.Zoom=zoom;
- worksheet.Save(@"D:\Projects\12341234.pdf", SaveFileFormat.Pdf);
- }
复制代码
最终效果
|