要解决VC环境下编码控制设置打印页面的页边距。
搜找资料大多是VBA或者C#的内容:
在上一个问题里面,我在VC下大致找到了
PageSetup page = sheet.GetPageSetup();
//设置打印页面方向 0 默认 1 纵向 2 横向
page.SetOrientation(2);
来设置打印的方向为横向:
现在遇到要解决的问题点是设置也页边距
参照如下网上搜到的资料
ExlApp.DisplayAlerts = false;
WB = ExlApp.Workbooks.Open(EXLPath, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal, MissVal);
WB.Activate();
Microsoft.Office.Interop.Excel.Worksheet WS = (Microsoft.Office.Interop.Excel.Worksheet)WB.ActiveSheet;
WS.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlPortrait;
WS.PageSetup.PaperSize = Microsoft.Office.Interop.Excel.XlPaperSize.xlPaperA4;
WS.PageSetup.Zoom = false;
WS.PageSetup.FitToPagesWide = 1;
WS.PageSetup.FitToPagesTall = false;
WS.PageSetup.RightMargin = ExlApp.InchesToPoints(0.2);
WS.PageSetup.LeftMargin = ExlApp.InchesToPoints(0.2);
WS.PageSetup.TopMargin = ExlApp.InchesToPoints(0);
WS.PageSetup.BottomMargin = ExlApp.CentimetersToPoints(0.2);
我做出如下代码:
page.SetLeftMargin(0.6f);
page.SetRightMargin(0.1f);
page.SetTopMargin(5.0f);
但是效果很不满意:
最终找到 app.InchesToPoints(0.6)方法进行设置
最终代码: 解决了横向打印,设置页边距的问题
PageSetup page = sheet.GetPageSetup();
//设置打印页面方向 0 默认 1 纵向 2 横向
page.SetOrientation(2);
//
page.SetLeftMargin(app.InchesToPoints(0.6));
page.SetRightMargin(app.InchesToPoints(0.4));
page.SetTopMargin(app.InchesToPoints(0.4));
page.SetBottomMargin(app.InchesToPoints(0.4));
VARIANT vt=(_variant_t)1;
page.SetFitToPagesWide(vt);