UNPKG

@yelon/abc

Version:

Common business components of ng-yunzai.

277 lines (272 loc) 12.7 kB
import * as i0 from '@angular/core'; import { OnDestroy } from '@angular/core'; import { Observable } from 'rxjs'; import { YunzaiLodopConfig } from '@yelon/util/config'; interface CLodop { /** * 判断是否支持https协议的属性 * * - 0 不支持 * - 1 支持 * - 2 支持且已启动(https服务需单独启动) */ readonly HTTPS_STATUS: number; /** 结果回调函数保留 */ On_Return_Remain: boolean; /** 结果回调函数 */ On_Return: ((taskID: string, value: boolean | string) => void) | null; /** 建立打印机名单 */ Create_Printer_List(el: Element): void; /** 建立纸张类型名单 */ Create_PageSize_List(el: Element, iPrintIndex: number): void; } interface Lodop extends CLodop { [key: string]: any; /** 获得软件版本号 */ VERSION: string; /** * 打印初始化。初始化运行环境,清理异常打印遗留的系统资源,设定打印任务名。 * * **建议或要求:**该函数与PRINT_INITA都有初始化功能,每个打印事务至少初始化一次,建议打印程序首先调用该函数。任务名要尽量区别于其它打印任务,譬如用“XX单位_XX管理信息系统_XX子系统_XX模块_XX打印作业”字样。 * 不希望最终用户更改打印布局时,则设strTaskName空。 * * @param strTaskName 打印任务名 * @returns 返回逻辑真表示初始化成功,逻辑假表示初始化失败,失败原因有:前一个打印事务没有完成;操作系统没有添加打印机(驱动)等 */ PRINT_INIT(strTaskName: string): boolean; /** 设定纸张大小 */ SET_PRINT_PAGESIZE(intOrient: number, PageWidth: number | string, PageHeight: number | string, strPageName: string): void; /** 增加超文本打印项(普通模式) */ ADD_PRINT_HTM(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strHtmlContent: string): void; /** * 增加表格打印项(超文本模式) */ ADD_PRINT_TABLE(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strHtml: string): void; /** * 增加表格打印项(超文本模式) */ ADD_PRINT_TABLE(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strHtml: string): void; /** * 增加超文本打印项(URL模式) */ ADD_PRINT_URL(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strURL: string): void; /** 增加纯文本打印项 */ ADD_PRINT_TEXT(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strContent: string): void; /** 增加图片打印项 */ ADD_PRINT_IMAGE(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strHtmlContent: string): void; /** 增加矩形线 */ ADD_PRINT_RECT(Top: number | string, Left: number | string, Width: number | string, Height: number | string, intLineStyle: number, intLineWidth: number): void; /** 增加椭圆线 */ ADD_PRINT_ELLIPSE(Top: number | string, Left: number | string, Width: number | string, Height: number | string, intLineStyle: number, intLineWidth: number): void; /** 增加直线 */ ADD_PRINT_LINE(Top1: number | string, Left1: number | string, Top2: number | string, Left2: number | string, intLineStyle: number, intLineWidth: number): void; /** 增加条形码 */ ADD_PRINT_BARCODE(Top: number | string, Left: number | string, Width: number | string, Height: number | string, CodeType: string, CodeValue: string): void; /** 增加图表 */ ADD_PRINT_CHART(Top: number | string, Left: number | string, Width: number | string, Height: number | string, ChartType: number, strHtml: string): void; /** 增加PDF */ ADD_PRINT_PDF(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strContent: string): void; /** 增加PDF */ ADD_PRINT_PDF(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strContent: string): void; /** 装载文档式模板 */ ADD_PRINT_DATA(strDataStyle: string, varDataValue: any): void; /** 设置打印项风格 */ SET_PRINT_STYLE(strStyleName: LodopStyleValue, varStyleValue: number | string): void; /** 打印预览 */ PREVIEW(): number; /** 直接打印 */ PRINT(): string; /** 打印维护 */ PRINT_SETUP(): string; /** 打印设计 */ PRINT_DESIGN(): string; /** 强制分页 */ NEWPAGE(): boolean; /** 获得打印设备个数 */ GET_PRINTER_COUNT(): number; /** 获得打印设备名称 */ GET_PRINTER_NAME(strPrinterIDandType: number | string): string; /** 指定打印设备 */ SET_PRINTER_INDEX(oIndexOrName: number | string): boolean; /** 【CLodop】指定打印机 */ SET_PRINTER_INDEX(DriverIndex: number | string, PrinterIDandName: number | string, SubDevIndex: number | string): boolean; /** 选择打印设备 */ SELECT_PRINTER(): number; /** 设置显示模式 */ SET_SHOW_MODE(strModeType: string, varModeValue: number | string): boolean; /** 设置打印模式 */ SET_PRINT_MODE(strModeType: string, varModeValue: number | string): boolean | string; /** 设置打印份数 */ SET_PRINT_COPIES(intCopies: number): boolean; /** 设置预览窗口 */ SET_PREVIEW_WINDOW(intDispMode: number, intToolMode: number, blDirectPrint: number, inWidth: number, intHeight: number, strTitleButtonCaptoin: string): void; /** 指定背景图 */ ADD_PRINT_SETUP_BKIMG(strImgHtml: string): void; /** 发送原始数据 */ SEND_PRINT_RAWDATA(strRawData: string): boolean; /** 写端口数据 */ WRITE_PORT_DATA(strPortName: string, strData: string): boolean; /** 读端口数据 */ READ_PORT_DATA(strPortName: string): string; /** 获得配置文件名 */ GET_PRINT_INIFFNAME(strPrintTask: string): string; /** 获得纸张类型名清单 */ GET_PAGESIZES_LIST(oPrinterName: number | string, strSplit: string): string; /** 写本地文件内容 */ WRITE_FILE_TEXT(intWriteMode: number | string, strFileName: string, strText: string): string; /** 读本地文件内容 */ GET_FILE_TEXT(strFileName: string): string | null; /** 读本地文件时间 */ GET_FILE_TIME(strFileName: string): string | null; /** 判断本地文件是否存在 */ IS_FILE_EXIST(strFileName: string): boolean; /** 获得系统信息 */ GET_SYSTEM_INFO(strInfoType: string): boolean; /** 获得数据值 */ GET_VALUE(ValueType: string, ValueIndex: number | string): any; /** 数据格式转换 */ FORMAT(oType: string, oValue: any): any; /** 获得对话框结果值 */ GET_DIALOG_VALUE(oType: string, oPreValue: string): string; /** (增强型)打印初始化 */ PRINT_INITA(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strPrintName: string): boolean; /** (增强型)增加超文本打印项(图形模式) */ ADD_PRINT_HTML(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strHtmlContent: string): void; /** (增强型)增加表格打印项(URL模式) */ ADD_PRINT_TBURL(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strURL: string): void; /** (增强型)增加纯文本打印项 */ ADD_PRINT_TEXTA(Top: number | string, Left: number | string, Width: number | string, Height: number | string, strContent: string): void; /** (增强型)设置打印项风格A, 继承 `SET_PRINT_STYLE` 的所有属性 */ SET_PRINT_STYLEA(varItemNameID: number | string, strStyleName: string, varStyleValue: number | string): void; /** (增强型)导出数据到文件 */ SAVE_TO_FILE(strFileName: string): boolean; /** (增强型)设置保存模式 */ SET_SAVE_MODE(varModeName: string, varModeValue: number | string): boolean; /** (增强型)增加图形 */ ADD_PRINT_SHAPE(intShapeType: number, Top: number | string, Left: number | string, Width: number | string, Height: number | string, intLineStyle: number, intLineWidth: number, varColor: number | string): void; /** (增强型)指定打印设备 */ SET_PRINTER_INDEXA(oIndexOrName: number | string): boolean; /** (增强型)强制分页 */ NEWPAGEA(): boolean; /** (增强型)打印预览A */ PREVIEWA(): number; /** (增强型)打印预览B */ PREVIEWB(): number; /** 直接打印A */ PRINTA(): boolean; /** 直接打印B */ PRINTB(): boolean; /** 显示图表 */ SHOW_CHART(): void; /** 控制界面动作 */ DO_ACTION(ActName: string, ActValue: number | string): void; /** * 设置软件产品注册信息 * * @param strCompanyName 注册单位名称,用途与控件参数CompanyName一样。 * @param strLicense 主注册号,用途与控件参数License一样。 * @param strLicenseA 附加注册号A,用途与控件参数LicenseA一样。 * @param strLicenseB 附加注册号B,用途与控件参数LicenseB一样。 */ SET_LICENSES(strCompanyName: string, strLicense: string, strLicenseA?: string, strLicenseB?: string): void; webskt: WebSocket; } type LodopStyleValue = 'FontName' | 'FontSize' | 'FontColor' | 'Bold' | 'Italic' | 'Underline' | 'Alignment' | 'Angle' | 'ItemType' | 'HOrient' | 'VOrient' | 'PenWidth' | 'PenStyle' | 'Stretch' | 'PreviewOnly' | 'ReadOnly'; interface LodopResult { /** 是否成功 */ ok: boolean; /** 错误码 */ status?: string; /** 成功时携带 LODOP 对象 */ lodop?: Lodop; /** 错误信息 */ error?: any; } interface LodopPrintResult { /** 是否成功 */ ok: boolean; /** 错误信息 */ error?: string; /** 代码 */ code: string; /** 动态参数上下文对象 */ item: any; /** 代码解析表达式 */ parser?: RegExp; } declare class LodopService implements OnDestroy { private readonly scriptSrv; private defaultConfig; private _cog; private pending; private _lodop; private _init; private _events; private printBuffer; private readonly cogSrv; constructor(); /** * Get or set configuration, **Note:** Resetting will invert and reload script resources * * 获取或重新设置配置,**注:**重新设置会倒置重新加载脚本资源 */ get cog(): YunzaiLodopConfig; set cog(value: YunzaiLodopConfig); /** * Event change notification * * 事件变更通知 */ get events(): Observable<LodopPrintResult>; /** * Get lodop object * * 获取 lodop 对象 */ get lodop(): Observable<LodopResult>; /** * Get printer list * * 获取打印机列表 */ get printer(): string[]; private check; private request; /** * Reset lodop object * * 重置 lodop 对象 */ reset(): void; /** * Attach code to the `lodop` object, the string class supports dynamic parameters of `{{key}}`, * **Note:** The code refers to the string data generated by the print design * * 附加代码至 `lodop` 对象上,字符串类支持 `{{key}}` 的动态参数,**注:** 代码是指打印设计所产生字符串数据 */ attachCode(code: string, contextObj?: any, parser?: RegExp): void; /** * The code is automatically returned after opening the print design and closing, * **Note:** Automatically listen for the `On_Return` event, and it will be removed after running * * 打开打印设计关闭后自动返回代码,**注:** 自动监听 `On_Return` 事件,运行后会移除 */ design(): Promise<string>; private printDo; /** * Print immediately, generally used for batch printing * * 立即打印,一般用于批量套打 */ print(code: string, contextObj: any, parser?: RegExp): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<LodopService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<LodopService>; } declare class LodopModule { static ɵfac: i0.ɵɵFactoryDeclaration<LodopModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<LodopModule, never, never, never>; static ɵinj: i0.ɵɵInjectorDeclaration<LodopModule>; } export { LodopModule, LodopService }; export type { CLodop, Lodop, LodopPrintResult, LodopResult, LodopStyleValue };