我们在实际的实现C#打印开发中C#打印设置会遇到一些问题,那么如何解决这些C#打印设置的问题就变得很实际,那么对于文件实现C#打印、C#打印预览、C#打印设置等等操作其中都有哪些常见的问题呢?下面我们就来谈谈解决C#打印设置控件页面边距值变化的问题:
- protected virtual PageSettings ShowPageSetupDialog(
- PrintDocument printDocument)
- {
- //检查printDocument是否为空,空的话抛出异常
- ThrowPrintDocumentNullException(printDocument);
- //声明返回值的PageSettings
- PageSettings ps = new PageSettings();
- //申明并实例化PageSetupDialog
- PageSetupDialog psDlg = new PageSetupDialog();
- ps = printDocument.DefaultPageSettings;
- try
- {
- //相关文档及文档页面默认设置
- psDlg.Document = printDocument;
- Margins mg = printDocument.DefaultPageSettings.Margins;
- if (System.Globalization.RegionInfo.CurrentRegion.IsMetric)
- {
- mg = PrinterUnitConvert.Convert(mg,
- PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
- }
- //备份打印文档的DefaultPageSettings,
- //因为转换后会改变,
- //而设置对话框单击取消按钮后不还原就不能正确显示原来的值
- PageSettings psPrintDocumentBack =
- (PageSettings)(printDocument.DefaultPageSettings.Clone());
- psDlg.PageSettings = psPrintDocumentBack;
- //printDocument.DefaultPageSettings;
- //用printDocument的时取消了对话框就要还原
- psDlg.PageSettings.Margins = mg;
- //显示对话框
- DialogResult result = psDlg.ShowDialog();
- if (result == DialogResult.OK)
- {
- ps = psDlg.PageSettings;
- printDocument.DefaultPageSettings =
- psDlg.PageSettings;
- }
- else
- {
- }
- }
- catch (System.Drawing.Printing.InvalidPrinterException e)
- {
- ShowInvalidPrinterException(e);
- }
- catch (Exception ex)
- {
- ShowPrinterException(ex);
- }
- finally
- {
- psDlg.Dispose();
- psDlg = null;
- }
- return ps;
- }
关于C#打印设置控件页面边距值变化的问题就向你介绍到这里,希望对你了解和学习C#打印设置有所帮助。
【编辑推荐】