获取打印机硬边距异常
Posted xuexiaodong2009
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取打印机硬边距异常相关的知识,希望对你有一定的参考价值。
在项目上使用打印机,经常会出现获取打印机硬边距异常的情况
private string GetPageSettings()
string text = string.Empty;
string PrinterName = printDocument.PrinterSettings.PrinterName;
PageSettings printerSettings = printDocument.DefaultPageSettings;
bool hasErr = !printDocument.PrinterSettings.IsValid;
if (hasErr)
LogInfo.Error("设置打印机无效" + PrinterName + "不存在");
try
float HardMarginX = printerSettings.HardMarginX; //左侧,右侧不能打印的区域
float HardMarginY = printerSettings.HardMarginY; //上方,下方不能打印的区域
catch (Exception ex)
LogInfo.Error("打印机硬边距异常", ex);
LogInfo.Error("请确认打印机PrinterName=" + PrinterName + ",能正常使用");
hasErr = true;
return text;
经常出现调用printerSettings.HardMarginX这一行代码是会出现异常,后来发现,是因为打印机名称有问题,不知道为什么打印机的名称是Default printer is not set
如果打印机名称是这个就会出现调用硬边距错误的问题。
因此应该首先判断是否有效printDocument.PrinterSettings.IsValid,然后还需要判断打印机名称是不是有效。再加上了这两个判断后,几乎就没有出现过错误了。
private static bool IsErrPrinterName(string PrinterName)
string errPrinterName = "未设置";//未设置默认打印机。
string errPrinterName2 = "not set";//Default printer is not set.
if (string.IsNullOrEmpty(PrinterName))
return true;
if (PrinterName.IndexOf(errPrinterName) >= 0)
return true;
if (PrinterName.IndexOf(errPrinterName2) >= 0)
return true;
return false;
以上是关于获取打印机硬边距异常的主要内容,如果未能解决你的问题,请参考以下文章