使用打印机名选择接口实现批量静默打印【SelectPrinterExt,P...
金蝶云社区-yaojunsong
yaojunsong
3人赞赏了该文章 2,610次浏览 未经作者许可,禁止转载编辑于2017年11月02日 11:18:52

1、选择打印机名称:
private selectPrinterNameButtonClick(e){
//参数 0:只返回选中的打印机名称,1:同时返回当前可用打印机列表,100:只返回当前可用的打印机列表
this.View.AddAction("SelectPrinterExt",0)
}

protected override CustomEvents(e){
//参数0 e.EventArgs:{"Data":"{\"Selected\":true,\"PrinterName\":\"Doro PDF Writer\" }","RetType":0}
//参数1 e.EventArgs:{"Data":"{\"Selected\":true,\"PrinterName\":\"Doro PDF Writer\" ,\"AllPrinterNames\":[\"Microsoft XPS Document Writer\",\"Doro PDF Writer\"]}","RetType":1}
//参数100 e.EventArgs:{"Data":"{\"Selected\":true ,\"AllPrinterNames\":[\"Microsoft XPS Document Writer\",\"Doro PDF Writer\"]}","RetType":100}
var printNameObject = e.EventArgs;
}

2、获取名称后调用打印进行静默打印;

///


/// 打印
///

/// 打印任务ID
/// 打印类型
/// 打印机ID
public void NoteTemplateOperation(string printJobId, string printType, object printer = null, string printBarName = null)
{
JSONObject jsonObj = new JSONObject();
jsonObj.Put("pageID", this.View.PageId);
jsonObj.Put("printJobId", printJobId);
jsonObj.Put("action", printType);

string action = string.Empty;
if (printType.EqualsIgnoreCase("preview") || printType.EqualsIgnoreCase("PrintMergePreview"))
{
action = JSAction.printPreview;
jsonObj.Put("printBarName", printBarName);
}
else if (printType.EqualsIgnoreCase("print") || printType.EqualsIgnoreCase("PrintMerge"))
{
action = JSAction.print;
jsonObj.Put("printerAddress", printer.IsNullOrEmpty() == true ? string.Empty : Convert.ToString(printer));
}

this.View.AddAction(action, jsonObj);
}