[原创]Lodop打印, 以及Lodop引用css文件控制打印样式的问题.
最近在做Lodop打印功能:
思路是: 用MasterPage搭个打印页面的框架, 然后在具体的页面中填入数据, 打印的样式由母版页和CSS来控制.
困扰了一天的问题是: 在打印的JS文件中, 引用外部css文件时, 需要拼出实际的含有IP地址的CSS文件地址, 并且需要用双斜杠(//)来代替单斜杠.
=====后来遇到的问题: css文件里的样式, 在页面上显示没有问题, 但是打印预览却没有样式....
又挣扎了一天, 原来问题是: lodop中的加入css文件后, 不能识别css类(.baseInfo)这样的样式, 得写到具体的元素中才可以, 如: (.baseInfo Table)下的css才会生效.
对于Repeater中的Table标签, 貌似也加载不了样式, 最后网repeater的Table标签设置了一个ClassName, 才生效.
=====为了能让页眉、页脚、以及内容页, 全部都应用CSS中的样式, 着实费了一番功夫. 不知道是不是<link....> + HTML的方式不好使还是我没弄清楚, CSS样式表无法全部生效(只有用ADD_PRINT_HTM的部分生效, 其他不生效). 最终, 在JS中用ajax获取CSS文件内容, 然后采用<style...>+HTML的方式解决.
代码如下:
//母版页, 注意: url的拼接形式
<input id="hidCssRef" name="hidCssRef" type="hidden" value ='<link href="http://<%= this.Request.Url.Authority %>//App_Themes//<%=Application["Theme"].ToString()%>//Css//PrintStyleSheet.css" rel="stylesheet" type="text/css" />' />
<input id="hidCssRef" name="hidCssRef" type="hidden" value ='<link href="http://<%= this.Request.Url.Authority %>/App_Themes/<%=Application["Theme"].ToString()%>/Css/PrintStyleSheet.css" rel="stylesheet" type="text/css" />' />
//PrintHelper.Master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="PrintHelper.master.cs" Inherits="JN.UI.Commons.PrintHelper.PrintHelper1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <link href="/App_Themes/<%= Application["Theme"].ToString() %>/Css/PrintStyleSheet.css" rel="stylesheet" type="text/css" /> <script src="/Scripts/jquery-1.4.1.js" type="text/javascript"></script> <script src="/Scripts/jquery.json.js" type="text/javascript"></script> <script src="/Scripts/jquery.commons.js" type="text/javascript"></script> <asp:ContentPlaceHolder ID="headPlaceHolder" runat="server"> </asp:ContentPlaceHolder> <style> @media print { .noprint { display:none; } .printOnly { display: block; } } </style> </head> <body> <form id="form1" runat="server"> <div class="page"> <!--<input type="button" value="打印" onclick='<%= "printPreview(\'"+ this.ContentPlaceHolder1.ClientID +"\');"%>' />--> <input type="button" value="打印" onclick='<%= "printPreview(\"printContent\");" %>' /> <%--<input id="hidCssRef" name="hidCssRef" type="hidden" value ='<link href="http://<%= this.Request.Url.Authority %>/App_Themes/<%=Application["Theme"].ToString()%>/Css/PrintStyleSheet.css" rel="stylesheet" type="text/css" />' />--%> <input id="hidCssRef" name="hidCssRef" type="hidden" value ='http://<%= this.Request.Url.Authority %>/App_Themes/<%=Application["Theme"].ToString()%>/Css/PrintStyleSheet.css'/> <!--PrintStart--> <div id="printContent"> <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> <!--PrintEnd--> </div> </form> </body> </html>
//PrintHelper.Master.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; namespace JN.UI.Commons.PrintHelper { public partial class PrintHelper1 : System.Web.UI.MasterPage { #region 全局变量 private string _printType = HttpContext.Current.Request.QueryString.AllKeys.Contains("pType") ? HttpContext.Current.Request.QueryString["pType"] : string.Empty; #endregion #region 控件事件 protected void Page_Init(object sender, EventArgs e) { //加载lodop的object HtmlGenericControl objControl = null; //string jsPathPatt = "~/Commons/PrintHelper/Resources/Scripts/{0}.js"; string jsPathPatt = "/Commons/PrintHelper/Resources/Scripts/{0}.js"; string jsPath = string.Empty; switch (_printType) { case "winPter": goto default; case "webPter": //jsPath = this.Page.ResolveUrl(string.Format(jsPathPatt, "WebrowserPrinter")); jsPath = string.Format(jsPathPatt, "WebrowserPrinter"); break; case "lodPter": //加载lodop的原始JS文件 string jsSrcPath = string.Format("/App_Libs/Lodop/6.203/{0}.js", "LodopFuncs"); HtmlGenericControl JsSrcControl = new HtmlGenericControl("script"); JsSrcControl.Attributes.Add("type", "text/javascript"); JsSrcControl.Attributes.Add("src", jsSrcPath); this.headPlaceHolder.Controls.Add(JsSrcControl); //lodop打印功能的JS jsPath = string.Format(jsPathPatt, "LodopPrinter"); //lodp的object objControl = new HtmlGenericControl("object"); objControl.Attributes.Add("id", "LODOP_OB"); objControl.Attributes.Add("classid", "clsid:2105C259-1E0C-4534-8141-A753534CB4CA"); objControl.Attributes.Add("id", "LODOP_OB"); objControl.Attributes.Add("width", "0"); objControl.Attributes.Add("height", "0"); //加载FF支持 HtmlGenericControl ffLodopSup = new HtmlGenericControl("embed"); ffLodopSup.Attributes.Add("id", "LODOP_EM"); ffLodopSup.Attributes.Add("type", "application/x-print-lodop"); ffLodopSup.Attributes.Add("width", "0"); ffLodopSup.Attributes.Add("height", "0"); objControl.Controls.Add(ffLodopSup); break; default: jsPath = string.Format(jsPathPatt, "WindowPrinter"); break; } //加载JS HtmlGenericControl JsControl = new HtmlGenericControl("script"); JsControl.Attributes.Add("type", "text/javascript"); JsControl.Attributes.Add("src",jsPath); this.headPlaceHolder.Controls.Add(JsControl); if(objControl != null) this.headPlaceHolder.Controls.Add(objControl); } protected void Page_Load(object sender, EventArgs e) { } #endregion #region 初始化及绑定方法 #endregion } }
//具体的打印页面
//GodownEntryPrint.aspx
<%@ Page Title="" Language="C#" MasterPageFile="~/Commons/PrintHelper/PrintHelper.Master" AutoEventWireup="true" CodeBehind="GodownEntryPrint.aspx.cs" Inherits="JN.UI.InventoryAdmin.GodownEntryPrint" %> <%@ Register src="UserControls/UC_PrintTop.ascx" tagname="UC_PrintTop" tagprefix="uc1" %> <%@ Register src="UserControls/UC_GodownEntryPrint.ascx" tagname="UC_GodownEntryPrint" tagprefix="uc2" %> <asp:Content ID="Content1" ContentPlaceHolderID="headPlaceHolder" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <uc1:UC_PrintTop ID="UC_PrintTop1" runat="server" /> <uc2:UC_GodownEntryPrint ID="UC_GodownEntryPrint1" runat="server" /> </asp:Content>
//GodownEntryPrint.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace JN.UI.InventoryAdmin { public partial class GodownEntryPrint : System.Web.UI.Page { protected void Page_Init(object sender, EventArgs e) { this.UC_PrintTop1.PrintTitle = "物资入库单"; } protected void Page_Load(object sender, EventArgs e) { } } }
//具体的实现代码放在用户控件中
//UC_GodownEntryPrint.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UC_GodownEntryPrint.ascx.cs" Inherits="JN.UI.InventoryAdmin.UserControls.UC_GodownEntryPrint" %> <div class="prnTable"> <div class="baseInfo"> <table> <tr> <td class="baseTitle"><span>单据编号:</span></td> <td class="baseContent"> <span><asp:Label ID="lblGENum" runat="server" Text=""></asp:Label></span></td> <td class="baseTitle"><span>发票号:</span></td> <td class="baseContent"> <span><asp:Label ID="lblInvoNum" runat="server" Text=""></asp:Label></span> </td> <td class="baseTitle"><span>发票金额:</span></td> <td class="baseContent"> <span><asp:Label ID="lblInvoSum" runat="server" Text=""></asp:Label></span> </td> </tr> <tr> <td class="baseTitle"><span>供应商:</span></td> <td class="baseContent"> <span><asp:Label ID="lblSuppName" runat="server" Text=""></asp:Label></span> </td> <td class="baseTitle"><span>入库日期:</span></td> <td class="baseContent"> <span><asp:Label ID="lblCreateTime" runat="server" Text=""></asp:Label></span> </td> <td class="baseTitle"><span>库存状态:</span></td> <td class="baseContent"> <span><asp:Label ID="lblInveStatus" runat="server" Text=""></asp:Label></span> </td> </tr> </table> </div> <div class="detailInfo"> <asp:Repeater ID="rptGEPrn" runat="server"> <HeaderTemplate> <table class="detailTabInfo"> <thead> <tr> <td class="detailTitle" style="width:10%;"><span>物资编码</span></td> <td class="detailTitle" style="width:20%;"><span>物资名称</span></td> <td class="detailTitle" style="width:15%;"><span>规格型号</span></td> <td class="detailTitle" style="width:5%;"><span>单位</span></td> <td class="detailTitle" style="width:10%;"><span>账务名称</span></td> <td class="detailTitle" style="width:5%;"><span>入库数量</span></td> <td class="detailTitle" style="width:15%;"><span>入库单价</span></td> <td class="detailTitle" style="width:20%;"><span>入库金额</span></td> </tr> </thead> <tbody> </HeaderTemplate> <ItemTemplate> <tr> <td class="detailContent"><span><%# Eval("T_MaterialInfo.MaterialNO") %></span></td> <td class="detailContent"><span><%# Eval("T_MaterialInfo.MaterialName") %></span></td> <td class="detailContent"><span><%# Eval("T_MaterialInfo.MaterialSpec") %></span></td> <td class="detailContent"><span><%# Eval("T_Unit.UnitName") %></span></td> <td class="detailContent"><span><%# Eval("T_WareHouse.WHName") %></span></td> <td class="detailContent"><span><%# Eval("T_ZGEdownEntry.ZGEAmount") %></span></td> <td class="detailContent"><span><%# Eval("T_ZGEdownEntry.ZGEPrice") %></span></td> <td class="detailContent"><span> <asp:Label ID="lblSumPrice" runat="server" Text='<%# Eval("T_ZGEdownEntry.ZGESumPrice") %>'></asp:Label></span> </td> </tr> </ItemTemplate> <FooterTemplate> </tbody> <tfoot> <%-- <tr id="pageSum" style="display:none;"> <td colspan="6"></td> <td class="detailTitle"><span>当页合计:</span></td> <td class="detailContent" tdata="subSum" format="#,##0.00"><span><font>###</font></span></td> </tr>--%> <tr> <td colspan="6" class="detailTitle"></td> <td class="detailTitle"><span>总合计:</span></td> <td class="detailContent"><span><asp:Label ID="lblTotalSum" runat="server" Text=""></asp:Label></span></td> </tr> </tfoot> </table> </FooterTemplate> </asp:Repeater> </div> <div class="footInfo"> <table> <tr> <td class="footTitle"><span>部门主管:</span></td> <td class="footContent"> <span><asp:Label ID="lblDepPrin" runat="server" Text=""></asp:Label></span></td> <td class="footTitle"><span>制单:</span></td> <td class="footContent"> <span><asp:Label ID="lblDocOpter" runat="server" Text=""></asp:Label></span></td> <td class="footTitle"><span>入库记账:</span></td> <td class="footContent"> <span><asp:Label ID="lblAccoClk" runat="server" Text=""></asp:Label></span></td> </tr> </table> </div> </div>
//UC_GodownEntryPrint.ascx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using JN.BLL; using JN.Model.Entity; using JN.GTL; using JN.Model.Enums; using JN.BLL.Models; namespace JN.UI.InventoryAdmin.UserControls { public partial class UC_GodownEntryPrint : System.Web.UI.UserControl { #region 全局变量 private BLLServices _baoSrv; private int _geNo = HttpContext.Current.Request.QueryString.AllKeys.Contains("geno") ? int.Parse(HttpContext.Current.Request.QueryString["geno"]) : -1; #endregion #region 控件事件 protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { InitData(); //BindData(); } } #endregion #region 绑定及初始化方法 private void InitData() { if (this._geNo <= 0) throw new ArgumentException("无效的入库单编号!", "_geNo"); this._baoSrv = new BLLServices(); //读取入库单信息 E_GodownEntry geInfo = this._baoSrv.GodownEntryBAO.GetGodownEntry(this._geNo); if(geInfo != null) { //处理入库单表头 this.lblGENum.Text = geInfo.T_GodownEntry.GENumber; this.lblInvoNum.Text = geInfo.T_Invoice.InvoicenNumber; this.lblInvoSum.Text = geInfo.T_Invoice.Summation.ToString("F6"); this.lblSuppName.Text = geInfo.T_Supplier.SupplierName; this.lblCreateTime.Text = GTLServices.DateTimeHelper.FormatDataStr(geInfo.T_GodownEntry.GECreateTime); //this.lblInveStatus.Text = Enum.GetName(typeof(GodownEntryStatus),geInfo.T_GodownEntry.GEStatus); this.lblInveStatus.Text = getEnumStatus((GodownEntryStatus)Enum.Parse(typeof(GodownEntryStatus),geInfo.T_GodownEntry.GEStatus.ToString())); //处理入库单表尾 this.lblDocOpter.Text = geInfo.T_User.UserName; this.lblAccoClk.Text = geInfo.Accoer.UserName; //处理入库单详情 List<E_ZGEGodownEntry> detailLst = this._baoSrv.ZGEdownEntryBAO.GetZGEdownEntryList(null,geInfo.T_GodownEntry,null,null,null,-1,-1); this.rptGEPrn.DataSource = detailLst; this.rptGEPrn.DataBind(); //处理合计 double total = 0.0; foreach (RepeaterItem ri in this.rptGEPrn.Controls) { if (ri.ItemType == ListItemType.AlternatingItem || ri.ItemType == ListItemType.Item) { total += double.Parse((ri.FindControl("lblSumPrice") as Label).Text.Trim()); } else if (ri.ItemType == ListItemType.Footer) { (ri.FindControl("lblTotalSum") as Label).Text = total.ToString("F2"); } } } } #endregion #region 私有方法 private string getEnumStatus(GodownEntryStatus status) { string result = string.Empty; switch (status) { case GodownEntryStatus.Normal: result = "正常"; break; case GodownEntryStatus.Delete: result = "删除"; break; case GodownEntryStatus.CancellingStocks: result = "退库"; break; default: result = string.Empty; break; } return result; } #endregion } }
//打印页的样式表
/* PrintPages ----------------------------------------------------------*/ body { font-size: .80em; font-family: "Helvetica Neue" , "Lucida Grande" , "Segoe UI" , Arial, Helvetica, Verdana, sans-serif; margin: 0px; padding: 0px; } a:link, a:visited { color: #034af3; } a:hover { color: #1d60ff; text-decoration: none; } a:active { color: #034af3; } p { margin-bottom: 10px; line-height: 1.6em; } /* HEADINGS ----------------------------------------------------------*/ h1, h2, h3, h4, h5, h6 { font-size: 1.5em; color: #666666; font-variant: small-caps; text-transform: none; font-weight: 200; margin-bottom: 0px; } h1 { font-size: 1.6em; padding-bottom: 0px; margin-bottom: 0px; } h2 { font-size: 1.5em; font-weight: 600; } h3 { font-size: 1.2em; } h4 { font-size: 1.1em; } h5, h6 { font-size: 1em; } /* this rule styles <h1> and <h2> tags that are the first child of the left and right table columns */ .rightColumn > h1, .rightColumn > h2, .leftColumn > h1, .leftColumn > h2 { margin-top: 0px; } /* PRIMARY LAYOUT ELEMENTS ----------------------------------------------------------*/ .page { /*min-height:100%; height: 0px; position:absolute; _position:absolute; left: 0;*/ margin: 0 auto; width: 90%; } .prnTitle { width: 100%; /*min-height:20px;*/ height:70px; margin:0 auto; font-family:SimHei; text-align:center; letter-spacing:5px; } .prnTitle h1 { font-size:24px; } .prnTitle h3 { margin-top:5px; font-size:20px; } .prnTable { font-family:SimHei; text-align:center; } .baseInfo { width:100%; height:52px; } .baseInfo table { border: none; width:100%; } .baseTitle { width: 12%; font-size:14px; text-align:right; } .baseContent { width: 22%; font-size:14px; text-align:left; } .detailInfo { width:100%; font-family:SimHei; } .detailTabInfo { width:100%; font-size:14px; border-collapse:collapse; text-align:center; } .detailTitle { border:1px solid #666666; text-align:center; } .detailContent { border:1px solid #666666; text-align:center; } .footInfo { width:100%; margin-top:10px; } .footInfo table { border:none; width:100%; height:30px; } .footTitle { width:12%; text-align:right; font-size:14px; } .footContent { width:21%; text-align:left; font-size:14px; }
//公共的表头
//PrintTop.asxs
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UC_PrintTop.ascx.cs" Inherits="JN.UI.InventoryAdmin.UserControls.UC_PrintTop" %> <div class="prnTitle"> <div> <h1>ZXXXX公司</h1> </div> <div> <h3><%= PrintTitle %></h3> </div> </div>
//PrintTop.ascx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace JN.UI.InventoryAdmin.UserControls { public partial class UC_PrintTop : System.Web.UI.UserControl { #region 全局变量 private const string VIEWTITLE = "_subTitle"; #endregion #region 控件事件 protected void Page_Init(object sender, EventArgs e) { if (ViewState[VIEWTITLE] != null) this.PrintTitle = ViewState[VIEWTITLE].ToString(); } protected void Page_Load(object sender, EventArgs e) { } #endregion #region 属性 /// <summary> /// 打印文件头副标题 /// </summary> public string PrintTitle { get { if (ViewState[VIEWTITLE] != null) return ViewState[VIEWTITLE].ToString(); else return null; } set { if (value != null && value.Length > 0) { ViewState[VIEWTITLE] = value; } else ViewState[VIEWTITLE] = null; } } #endregion } }
//print.js
//以下是自己封装的JS打印、预览方法 //var LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); //var LODOP = getLodop(); var LODOP; //声明为全局变量 //打印预览 function printPreview(prnContentId) { LODOP.PRINT_INIT("Lodop功能_预览"); getPrintContent(prnContentId); LODOP.PREVIEW(); } //打印 function print(prnContentId) { LODOP.PRINT_INIT("Lodop功能_打印"); getPrintContent(prnContentId); LODOP.PRINT(); } //获取打印内容 function getPrintContent(prnContentId) { LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); //显示分页总计 //document.getElementById('pageSum').style.display = ""; //var cssRef = decodeURIComponent(document.getElementById('hidCssRef').value).replace(new RegExp(/\+/g)," "); //样式表文件 var cssRef = document.getElementById('hidCssRef').value; var cssInfo = '<style>' + $.ajax({ type: "GET", url: cssRef, async: false }).responseText + '</style>'; //LODOP = getLodop(); //初始化打印任务名 //LODOP.PRINT_INIT("Lodop打印控件_打印表单"); //打印预览设置 var intDispMode = 2; //预览比例: 0-适高, 1-正常大小, 2-适宽; var intToolMode = 0; //工具条和按钮: 0-显示上方工具栏, 1-显示下方按钮兰, 3-两个都显示, 4-两个都不显示. var blDirectPrint = 0; //打印按钮是否"直接打印": 1-是, 0-否(选取打印机) var intWidth = 1024; //窗口的宽(单位:px) var intHeight = 768; //窗口的高(单位:px) var strTitleButtonCaption = ''; //预览窗口和打印按钮的名称组合, 字符型, 用"点"分隔 LODOP.SET_PREVIEW_WINDOW(intDispMode, intToolMode, blDirectPrint, intWidth, intHeight, strTitleButtonCaption); //设置打印纸张大小. var intOrient = 1; //设置打印方向: 1-纵向(固定纸张), 2-横向(固定纸张), 3-纵向(宽度固定, 高度自适应), 0-方向不定(操作者自行设置). var intPageWidth = 2100; //纸张宽度(单位0.1mm), 如:45表示4.5mm var intPageHeight = 1480; //纸张高度(单位0.1mm): 固定纸张时,表示纸张高; 自适应高度时, 表示纸张底边的空白高. 1480 var strPageName = 'CreateCustomPage'; //纸张类型: intPageWidth和intPageHeight都为0时才有效. 可使用"CreateCustomPage"在系统内建立名为"LodopCustomPage"的自定义纸张类型. LODOP.SET_PRINT_PAGESIZE(intOrient, intPageWidth, intPageHeight, strPageName); //设置打印风格 //LODOP.SET_PRINT_STYLE("FontSize", 11); //LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT", "Full-Width"); //设置打印缩放: 第二个参数可选值(Full-Width, Full-Height, Full-Page, Auto-Width, Auto-Height, Width:200%, Width:200%;Height:200%,55%) LODOP.SET_PRINT_MODE("POS_BASEON_PAPER", true); //这里设置打印内容(Top,Left,Width,Height) //var tabStyle = "<style>table,th,td {border:1px solid #666666;border-collapse:collapse; text-align: center; font-size:small;} table {width:92%;margin:0 auto;}</style>"; //LODOP.ADD_PRINT_TABLE(180, "5%", "100%", 325, tabStyle + document.getElementsByClassName('detailInfo')[0].innerHTML); //LODOP.ADD_PRINT_HTM("5%", "5%", "100%", 140, cssRef + '<body>' + document.getElementById(prnContentId).innerHTML + '</body>'); LODOP.ADD_PRINT_TABLE(155, "10%", "90%", 325, cssInfo + document.getElementsByClassName('detailInfo')[0].innerHTML); //LODOP.SET_PRINT_STYLEA(0, "Vorient", 3); //第一个参数:(1:页眉页脚;2:页号项;3:页数项;4:多页打印;0:普通项); 第二个参数(属性);第三个参数(值); LODOP.SET_PRINT_STYLEA(0, "ItemType", 4); LODOP.SET_PRINT_STYLEA(0, "Horient", 3); LODOP.SET_PRINT_STYLEA(0, "Vorient", 3); LODOP.ADD_PRINT_HTM("5%", "10%", "90%", 125, cssInfo + document.getElementById(prnContentId).innerHTML); LODOP.SET_PRINT_STYLEA(0, "ItemType", 1); LODOP.SET_PRINT_STYLEA(0, "LinkedItem", 1); LODOP.ADD_PRINT_HTM(485, "10%", "90%", 100, cssInfo + document.getElementsByClassName('footInfo')[0].innerHTML); LODOP.SET_PRINT_STYLEA(0, "ItemType", 1); LODOP.SET_PRINT_STYLEA(0, "LinkedItem", 1); LODOP.ADD_PRINT_HTM(485, 665, 80, 20, "<font size='1'><span tdata='pageNO'>第##页</span>/<span tdata='pageCount'>共##页</span></font>"); LODOP.SET_PRINT_STYLEA(0, "ItemType", 1); LODOP.SET_PRINT_STYLEA(0, "LinkedItem", 1); //显示分页总计 //document.getElementById('pageSum').style.display = "none"; }
//项目添加了Lodop饮用后, 把自身的JS文件的修改下, 添加上未安装控件时引用自身目录下的控件文件
//LodopFuncs.js
//以下是自己封装的JS打印、预览方法 //var LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); //var LODOP = getLodop(); var LODOP; //声明为全局变量 //打印预览 function printPreview(prnContentId) { LODOP.PRINT_INIT("Lodop功能_预览"); getPrintContent(prnContentId); LODOP.PREVIEW(); } //打印 function print(prnContentId) { LODOP.PRINT_INIT("Lodop功能_打印"); getPrintContent(prnContentId); LODOP.PRINT(); } //获取打印内容 function getPrintContent(prnContentId) { LODOP = getLodop(document.getElementById('LODOP_OB'), document.getElementById('LODOP_EM')); //显示分页总计 document.getElementById('pageSum').style.display = ""; //var cssRef = decodeURIComponent(document.getElementById('hidCssRef').value).replace(new RegExp(/\+/g)," "); var cssRef = document.getElementById('hidCssRef').value; //LODOP = getLodop(); //初始化打印任务名 //LODOP.PRINT_INIT("Lodop打印控件_打印表单"); //打印预览设置 var intDispMode = 2; //预览比例: 0-适高, 1-正常大小, 2-适宽; var intToolMode = 0; //工具条和按钮: 0-显示上方工具栏, 1-显示下方按钮兰, 3-两个都显示, 4-两个都不显示. var blDirectPrint = 0; //打印按钮是否"直接打印": 1-是, 0-否(选取打印机) var intWidth = 1024; //窗口的宽(单位:px) var intHeight = 680; //窗口的高(单位:px) var strTitleButtonCaption = ''; //预览窗口和打印按钮的名称组合, 字符型, 用"点"分隔 LODOP.SET_PREVIEW_WINDOW(intDispMode, intToolMode, blDirectPrint, intWidth, intHeight, strTitleButtonCaption); //设置打印纸张大小. var intOrient = 2; //设置打印方向: 1-纵向(固定纸张), 2-横向(固定纸张), 3-纵向(宽度固定, 高度自适应), 0-方向不定(操作者自行设置). var intPageWidth = 0; //纸张宽度(单位0.1mm), 如:45表示4.5mm var intPageHeight = 0; //纸张高度(单位0.1mm): 固定纸张时,表示纸张高; 自适应高度时, 表示纸张底边的空白高. 1480 var strPageName = 'A5'; //纸张类型: intPageWidth和intPageHeight都为0时才有效. 可使用"CreateCustomPage"在系统内建立名为"LKodopCustomPage"的自定义纸张类型. LODOP.SET_PRINT_PAGESIZE(intOrient, intPageWidth, intPageHeight, strPageName); //设置打印风格 //LODOP.SET_PRINT_STYLE("FontSize", 11); //这里设置打印内容(Top,Left,Width,Height) //alert(document.getElementsByClassName('detailInfo')[0].innerHTML); var tabStyle = "<style>table,th,td {border:1px solid #666666;border-collapse:collapse;} table {width:92%;margin:0 auto;}</style>"; LODOP.ADD_PRINT_TABLE(180, "5%", "100%", 325, tabStyle + document.getElementsByClassName('detailInfo')[0].innerHTML); LODOP.SET_PRINT_STYLEA(0, "Vorient", 3); LODOP.ADD_PRINT_HTM("5%", "5%", "100%", 145, cssRef + '<body>' + document.getElementById(prnContentId).innerHTML + '</body>'); LODOP.SET_PRINT_STYLEA(0, "ItemType", 1); LODOP.SET_PRINT_STYLEA(0, "LinkedItem", 1); //LODOP.ADD_PRINT_HTM("5", "5%", "100%", 500, cssRef + '<body>' + document.getElementById(prnContentId).innerHTML + '</body>'); //LODOP.ADD_PRINT_TABLE(160, "5%", "100%", 480, document.getElementsByClassName('detailInfo')[0].innerHTML); LODOP.ADD_PRINT_HTM(508, "5%", "100%", 100, cssRef + '<body>' + document.getElementsByClassName('footInfo')[0].innerHTML + '</body>'); LODOP.SET_PRINT_STYLEA(0, "ItemType", 1); LODOP.SET_PRINT_STYLEA(0, "LinkedItem", 1); LODOP.ADD_PRINT_HTM(508, 700, 80, 20, "<font size='1'><span tdata='pageNO'>第##页</span>/<span tdata='pageCount'>共##页</span></font>"); LODOP.SET_PRINT_STYLEA(0, "ItemType", 1); LODOP.SET_PRINT_STYLEA(0, "LinkedItem", 1); //显示分页总计 document.getElementById('pageSum').style.display = "none"; }
//补充一个打印参数详解的内容, 摘自: http://blog.sina.com.cn/s/blog_a3869e9a0102wnoy.html
例子: LODOP.PRINT_INIT("打印任务名"); LODOP.SET_PRINT_COPIES(2); bdhtml=window.document.body.innerHTML; var hei = $('#div1').outerHeight(); string = prnhtml; LODOP.SET_PRINT_PAGESIZE (3,'6cm','2cm',2); LODOP.ADD_PRINT_HTM(0,0,227,hei,string); LODOP.SET_PRINTER_INDEXA(-1) LODOP.PRINT(); Lodop发布包内主要有如下几个文件: install_lodop.exe 该文件是控件安装和升级的主文件,提供给用户或开发者下载安装,如果不特意拦截一般都能100%安装,对“网页插件安装难”有一定改善。如果将其复制或改名为uninstall_lodop.exe (名前加un)就可用其卸载控件。 Lodop安装后,在操作系统目录WINDOWS\system32下会安装两个实体文件:CAOSOFT_WEB_PRINT_LODOP.OCX和NPCAOSOFT_WEB_PRINT_lodop.dll,前一个文件是OCX文件,后者是Npplugin文件,其作用是实现多浏览器支持。目前Lodop支持IE系列、IE内核系列(遨游、360、世界之窗、腾讯TT、搜狗等)浏览器,以及Firefox(火狐)系列、Chrome(谷歌)系列、Opera系列、Safari系列等Windows下几乎所有的浏览器。 程序文件有几个预定参数: -waitXX该参数设置安装程序运行完毕后自动关闭窗口,这里的XX表示关闭前等待的秒数,如果是0秒则安装(或卸载)成功后立即关闭,例如:–wait8 -nowindow 该参数设置安装程序运行时不出现窗口。 -un 该参数使程序执行卸载操作,参数优先于文件名。 -in 该参数使程序执行安装操作,参数优先于文件名。 安装界面如下: LodopFuncs.js 该文件是用来引导安装控件的一个JS文件,是个样例,但建议直接采用。其中getLodop的任务是判断浏览器的类型并决定采用哪个对象实例,并检测控件是否安装、是否最新版本、并引导安装或升级。文件内容如下: func tion getLodop(oOBJECT,oEMBED){ var strHtml1=" < fo nt color="#FF00FF">打印控件未安装!点击这里执行安装,安装后请刷新页面或重新进入。"; var strHtml2=" < fo nt color="#FF00FF">打印控件需要升级!点击这里执行升级,升级后请重新进入。"; var strHtml3=" < fo nt color="#FF00FF">(注:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】中先卸载它)"; var LODOP=oEMBED; try{ if (navigator.appVersion.indexOf("MSIE")>=0) LODOP=oOBJECT; if ((LODOP==null)||(typeof(LODOP.VERSION)=="undefined")) { if (navigator.userAgent.indexOf('Firefox')>=0) docu ment.docu mentElement.innerHTML=strHtml3+docum ent.docum entElement.innerHTML; if (navigator.appVersion.indexOf("MSIE")>=0) document.write(strHtml1); else docu ment.docume ntElement.innerHTML=strHtml1+docu ment.docume ntElement.innerHTML; } else if (LODOP.VERSION<"6.0.0.1") { if (navigator.appVersion.indexOf("MSIE")>=0) document.write(strHtml2); else docu ment.docum entElement.innerHTML=strHtml2+docu ment.docume ntElement.innerHTML; } //*****如下空白位置适合调用统一功能:********* //******************************************* return LODOP; }catch(err){ docu ment.documen tElement.innerHTML="Error:"+strHtml1+docum ent.docume ntElement.innerHTML; return LODOP; } } 其中的关键点是VERSION函数,Lodop提供了这个“读版本号”功能,这样控件的安装和升级任务就交给JS来实现,以下是控件在页面内的调用代码,其中包含getLodop的使用: < scri pt lang uage="javas cript" src="Lodop Funcs.js" > < object id="LODOP" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width="0" height="0" > < emb ed id="LODOP_EM" type="application/x-print-lodop" width="0" height="0" > < scr ipt="" language="javascript" > var LODOP=getL odop( document.getEle mentById('LODOP'),docu ment.getElem entById('LODOP_EM')) ; < /sc ript > … 以上两段代码相互配合实现了Lodop的安装、调用和升级。之所以将LodopFuncs.js作为一个资源文件来部署,既可以利用浏览器的缓存减少页面内容的重复下载,同时还实现了控件发布统一管理,整个应用系统中只要这一个地方发布Lodop。其它页面直接拷贝嵌入第2段代码就可以了。 三、控件参数 Lodop有如下控件参数,以页面object对象元素的参数形式使用: Caption 名称:设置控件的显示标题 格式: < pa ram name="Caption" value="我是打印控件lodop" > 功能: 控件在页面内一般是以object元素形式被引用。可以通过设置元素的width和height等于0来隐藏控件,不隐藏时可以为控件设置一个标题,以便于看到控件是否被正确安装,以及控件对象在页面内的位置。希望打印预览界面或设计界面内嵌到网页内时,本参数很有用。 Color 名称:设置控件的显示区域颜色 格式: < par am name="Color" value="#C0C0C0" > 功能:通过该参数设置控件显示区域的底色,对于希望打印预览界面或设计界面内嵌到网页内时,本参数可以让控件容易融于整体页面。 参数值采用超文本颜色形式,可以是三色16进制值组合,也可以是英文颜色名。 Border 名称:设置控件的显示区域边界 格式: < par am name="Border" value="1" > 功能:通过该参数设置控件显示区域的边界,值等于1表示有边界,否则无边界。本参数可以让控件更融于整体页面。 另外,控件还有三个用于注册的辅助参数,参考后面《软件使用权注册》一节。 四、功能函数 Lodop的功能函数不多,但参数比较复杂。全部函数分“基本函数”和“扩展函数”两类,两类函数有类似性,基本函数使用简单,达不到要求时请使用扩展函数,二者无本质区别。 1、基本函数 VERSION 名称:获得软件版本号 格式:VERSION 结果:返回字符型结果 版本号有四个数字组成,样式为:X.X.X.X PRINT_INIT 名称:打印初始化 格式:PRINT_INIT(strTaskName) 功能:初始化运行环境,清理异常打印遗留的系统资源,设定打印任务名。 参数: strTaskName: 打印任务名,字符型参数,由开发者自主设定,未限制长度,字符要求符合Windows文件起名规则,Lodop会根据该名记忆相关的打印设置、打印维护信息。 若strTaskName空,控件则不保存本地化信息,打印全部由页面程序控制。 结果:返回逻辑值 返回逻辑真表示初始化成功,逻辑假表示初始化失败,失败原因有:前一个打印事务没有完成;操作系统没有打印机(驱动)等。 建议或要求: 该函数与PRINT_INITA都有初始化功能,每个打印事务至少初始化一次,建议打印程序首先调用该函数。任务名要尽量区别于其它打印任务,譬如用“XX单位_XX管理信息系统_XX子系统_XX模块_XX打印作业”字样。 不希望最终用户更改打印布局时,则设strTaskName空。 SET_PRINT_PAGESIZE 名称:设定纸张大小 格式:SET_PRINT_PAGESIZE(intOrient, PageWidth,PageHeight,strPageName) 功能:设定打印纸张为固定纸张或自适应内容高,并设定相关大小值或纸张名及打印方向。 参数: intOrient: 打印方向及纸张类型,数字型, 1---纵(正)向打印,固定纸张; 2---横向打印,固定纸张; 3---纵(正)向打印,宽度固定,高度按打印内容的高度自适应; 0(或其它)----打印方向由操作者自行选择或按打印机缺省设置; PageWidth: 设定自定义纸张宽度,整数或字符型,整数时缺省长度单位为0.1毫米。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。 纸张宽,单位为0.1mm譬如该参数值为45,则表示4.5mm,计量精度是0.1mm。 PageHeight: 固定纸张时设定纸张高;高度自适应时设定纸张底边的空白高。整数或字符型,整数时缺省长度单位为0.1毫米。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。 高小于等于0时strPageName才起作用。 strPageName: 所选纸张类型名,字符型。不同打印机所支持的纸张可能不一样,这里的名称同操作系统内打印机属性中的纸张名称,支持操作系统内的自定义纸张。 关键字“CreateCustomPage”会按以上宽度和高度自动建立一个自定义纸张,所建立的纸张名固定为“LodopCustomPage”,多次建立则刷新该纸张的大小值。 注:PageWidth、PageHeight和strPageName都无效时,本函数对纸张大小不起作用,控件则采用所选打印机的默认纸张,但intOrient仍可起作用。 如果打印程序未采用扩展方式(PRINT_INITA)初始化,本函数的固定纸张功能所定制的纸张大小,会起到PRINT_INITA中Width和Height的相同功能。 实际打印时,控件按如下优先级顺序确定纸张大小: 第1优先是打印维护里纸张属性(“本机自行定义纸张”)设置的纸张大小。 第2优先是SET_PRINT_PAGESIZE指定的纸张大小; 第3优先是上次打印时在预览界面设置里选择的纸张类型; 第4是按所选打印机的默认纸张; 结果:无 建议或要求: 打印初始化之后调用。 如果打印纸张不固定,希望由操作者自主选择纸张时,则不要调用本函数。 ADD_PRINT_HTM 名称:增加超文本打印项(普通模式) 格式:ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent) 功能:增加超文本打印项,设定该打印项在纸张内的位置和区域大小,实现超文本控制打印。 参数: Top: 所增打印项在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 所增打印项在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 打印区域的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 打印区域的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,控件按这个值自动分页。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 strHtmlContent: 超文本代码内容,字符型,未限制长度。可以是一个完整的页面超文本代码,或者是一个代码段落,也可以是URL:web地址形式的URL地址。 Lodop专有样式和属性有: ●代码中若包含style="page-break-after:always"或style="page-break-before:always",该元素称为“强制分页元素”,控件会在该元素处分页。 ●代码中的标签IMG如果有transcolor属性,则可以实现透明打印图片。例如属性格式为:transcolor="#FFFFFF"表示用白色作为透明底色,这里的颜色值可以是“#”加三色16进制值组合,也可以是英文颜色名。这个专有属性再配合IMG的position: absolute可以实现“先字后章”的公章打印效果。 ●代码中的元素如果包含borderthin属性,如果属性值等于true,则该元素的border在合并单元格时会采用单细线模式。 结果:无 建议或要求: 要求在打印初始化后使用,建议在画线类函数之后调用。注意“强制分页元素”要符合xhtml规范,建议用跨整行的元素,内容不能空,内容可以是“ ”。强制分页符对其它Lodop函数无效,仅适用本函数。 ADD_PRINT_TABLE 名称:增加表格打印项(超文本模式) 格式:ADD_PRINT_TABLE(Top,Left,Width,Height,strHtml) 功能:用超文本增加一个表格打印项,设定该表格在每个纸张内的位置和区域大小。打印时只输出首个页面元素table的显示内容,当table内包含thead或tfoot时,一旦表格被分页,则每个打印页都输出表头(thead)或表尾(tfoot)。 参数: Top: 表格数据头(页头thead)在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 表格数据头(页头thead)在纸张内的左边距,整数或字符型,字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 打印区域的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 表格数据体(tbody)区域的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。控件按这个值自动分页。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 strHtml: 超文本代码内容,字符型,未限制长度。可以是一个完整的页面超文本代码,或者是一个代码段落,也可以是URL:web地址形式的URL地址。要求实际内容中至少包含一个table元素。 特别说明:本函数能识别的超文本专有元素属性有tdata、format、tclass、tindex等四个,它们主要用来实现分页小计、分类合计等统计功能,这四个属性可以用在table内的任何元素上,包含tdata属性的超文本元素下面称为“统计结果元素”,被统计的超文本元素称为“数据元素”,它们的属性值及其含义如下: ①tdata:设置统计类型,其值和含义为: subCount---本页行数,即本页该数据列的单元格行数; subSum---本页合计,即本页该数据列的数值合计; subAverage---本页平均数,即本页合计除以本页行数; Count---累计行数,即从第一页到本页的该列行数的累加值; Sum---累计数,即从第一页到本页的该列数值的累加值; Average---累计平均数,即累计数除以累计行数; allCount---总行数,即该列全表的行数; allSum---总计数,即该列全表的数值总和; allAverage---总平均数,即全表总计数除以总行数; pageNO---页号,即本table页的序号(与打印纸张的页号不一定相同); pageCount---总页数,即全(table)表被分成的总页数; ②format:设置统计结果的显示格式,其值如下样式: “0”“0.00””“#.##”“#,##0.00”“0.000E+00”“#.###E-0”“UpperMoney(大写金额)”等等,其中的“#”表示当数据为0时不显示。 ③tclass:设置分类统计的“类名”,其值可任意设置,在分类统计时,“统计结果元素”和“数据元素”的tclass值必须一致。 ④tindex:一般要求“统计结果元素”的位置与“数据元素”的列位置一致或内含在“数据元素”列内,如果位置无法一致,可以用tindex指定对应的数据列,该值是数字型的列序号,从1起始。 ⑤占位符:一个要显示统计结果的“统计结果元素”必须要包含占位符,占位符是任意个“#”组成的字符串,占位符可以与其它内容混合在一起,当统计结果值较大时,开发者需要注意占位符要占用足够多的位置,除非占位符周围有合理的空白区,避免统计结果与普通内容重叠。 结果:无 建议或要求: 要求在打印初始化后调用,建议在画线类函数之后调用。 ADD_PRINT_URL 名称:增加超文本打印项(URL模式) 格式:ADD_PRINT_URL(Top,Left,Width,Height,strURL) 功能:按URL地址增加超文本打印项,设定该打印项在纸张内的位置和区域大小。 参数: Top: 所增打印项在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 所增打印项在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 打印区域的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 打印区域的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。控件按这个值自动分页。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 strURL: 页面URL地址,字符型,未限制长度。 结果:无 建议或要求: 要求在打印初始化后调用,建议在画线类函数之后调用。 ADD_PRINT_TEXT 名称:增加纯文本打印项 格式:ADD_PRINT_TEXT(Top,Left,Width,Height,strContent) 功能:增加纯文本打印项,设定该打印项在纸张内的位置和区域大小,文本内容在该区域内自动折行,当内容超出区域高度时,如果对象被设为“多页文档”则会自动分页继续打印,否则内容被截取。 参数: Top: 打印项在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。当上边距超过纸张高度时,打印项被输出在下一页(或更下页)。 Left: 打印项在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 打印区域的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 打印区域的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 strContent: 纯文本内容,字符型,未限制长度。 结果:无 建议或要求: 要求在打印初始化后调用,建议在画线类函数之后调用。 ADD_PRINT_IMAGE 名称:增加图片打印项 格式:ADD_PRINT_IMAGE(Top,Left,Width,Height,strHtmlContent) 功能:增加图片打印项,设定该打印项在纸张内的位置和区域大小。 参数: Top: 所增打印项在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 所增打印项在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 图片的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 图片的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。图片大时被截取,不会分到下页。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 strHtmlContent: 本参数是字符型,有三种情况:一是超文本代码内容;二是本地文件名内容;第三是WEB地址。第一种情况一般是用IMG标签组成的超文本代码段落。第二种情况是本地文件名全路径,格式如“C:/test.jpg”。第三种情况是是URL:web地址形式的URL地址。 结果:无 建议或要求: 要求在打印初始化后调用,建议在画线类函数之后调用。 本函数可用ADD_PRINT_HTM代替,但区别是其仅取超文本第一个图片元素,边距是0,而且打印时不因为设计区域小于图片而被分页,适合与纯文本组合打印的插图。 ADD_PRINT_RECT 名称:增加矩形线 格式:ADD_PRINT_RECT(Top, Left, Width, Height,intLineStyle, intLineWidth) 功能:增加矩形线打印项,设定该矩形在纸张内的位置和大小,设定线条的类型和线条宽度。 参数: Top: 该矩形在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。当上边距超过纸张高度时,打印项被输出在下一页(或更下页)。 Left: 该矩形在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 该矩形的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 该矩形的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。宽和高相等时是正方形。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 intLineStyle: 线条类型,数字型,0--实线 1--破折线 2--点线 3--点划线 4--双点划线 缺省线条是实线。 intLineWidth: 线条宽,整数型,单位是(打印)像素,缺省值是1,非实线的线条宽也是0。 结果:无 建议或要求: 要求在打印初始化后调用,建议在文本类函数之前调用。 ADD_PRINT_ELLIPSE 名称:增加椭圆线 格式: ADD_PRINT_ELLIPSE(Top, Left,Width, Height, intLineStyle, intLineWidth) 功能:增加椭圆线打印项,设定该椭圆在纸张内的位置和大小,设定线条的类型和线条宽度。 参数: Top: 该椭圆的外缘矩形在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 当上边距超过纸张高度时,打印项被输出在下一页(或更下页)。 Left: 该椭圆的外缘矩形在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 该椭圆的外缘矩形的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 该椭圆的外缘矩形的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,宽和高相等时是圆。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 intLineStyle: 线条类型,数字型,0--实线 1--破折线 2--点线 3--点划线 4--双点划线 缺省线条是实线。 intLineWidth: 线条宽,整数型,单位是(打印)像素,缺省值是1,非实线的线条宽也是0。 结果:无 建议或要求: 要求在打印初始化后调用,建议在文本类函数之前调用。 ADD_PRINT_LINE 名称:增加直线 格式: ADD_PRINT_LINE(Top1,Left1, Top2, Left2,intLineStyle, intLineWidth) 功能:增加直线,设定直线的两个端点,设定直线的线条类型和线宽。 参数: Top1: 端点1的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 当上边距超过纸张高度时,打印项被输出在下一页(或更下页)。 Left1: 端点1的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Top2: 端点2的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用BottomMargin关键字转义为端点2相对于纸张的“下边距”。 Left2: 端点2的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为端点2相对于纸张的“右边距”。 intLineStyle: 线条类型,数字型,0--实线 1--破折线 2--点线 3--点划线 4--双点划线 缺省线条是实线。 intLineWidth: 线条宽,整数型,单位是(打印)像素,缺省值是1,非实线的线条宽也是0。 结果:无 建议或要求: 要求在打印初始化后调用,建议在文本类函数之前调用。 ADD_PRINT_BARCODE 名称:增加条形码 格式: ADD_PRINT_BARCODE(Top, Left,Width, Height, CodeType, CodeValue) 功能:增加条形码打印项,设定该条形码在纸张内的位置和大小,指定条形码的类型和条码值,控件在打印机上直接绘制条码图。 参数: Top: 该条码图在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 该条码图在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 该条码图的总宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。条码密度会根据宽度自动调整,直到最小密度,也就是单条宽等于1px时。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 该条码图的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,宽和高相等时是圆。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 CodeType: 条码类型,字符型。目前支持的类型(条码规制)主要是一维条码,有如下几种: 128A,128B,128C,EAN8,EAN13,EAN128A,EAN128B,EAN128C,Code39, 39Extended,2_5interleaved,2_5industrial,2_5matrix,UPC_A,UPC_E0,UPC_E1,UPCsupp2,UPCsupp5,Code93,93Extended,MSI,PostNet,Codaba,QRCode。 其中QRCode二维码,其它为一维码。默认情况下QRCode的版本会根据宽度和高度自动调整,页面程序也可以直接设置具体版本(有1、3、7、14四个简约版本可选),版本固定时会按宽度和高度自动缩放条码大小。 CodeValue: 条码值。 结果:无 建议或要求: 要求在初始化之后,打印或预览之前调用。 ADD_PRINT_CHART 名称:增加图表 格式: ADD_PRINT_CHART(Top, Left,Width, Height, ChartType, strHtml) 功能:增加图表打印项,设定该图表在纸张内的位置和大小,指定图表的类型和生成图表的数据来源,一般数据来源于一个超文本的Table,本函数可以快速清晰的生成任何复杂的图表。 参数: Top: 该图表在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Left: 该图表在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 该图表的总宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。 Height: 该图表的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。 ChartType: 图表类型代码,整数型,目前支持的图表类型有如下几种: 0--折线图;1--柱状图;2--条形图;3--面积图;4--散点图;5--饼图; 6--直线图;7--甘特图;8--箭头图;9--气泡图;10—几何图; strHtml: table的超文本代码,用该table的数据来生成图表,数据结构定义如下几种: 一是“通用table”结构,这种结构的第一行提供图表的Label,第一列提供图表的图例名称,其它行列单元提供图表的Value,多数情况下Label作为X轴数据、Value作为Y轴数据来建立图表,本结构适合前7种图表; 二是“甘特图table”结构,这种结构仅适合甘特图,该Table的第一列是甘特图的阶段名称,可任意起名,第二列是“计划开始时间”,第三列是“计划完成时间”,第四列是“实际开始时间”,第五列是“实际完成时间”。注意第一行第二列和第一行第三列的“名称相同部分”会与第一列的内容组合成图表的“开始阶段的标注”,第一行第四列和第一行第五列的“名称相同部分”会与第一列的内容组合成图表的“实际阶段的标注”,。 三是“箭头图table”结构,这种结构仅适合箭头图,该Table的第一列是每个箭头的名称,可任意起名,第二列是“箭头起点X值”,第三列是“箭头起点Y值”,第四列是“箭头终点X值”,第五列是“箭头终点Y值”。 四是“气泡图table”结构,这种结构仅适合气泡图,该Table的第一列是每个气泡的名称,可任意起名,第二列是“气泡圆心X值”,第三列是“气泡圆心Y值”,第四列是“气泡圆的半径值”。 五是“几何图table”结构,这种结构仅适合几何图,该Table的第一列是每个几何图的名称,可任意起名,第二列是“左下角位置X值”,第三列是“左下角位置Y值”,第四列是“几何图的宽”,第五列是“几何图的高”,第六列是“几何图的图形代码”,第七列是“几何图的颜色”,第八列是“几何图是否透明”,1代表透明,0代表不透明。其中图形代码如下:0-矩形;1--圆形;2--竖线;3--横线;4--三角形;5--倒三角形;6--斜线;7--菱形;8--立方体;9--十字线;10--斜十字线;11--米字线;12--三角锥;13--倒三角锥。颜色有RGB值、16进制组合值或英文名三种描述法。 结果:无 建议或要求: 要求在初始化之后,打印或预览之前调用。 SET_PRINT_STYLE 名称:设置打印项风格 格式: SET_PRINT_STYLE(strStyleName,varStyleValue) 功能:设置打印项的输出风格,成功执行该函数,此后再增加的打印项按此风格输出。 参数: strStyleName:打印风格名,风格名称及其含义如下: “FontName”:设定纯文本打印项的字体名称。 “FontSize”:设定纯文本打印项的字体大小。 “FontColor”:设定纯文本打印项的字体颜色。 “Bold”:设定纯文本打印项是否粗体。 “Italic”:设定纯文本打印项是否斜体。 “Underline”:设定纯文本打印项是否下滑线。 “Alignment”:设定纯文本打印项的内容左右靠齐方式。 “Angle”:设定纯文本打印项的旋转角度。 “ItemType”:设定打印项的基本属性。 “HOrient”:设定打印项在纸张内的水平位置锁定方式。 “VOrient”:设定打印项在纸张内的垂直位置锁定方式。 “PenWidth”:线条宽度。 “PenStyle”:线条风格。 “Stretch”:图片截取缩放模式。 “PreviewOnly”:内容仅仅用来预览。 “ReadOnly”:纯文本内容在打印维护时,是否禁止修改。 varStyleValue:打印风格值,相关值如下: FontName的值:字符型,与操作系统字体名一致,缺省是“宋体”。 FontSize的值:数值型,单位是pt,缺省值是9,可以含小数,如13.5。 FontColor的值:整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名; Bold的值:数字型,1代表粗体,0代表非粗体,缺省值是0。 Italic的值:数字型,1代表斜体,0代表非斜体,缺省值是0。 Underline的值:数字型,1代表有下划线,0代表无下划线,缺省值是0。 Alignment的值:数字型,1--左靠齐 2--居中 3--右靠齐,缺省值是1。 Angle的值:数字型,逆时针旋转角度数,单位是度,0度表示不旋转。 ItemType的值:数字型,0--普通项 1--页眉页脚 2--页号项 3--页数项 4--多页项 缺省(不调用本函数时)值0。普通项只打印一次;页眉页脚项则每页都在固定位置重复打印;页号项和页数项是特殊的页眉页脚项,其内容包含当前页号和全部页数;多页项每页都打印,直到把内容打印完毕,打印时在每页上的位置和区域大小固定一样(多页项只对纯文本有效) 在页号或页数对象的文本中,有两个特殊控制字符: “#”特指“页号”,“&”特指“页数”。 HOrient的值:数字型,0--左边距锁定 1--右边距锁定 2--水平方向居中 3--左边距和右边距同时锁定(中间拉伸),缺省值是0。 VOrient的值:数字型,0--上边距锁定 1--下边距锁定 2--垂直方向居中 3--上边距和下边距同时锁定(中间拉伸),缺省值是0。 PenWidth的值:整数型,单位是(打印)像素,缺省值是1,非实线的线条宽也是0。 PenStyle的值:数字型,0--实线 1--破折线 2--点线 3--点划线 4--双点划线 缺省值是0。 Stretch的值:数字型,0--截取图片 1--扩展(可变形)缩放 2--按原图长和宽比例(不变形)缩放。缺省值是0。 PreviewOnly的值:字符或数字型,1或“true”代表仅预览,否则为正常内容。 ReadOnly的值:字符或数字型,1或“true”代表“是”,其它表示“否”,缺省值为“是”,即缺省情况下,纯文本内容在打印维护时是禁止修改的。 结果:无 建议或要求: 打印初始化后、增加打印项之前调用本函数。 NEWPAGE 名称:强制分页 格式:NEWPAGE() 功能:强制分页。执行该函数之后所增加的内容会在前面内容的首页之后新建一页输出,前面无内容时,仍然从第一页开始。 参数:无 结果:返回逻辑值 返回逻辑真表示强制分页成功,逻辑假表示强制分页失败。 建议或要求: 打印初始化后调用本函数。 PREVIEW 名称:打印预览 格式:PREVIEW() 功能:打印预览输出页。 参数:无 结果:显示打印预览界面。如果预览界面没有被嵌入页面中,而是被弹出窗口,那么关闭窗口时会返回数字结果值,该数字大于0时表示被实际打印的次数。 建议或要求: 建立打印页之后运行。 PRINT 名称:直接打印 格式:PRINT() 功能:不经打印预览的直接打印。 参数:无 结果:打印机开始实际打印,返回逻辑结果,正确打印时返回真,打印出错时返回假。 建议或要求: 建立打印页之后运行。 PRINT_SETUP 名称:打印维护 格式:PRINT_SETUP() 功能:对整页的打印布局和打印风格进行界面维护,它与打印设计的区别是不具有打印项增删功能,目标使用者是最终用户。 参数:无 结果:显示打印维护界面。如界界面没有被嵌入页面中,而是被弹出窗口,那么关闭窗口时会返回数字结果值,该数字大于0时表示被实际打印的次数,这里的实打次数包括打印维护界面“打印”按钮的直接打印和“预览”按钮进入预览后的打印。 建议或要求: 建立打印页之后运行。 PRINT_DESIGN 名称:打印设计 格式:PRINT_DESIGN () 功能:对整页的打印布局和打印风格进行界面设计,它与打印维护的区别是具有打印项增删功能,目标使用者是软件开发者。 参数:无 结果:显示打印设计界面,设计完毕关闭窗口后,返回生成的程序代码。 建议或要求: 建立打印页之后运行。 GET_PRINTER_COUNT 名称:获得打印设备个数 格式:GET_PRINTER_COUNT() 功能:获得操作系统内打印设备的个数。 参数:无 结果:返回数字 返回数字结果表示操作系统内的打印设备个数,0表示失败或无打印设备。 建议或要求: 任何时间调用均可。 GET_PRINTER_NAME 名称:获得打印设备名称 格式:GET_PRINTER_NAME(intPrinterNO) 功能:按打印设备序号获得其名称。 参数: intPrinterNO: 打印设备序号,数字型,序号从0开始,最大序号是GET_PRINTER_COUNT()减1。 结果:返回字符 返回字符结果表示操作系统内的打印设备的名称,空表示失败或无该设备。 建议或要求: 任何时间调用均可。 SET_PRINTER_INDEX 名称:指定打印设备 格式:SET_PRINTER_INDEX(oIndexOrName) 功能:按名称或序号指定要进行打印输出的设备,指定后禁止重新选择。。 参数: oIndexOrName: 打印机名称或序号,字符或数字型。数字表示打印机的序号,从0开始,最大序号是GET_PRINTER_COUNT()减1。-1特指操作系统内设定的默认打印机。 字符代表打印机的名称,与操作系统内的打印机名称一致。 注:用本函数指定打印机后,在预览界面不允许重新选择打印机,而用另外一个函数SET_PRINTER_INDEXA指定后则允许重新选择。 结果:返回逻辑值 返回逻辑真表示指定成功,逻辑假表示指定失败,失败原因有:该打印设备不存在。 建议或要求: 要求在初始化之后、打印或预览之前调用。 SELECT_PRINTER 名称:选择打印设备 格式:SELECT_PRINTER 功能:弹出界面选定某打印设备为固定输出设备。 参数:无 结果:返回数字 返回数字结果表示选定的设备序号,返回-1表示放弃选择,没有任何动作。 建议或要求: 直接打印前或打印预览前调用。本函数与SET_PRINTER_INDEX的功能效果一样。 SET_SHOW_MODE 名称:设置显示模式 格式: SET_SHOW_MODE (strModeType,varModeValue) 功能:设置打印预览、打印维护和打印设计的显示模式,设置打印预览时是否包含背景图等。 参数: strModeType显示模式的名称,字符型,如下是类型名及其含义: “PREVIEW_IN_BROWSE”:打印预览界面是否内嵌到网页内部。 “SETUP_IN_BROWSE”: 打印维护界面是否内嵌到网页内部。 “DESIGN_IN_BROWSE”:打印设计界面是否内嵌到网页内部。 “BKIMG_IN_PREVIEW”:打印预览时是否包含背景图。 “BKIMG_IN_FIRSTPAGE”:打印预览时是否仅首页包含背景图。 “SETUP_ENABLESS”:打印维护界面工具显示控制(权限控制字串) “SKIN_TYPE”:界面皮肤类型 “SKIN_CUSTOM_COLOR”:界面自定义皮肤颜色 “HIDE_PBUTTIN_PREVIEW”:隐藏预览窗口的打印按钮 “HIDE_SBUTTIN_PREVIEW”:隐藏预览窗口的打印设置按钮 “HIDE_QBUTTIN_PREVIEW”:隐藏预览窗口的关闭按钮 “HIDE_PBUTTIN_SETUP”:隐藏打印维护窗口的打印按钮 “HIDE_VBUTTIN_SETUP”:隐藏打印维护窗口的预览按钮 “HIDE_ABUTTIN_SETUP”:隐藏打印维护窗口的应用按钮 “HIDE_RBUTTIN_SETUP”:隐藏打印维护窗口的复原按钮 “MESSAGE_GETING_URL”:URL对象下载时的提示信息 “MESSAGE_PARSING_URL”:URL对象解析时的提示信息 “MESSAGE_PARSING_HTM”:HTM对象解析时的提示信息 “MESSAGE_NOSET_PROPERTY”:打印维护界面企图进入属性设置的警示信息 “HIDE_PAPER_BOARD”:隐藏打印预览背景进纸版的图案 “LANDSCAPE_DEFROTATED”:横向打印的预览默认旋转90度(正向显示) “BKIMG_LEFT”:设置背景图位置X值 “BKIMG_TOP”:设置背景图位置Y值 “BKIMG_WIDTH”:设置背景图宽度 “BKIMG_HEIGHT”:设置背景图高度 “HIDE_PAGE_PERCENT”:隐藏整页缩放(百分比)的下拉选择框 “LANGUAGE”:设置界面文字的语言 varModeValue显示模式的值,整数或字符型,相关值如下: PREVIEW_IN_BROWSE的值:整数或字符型,1或“1”或“True”=是,否则不是。 SETUP_IN_BROWSE的值:整数或字符型,1或“1”或“True”=是,否则不是。 DESIGN_IN_BROWSE的值:整数或字符型,1或“1”或“True”=是,否则不是。 BKIMG_IN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。 BKIMG_IN_FIRSTPAGE的值:整数或字符型,1或“1”或“True”=是,否则不是。 SETUP_ENABLESS的值:字符型,由“1”和“0”组成的字符串,最多14个字符, 按如下顺序控制打印维护的界面功能,“1”-允许,“0”-禁止: 位置移动和宽高调整1+颜色选择2+字体名选择3+字大小选择4+旋角调整5+粗斜体功能条6+线型功能条7+对齐功能条8+删除功能9+页眉设置10+页脚设置11+位置锁定功能12+属性设置13+显示关闭钮(界面内嵌时)14 缺省的SETUP_ENABLES值:“11111111000001” 例如:如想允许操作者“删除”对象,可以执行如下语句; LODOP.SET_SHOW_MODE("SETUP_ENABLES","11111111100001"); SKIN_TYPE的值:数字型,固定皮肤如下: 0--银灰色(缺省);1--经典绿; 2--熏衣草紫;3--淡钢青;4--茶色棕;5--茶色棕; 6--麦色;7--紫罗兰;8--天蓝;9--镀银;10--沙滩棕;11--鲜肉色;12--粉末蓝;13--钒矿色; 14--浅绿;15--浅蓝;16--卡其布; 17--秋麒麟;18--深海绿;19--深卡其布;20--番茄桔 SKIN_CUSTOM_COLOR的值:整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名。 HIDE_PBUTTIN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。 HIDE_SBUTTIN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。 HIDE_QBUTTIN_PREVIEW的值:整数或字符型,1或“1”或“True”=是,否则不是。 HIDE_PBUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。 HIDE_VBUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。 HIDE_ABUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。 HIDE_RBUTTIN_SETUP的值:整数或字符型,1或“1”或“True”=是,否则不是。 MESSAGE_GETING_URL的值:字符型,默认值是“正打开页面下载数据(限时5分钟)...”。 MESSAGE_PARSING_URL的值:字符型,默认值是“下载结束,正在准备打印数据...”。 MESSAGE_PARSING_HTM的值:字符型,默认值是空(不提示信息),当超文本内容较多,有明显等待时间时,建议设置该值。 MESSAGE_NOSET_PROPERTY的值:字符型,默认值是“只有在设计模式下才能设置属性...”。 HIDE_PAPER_BOARD的值:整数或字符型,1或“1”或“True”=是,否则不是。 LANDSCAPE_DEFROTATED的值:整数或字符型,1或“1”或“True”=是,否则不是。 BKIMG_LEFT的值:整数或字符型。整数的单位是PX,字符时可以包含具体计量单位。 BKIMG_TOP的值:同上; BKIMG_WIDTH的值:同上; BKIMG_HEIGHT的值:同上; HIDE_PAGE_PERCENT的值:整数或字符型,1或“1”或“True”=是,否则不是。 LANGUAGE的值:数字,0-简体中文 1-英文 2-繁体 3-BIG5(繁体) 结果:返回逻辑结果,成功时返回真,失败时返回假。 建议或要求: 初始化之后,进入功能(打印预览、打印维护或打印设计)界面前调用本函数。 SET_PRINT_MODE 名称:设置打印模式 格式: SET_PRINT_MODE (strModeType,varModeValue) 功能:设置人工双面打印模式等。 参数: strModeType模式类型名,字符型,如下是类型名及其含义: “DOUBLE_SIDED_PRINT”:设置是否人工双面打印。 “PRINT_START_PAGE”:指定要打印的起始页。 “PRINT_END_PAGE”:指定要打印的截止页。 “PRINT_PAGE_PERCENT”:指定整页缩放打印的比例。 “AUTO_CLOSE_PREWINDOW”:设置打印完毕是否自动关闭预览窗口。 “PRINT_SETUP_PROGRAM”:设置打印维护窗口关闭后是否返回程序代码。 “NOCLEAR_AFTER_PRINT”:设置打印或预览后内容不清空是否为真。 “CATCH_PRINT_STATUS”:设置是否进行对后台服务的打印状态进行捕获。 varModeValue模式类型值,整数或字符型,相关值如下: DOUBLE_SIDED_PRINT的值:整数或字符型,1或“1”或“True”=是,否则不是。 PRINT_START_PAGE的值:整数,不设置本参数时,控件默认从1开始打印。适用打印部分页时。 PRINT_END_PAGE的值:整数,不设置本参数时,控件默认打印到最后页。适用打印部分页时。 PRINT_PAGE_PERCENT的值:字符型,具体值有如下几种: “Full-Width” –宽度按纸张的整宽缩放; “Full-Height”–高度按纸张的整高缩放: “Full-Page” –按整页缩放,也就是既按整宽又按整高缩放; 此外还可以按具体百分比例,格式为“Width:XX%;Height:XX%”或“XX%” 比值范围是5%-800%,也就是最大缩小到原来的5%,最大放大8倍。 AUTO_CLOSE_PREWINDOW的值:整数或字符型,1或“1”或“True”=是,否则不是。 PRINT_SETUP_PROGRAM的值:整数或字符型,1或“1”或“True”=是,否则不是,打印维护窗口关闭后如果不返回程序代码,则返回打印按钮被点击的次数。 NOCLEAR_AFTER_PRINT的值:整数或字符型,1或“1”或“True”=是,否则不是,默认值是“否”,也就是说,默认情况下打印或预览后会清空所有内容。 CATCH_PRINT_STATUS的值:整数或字符型,1或“1”或“True”=是,否则不是,默认值是“否”,也就是说,默认情况下打印时不对打印状态进行捕获,该捕获动作会针对每个打印机开启一个监控线程,对页面性能有少许影响,开启后用GET_VALUE获得状态值。 结果:返回逻辑结果,成功时返回真,失败时返回假。 建议或要求: 直接打印前或打印预览前调用。 SET_PREVIEW_WINDOW 名称:设置预览窗口 格式: SET_PREVIEW_WINDOW(intDispMode, intToolMode,blDirectPrint,inWidth,intHeight , strTitleButtonCaptoin) 功能:设置预览窗口的显示模式和大小。 参数: intDispMode预览比例,数字型,0--适高1--正常大小2--适宽。 intToolMode工具条和按钮,数字型 0--显示工具条1--显示按钮 2--两个都显示 3--两个都不显示 blDirectPrint打印按钮是否“直接打印” 1-是 0-否(弹出界面“选机打印”) inWidth 窗口宽,整数型,单位是px intHeight 窗口高,整数型,单位是px 当inWidth或intHeight小于等于0时窗口最大化。 strTitleButtonCaptoin 预览窗口和打印按钮的名称组合,字符型,用“点”分隔,譬如“预览查看.开始打印”,表示预览窗口的标题是“预览查看”,按钮名是“开始打印”。 结果:无 建议或要求: 直接打印前或打印预览前调用。 ADD_PRINT_SETUP_BKIMG 名称:指定背景图 格式:ADD_PRINT_SETUP_BKIMG(strImgHtml) 功能:用程序方式指定打印维护或打印设计的背景图。 参数: strImgHtml: 本参数是字符型,有两种情况:一是超文本代码内容;二是本地文件名内容。第一种情况一般是用IMG标签组成的超文本代码段落。第二种情况是本地文件名全路径,格式如“C:/test.jpg”,图片文件可以是jpg、jpeg、bmp、gif、ico、png、emf等格式。 结果:无 建议或要求: 初始化之后调用。 SEND_PRINT_RAWDATA 名称:发送原始数据 格式:SEND_PRINT_RAWDATA(strRawData) 功能:向打印机发送原始数据或指令。 参数: strRawData:数据或指令值,字符型,未限制长度。 结果:返回逻辑结果,发送成功时返回真,发送失败时返回假。 建议或要求: 任何时间调用。 WRITE_PORT_DATA 名称:写端口数据 格式:WRITE_PORT_DATA(strPortName,strData) 功能:直接向端口写数据或指令。 参数: strPortName:端口名,同操作系统的端口名,名称如下: LPT1、LPT2、LPT3、COM1、COM2、COM3… strData:数据或指令值,字符型,未限制长度。 当设置端口通讯参数时strData格式如下: mode com1:波特率,校验,数据位,停止位,读时限,写时限 其中mode为固定关键字,com1要和strPortName保持一直。 校验值有:N(noparity)O(oddparity) E(evenparity) M(markparity)S(spaceparity) 读时限和写时限的时间单位为毫秒,举例如下: WRITE_PORT_DATA(“com1”,“mode com1:2400,n,8,1”) 或WRITE_PORT_DATA(“com2”,“mode com2:2400,n,7,2,5000,2000”) 结果:返回逻辑结果,发送成功时返回真,发送失败时返回假。 建议或要求: 任何时间调用。 READ_PORT_DATA 名称:读端口数据 格式:READ_PORT_DATA(strPortName) 功能:直接从端口读数据。 参数: strPortName:端口名,同操作系统的端口名,名称如下: LPT1、LPT2、LPT3、COM1、COM2、COM3… 结果:返回字符数据。 建议或要求: 任何时间调用。 GET_PRINT_INIFFNAME 名称:获得配置文件名 格式:GET_PRINT_INIFFNAME (strPrintTask) 功能:获得某打印任务的本地配置文件全路径名。 参数: strPrintTask: 打印任务名,字符型,即初始化时所设的任务名。 结果:返回字符 返回字符结果表示本地配置文件全路径名(并非文件内容),空表示失败。 建议或要求: 在初始化之后调用。 GET_PAGESIZES_LIST 名称:获得纸张类型名清单 格式:GET_PAGESIZES_LIST(oPrinterName,strSplit) 功能:获得某个打印机所支持的纸张类型名清单,返回一个用分隔符链接的长字符串。 参数: oPrinterName: 打印机名称或序号,字符型或数字,序号从0开始,-1代表默认打印机。 strSplit: 分隔符,字符型,例如可以用“\n”代表换行控制符来分隔。 结果:返回字符串。 建议或要求: 任何时候调用。 WRITE_FILE_TEXT 名称:写本地文件内容 格式:WRITE_FILE_TEXT(intWriteMode,strFileName, strText) 功能:向本地文件写入文本内容。 参数: intWriteMode: 写入模式,数字型,0--文件覆盖模式 1--文件尾追加模式 2--文件首插入模式。 strFileName: 本地文件名,字符型,文件名包含全路径。 strText: 写入的文本内容,字符型。 结果:调用函数后控件启动安全提示,等待操作许可。 返回字符值表示写入情况: “ok”-写入成功 “file not exist”-文件不存在 “do nothing”-未写入,一般原因有:操作者禁止读写、文件只读属性等。 写入时如果文件不存在则自动新建。 建议或要求: 任何时间调用。 GET_FILE_TEXT 名称:读本地文件内容 格式:GET_FILE_TEXT(strFileName) 功能:读本地文件文本内容。 参数: strFileName: 本地文件名,字符型,含全路径。 结果:调用函数后控件启动安全提示,等待操作许可。 返回字符值,文本内容。 返回空原因:文件不存在;内容真实空;操作者禁止读写; 建议或要求: 任何时间调用。 GET_FILE_TIME 名称:读本地文件时间 格式:GET_FILE_TIME (strFileName) 功能:读本地文件最后修改时间。 参数: strFileName: 本地文件名,字符型,含全路径。 结果:返回字符值,最后修改时间,时间样式:yyyy-mm-dd hh:mm:ss。 返回空原因:文件不存在; 建议或要求: 任何时间调用。 IS_FILE_EXIST 名称:判断本地文件是否存在 格式:IS_FILE_EXIST (strFileName) 功能:判断本地文件是否存在。 参数: strFileName: 本地文件名,字符型,含全路径。 结果:返回逻辑值,逻辑真表示文件存在,逻辑假表示文件不存在。 建议或要求: 任何时间调用。 GET_SYSTEM_INFO 名称:获得系统信息 格式:GET_SYSTEM_INFO (strInfoType) 功能:获得客户端的系统信息。 参数:strInfoType: 信息类型,字符型,信息类型是“设备类型”和“设备属性”的名称组合,用点(“.”)联结。当有多个同类设备存在时,设备类型后加“点和序号”来指定某设备。设备类型和属性的名称见WMI(MicrosoftWindows管理规范),以下是一组典型信息类型名: Drive.Count ----全部驱动的个数 Drive.Labels ----所有驱动的盘符 DiskDrive.Count ---硬盘个数 DiskDrive.1.Label ---第一个硬盘的盘符 DiskDrive.1.SerialNumber ---主硬盘的序列号 CDROMDrive.Count --光盘的个数 CDROMDrive.1.Label ---第一个光盘的盘符 CDROMDrive.1.SerialNumber ----第一个光盘的序列号 RemovableDrive.Count ---优盘的个数 RemovableDrive.1.Label ---第一个优盘的盘符 RemovableDrive.1.SerialNumber ---第一个优盘的序列号 NetworkAdapter.Count ---网卡个数 NetworkAdapter.1.PhysicalAddress ---主网卡物理(MAC)地址 NetworkAdapter.1.IPAddress ---主网卡IP地址 NetworkAdapter.1.SubNetMask ---主网卡子网掩码(Mask) BIOS.SerialNumber ---BIOS序列号 BaseBoard.SerialNumber ---主板序列号 其它信息请查阅WMI资料。 结果:返回字符 返回字符或整数,表示系统信息值,null表示读取失败。 建议或要求: 任何时间调用。 GET_VALUE 名称:获得数据值 格式:GET_VALUE (ValueType, ValueIndex) 功能:获得程序代码、打印项属性等数据值。 参数:ValueType: 数据值类型,字符型,如下是类型名及其含义: ProgramCodes ----当前打印设计或维护界面所有打印项生成的程序代码 ItemTop ----打印项上边距 ItemLeft----打印项左边距 ItemWidth ----打印项宽度 ItemHeight ----打印项高度 ItemContent ----打印项内容 ItemClass(或ItemType) ----打印项对象类别 ItemClassName ----打印项对象类别名 ItemPageType ----打印项对象类型 ItemName ----打印项对象类名 ItemFontName ----打印项字体名称 ItemFontSize ----打印项字体大小 ItemColor ----打印项字体颜色 ItemAlign ----打印项靠齐方式 Itembold ----打印项是否粗体 ItemItalic----打印项是否斜体 ItemUnderline ----打印项是否下划线 ItemPenWidth ----打印项线条宽度 ItemPenStyle- ---打印项线条类型 ItemHorient ----打印项左右位置 ItemVorient ----打印项上下位置 ItemAngle----打印项旋转角度 ItemStretch----打印项的图片缩放模式 ItemReadOnly ----打印项的打印维护内容只读 ItemPreviewOnly ----打印项是否仅预览 ItemPageIndex ----打印项的目标输出页号 ItemNumberStartPage ----打印项的页号起始页号 ItemStartNumberValue----打印项页号起始值 ItemLineSpacing ----打印项行间距 ItemLetterSpacing ----打印项字间距 ItemExist ----该打印项是否存在,增加又删除也算不存在。 ItemIsAdded ----该打印项是否被增加过,被删除也算增加过。 ItemIsDeleted ----该打印项是否增加过且已被删除; 其中ItemExist、ItemIsAdded、ItemIsDeleted一般用项目名来判断,不适合用序号。 ItemGroundColor(或ItembackWallColor或GroundColor)----该打印项的背景色 ItemIndex----该打印项序号 ItemShowBarText ----该条码打印项是否显示条码文字 ItemQRCodeVersion----该打印项QRCode版本号 ItemTextFrame ----该打印项边框类型 ItemSpacePatch ----该打印项文本尾是否补空格 ItemAlignJustify ----该打印项文本两端是否靠齐 ItemTranscolor ----该打印项图片透明背景色 ItemTop2Offset ----该打印项次页上边距偏移 ItemLeft2Offset ----该打印项次页左边距偏移 ItemTableHeightScope ----该打印项表格高是否含头脚 ItemLinkedItem ----该打印项的关联对象序号 BKIMG_CONTENT----背景图地址 BKIMG_LEFT----背景图的X坐标(显示px) BKIMG_TOP----背景图的Y坐标(显示px) BKIMG_WIDTH----背景图的宽度(显示px) BKIMG_HEIGHT----背景图的高度(显示px) PrintInitTop ----整体上边距 PrintInitLeft----整体左边距 PrintInitWidth ----编辑区宽度 PrintInitHeight ----编辑区高度 PrintTaskName ----打印任务的名称 PRINTED_TIMES或PRINTEDTIMES ---当前内容已打印次数(打印设计、维护和预览界面内嵌时) PREVIEW_PAGE_COUNT----打印预览界面内嵌时,获得总页数 PREVIEW_PAGE_NUMBER----打印预览界面内嵌时,获得当前页号 PREVIEW_ZOOM_STATE----打印预览界面内嵌时,获得显示缩放代码 代码值含义如下: 0--适高 1--适宽 2--缩25% 3--缩50% 4--缩75% 5--正常 6--放150% 7--放200% 8--放300% 9--放500% PREVIEW_PERCENT----打印预览界面内嵌时,获得缩放打印比例,该代码及其含义参考函数DO_ACTION中同名参数的说明。 PREVIEW _ PRINTEDTIMES----打印预览界面内嵌时,获得被打印次数 PRINTSETUP_PAGE_WIDTH----打印设置的纸张宽度,单位是0.1mm PRINTSETUP_PAGE_HEIGHT----打印设置的纸张高度,单位是0.1mm PRINTSETUP_SIZE_WIDTH----所设纸张的可打印宽度,单位是0.1mm PRINTSETUP_SIZE_HEIGHT----所设纸张的可打印高度,单位是0.1mm PRINTSETUP_TOPMARGIN----所设纸张的不可打上边距,单位是0.1mm PRINTSETUP_LEFTMARGIN----所设纸张的不可打左边距,单位是0.1mm PRINTSETUP_PRINTER_NAME---当前选择的打印机名称 PRINTSETUP_ORIENT----当前设置的打印方向 PRINTSETUP_COPIES----当前设置的打印份数 PRINTSETUP_PAGESIZE_NAME----当前纸张类型名称 PRINT_STATUS_JOBID ----最新JOB代码(值有打印机序号和JOB序号组成) PRINT_STATUS_ID----打印状态代码 PRINT_STATUS_TEXT----当前打印状态描述 PRINT_STATUS_LIST----打印状态变化记录 PRINT_STATUS_TOTAL_PAGES----该任务需要打印的总页数 PRINT_STATUS_PAGES_PRINTED----该任务已经打印的总页数 PRINT_STATUS_DOCNAME----该打印任务的文档名称 PRINT_STATUS_ADDTIME----该打印任务的建立时间 PRINT_STATUS_EXIST---判断该打印任务是否还处在队列中 PRINT_STATUS_OK----该打印任务是否已经打印成功 PRINT_STATUS_SECONDS----该打印任务持续的时间(秒) PRINT_STATUS_BUSY----该打印机是否处于忙碌状态 ValueIndex: 数值对应的项目序号或项目名称,数字或字符型,序号从1开始;有如下几种特殊情况: 1:当ValueIndex等于selected时,代表打印设计或打印维护界面选定的对象; 2:当ValueIndex等于unSelected时,代表打印设计或打印维护界面没有选定的对象; 3:当ValueIndex等于first或last时,分别代表第一对象和最后一个对象; 4:ValueType为打印状态(各种PRINT_STATUS_XXX)时,ValueIndex是打印任务的JOB代码,该代码通过PRINT及PREVIEW指令返回,或者本函数的PRINT_JOBID参数获得;要使用各种PRINT_STATUS_XXX,必须用函数SET_PTINT_MODE打开其“CATCH_PRINT_STATU”模式。 结果:返回字符 返回对应的字符型、整数型或逻辑值,返回空字符表示读取失败。 建议或要求: 打印设计或打印维护运行期间调用。 FORMAT 名称:数据格式转换 格式:FORMAT (oType, oValue) 功能:按一定的格式类型对数据进行转换后,返回转换结果。 参数: oType: 格式类型,字符型,目前可转换的数据类型有“时间”“浮点数”“字符串”“文件”“颜色”等几大类: 1、日期时间通用格式:TIME:通用格式表达式 通用格式表达式可参考操作系统的日期时间格式,有日期和时间两部分组成,在日期部分y代表年,m代表月,d代表日;在时间部分h代表小时,m或n代表分钟,s代表秒,分隔符在这些字符之外任意设置,dddd表示星期。 例如:“TIME:yyyy-mm-dd hh:mm:ss” “TIME:yyyy年mm月dd日” “TIME:yyyy/mm/dd hh:mm:ss”“TIME:yyyy年mm月dd日hh时nn分ss秒” 转换后返回的结果为字符串。 2、日期时间的浮点值:TIME: FloatValue 返回日期时间数据的浮点值。 3、日期时间格式有效判断:TIME: IsValidFormat 判断时间数据有效与否,返回的是逻辑真假值。 4、日期的星期序号:TIME: WeekIndex 表示星期几。返回的是0…6之间的数字,其中0表示星期天,6表示星期六。 5、浮点数据格式:FLOAT:数值格式表达式 数值格式表达式由0 # . , E 等五个字母组成描述数据样式的字串,其中0表示有则显示,无则补零,#表示有则显示,无则不显示,E用于科学计数法。 例如:“FLOAT:#,##0.00” “FLOAT:0.00”“FLOAT:#.##” 6、人民币大写:UpperMoney 特指人民币大写转换,返回汉字串。 7、字符格式一:CHAR: FirstPinYin 获得汉字的汉语拼音首字母,返回的是字符串。 8、字符格式二:CHAR: IsCharacter 判断数据是否纯英文字符,不包含汉字,返回的是逻辑真假值。 9、字符格式三:CHAR: IsChinese 判断数据是否纯汉字,不包含英文字母,返回的是逻辑真假值。 10、字符格式四:CHAR: EncodeBase64 获得普通字符的BASE64国际通用编码,该编码有大小写字母、数字和+/=等组成,返回的是字符串。 11、字符格式五:CHAR: DecodeBase64 获得BASE64编码串的解码字符,是CHAR: EncodeBase64的逆过程。返回的是普通字符串。 12、文件格式一:FILE:EncodeBase64 获得普通文件的BASE64国际通用编码,该编码有大小写字母、数字和+/=等组成,返回的是字符串。要求对应的oValue值是文件名及其路径,且文件存在,可以是任何文件。本操作会引起控件的用户安全确认提示。 13、文件格式二:FILE: DecodeBase64,文件路径及其名称 获得BASE64编码串的解码文件,是FILE:EncodeBase64的逆过程。返回的是生成文件成功与否的逻辑结果。例如:“FILE:DecodeBase64,C:\test1.jpg” 本操作会引起控件的用户安全确认提示。 14、颜色格式一:COLOR:Hex 获得颜色的十六进制表达式,“#”字母打头,返回的是字符串。 15、颜色格式二:COLOR:Name 获得颜色的英文名称,识别164种颜色值的名称,返回的是字符串。 16、颜色格式三:COLOR:Decimal 获得颜色的十进制值(RGB值),返回的是整数值。 oValue: 要转换的目标数据,一般是字符串形式的数据,也可以是时间浮点值,当otype是FILE:EncodeBase64时该值是文件名及其路径,oValue有如下几个特殊字符值: Now-当前日期及其时间、Date当前日期、Time当前时间 举例如下: FORMAT(“UpperMoney”,”45.82”);把45.82转换成人民币大写形式; FORMAT(“TIME:yyyy-mm-dd hh:mm:ss”,”now”);返回当前日期及其时间; FORMAT(“TIME:yyyy/mm/dd”,new Date());返回当前日期; 结果:返回转换后的结果,返回的数据有字符串、浮点数、逻辑值等类型。 建议或要求: 任何时间调用。 GET_DIALOG_VALUE 名称:获得对话框结果值 格式:GET_DIALOG_VALUE (oType,oPreValue) 功能:弹出一个对话框窗口,并返回对话结果。 参数: oType: 对话类型,字符型,具体类型及其含义如下: LocalFileFullName:弹出一个定位本地文件的对话框,并返回文件的全路径名。 Color:弹出一个颜色对话框,并返回所选16进制颜色表达式,放弃则返回空。 oPreValue 文件类型或颜色原值 “LocalFileFullName”的PreValue值是指文件类型,例如“*.bmp;*.jpg”“*.mdb”。 “Color”的PreValue是颜色对话框的默认值。 结果:返回对话结果值,字符型。 建议或要求: 任何时间调用。 2、扩展函数 PRINT_INITA 名称:(扩展型)打印初始化 格式:PRINT_INITA(Top,Left,Width,Height,strPrintName) 功能:打印初始化、设定纸张整体偏移量、设定可视编辑区域大小 参数: Top: 整页上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,不设置时(用PRINT_INIT初始化)缺省值为0。 Left: 整页左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,不设置时(用PRINT_INIT初始化)缺省值为0。 Width: 可视编辑区域的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米,不设置时(用PRINT_INIT初始化)缺省为800px Height: 可视编辑区域的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米,不设置时(用PRINT_INIT初始化)缺省为600px strPrintName: 打印任务名,同PRINT_INIT的strTaskName。 结果:返回逻辑值 返回逻辑真表示初始化成功,逻辑假表示初始化失败,失败原因有:前一个打印事务没有完成;操作系统没有打印机(驱动)等 建议或要求 该函数与PRINT_INIT都有初始化功能,建议和要求同PRINT_INIT。 如果打印页有上边距或左边距要求,或可视编辑区域大小用实际纸张大小不合适时,调用本函数。 ADD_PRINT_HTML 名称:增加超文本打印项(图形模式) 格式:ADD_PRINT_HTML(Top,Left,Width,Height, strHtmlContent) 功能:增加超文本打印项,设定该打印项在纸张内的位置和区域大小,实现超文本控制打印。 参数:同ADD_PRINT_HTM 结果:无 建议或要求: 图形模式打印速度快,但不适合要求文本打印质量高的情况,特别是要面对针式打印机。 但如果打印的内容在一个纸张页内完成,也就是没有被Lodop自动分页时,本函数采用矢量快照模式,打印质量会和文本模式一样高,速度会更快,是最佳推荐模式。 推荐页面程序主动控制分页,而不是让LODOP被迫自动分页。 ADD_PRINT_TBURL 名称:(扩展型)增加表格打印项(URL模式) 格式:ADD_PRINT_TBURL(Top,Left,Width,Height,strURL) 功能:按URL地址增加一个超文本表格打印项,只输出第一个table元素显示内容。 功能同ADD_PRINT_TABLE 参数:同ADD_PRINT_URL 结果:无 建议或要求: 要求在打印初始化后调用,建议在画线类函数之后调用。 ADD_PRINT_TEXTA 名称:(扩展型)增加纯文本打印项 格式:ADD_PRINT_TEXTA(strItemName,Top,Left,Width,Height,strContent) 功能:同函数ADD_PRINT_TEXT。 参数: strItemName: 所增纯文本打印项的项目名,字符型,未限制长度。 其它参数同函数ADD_PRINT_TEXT。 结果:同函数ADD_PRINT_TEXT。 建议或要求: 建议和要求同函数ADD_PRINT_TEXT。当打印项序号比较难以控制时,用本函数。 SET_PRINT_STYLEA 名称:(扩展型)设置打印项风格A 格式: SET_PRINT_STYLEA(varItemNameID, strStyleName,varStyleValue) 功能:类似函数SET_PRINT_ STYLE的功能,二者的区别是本函数只对某打印项有效。 参数: varItemNameID:要设置的目标项序号或项目名,数字型或字符型。 l 数字型时,表示是序号,以其增加的先后自然顺序为准,从1开始,所有打印对象都参与排序,包括超文本、纯文本、图片、图线、图表、条码等。 如果序号为0,代表当前(最后加入的那个)数据项;如果序号是负数,代表前面加入的数据项,该值为前移个数偏移量。 l 字符型时,是对象的类名或代表部分对象的关键字。 关键字有如下几种: Selected-代表在设计界面上用鼠标所选的所有对象; unSelected-代表在设计界面上所有没有被鼠标选择的对象; All-代表所有正常对象; First-代表第一个正常对象; Last-代表最后一个正常对象; 不是关键字的字符一般是类名,类名可以在ADD_PRINT_TEXTA 加入纯文本时用strItemName来声明,也可以在设计界面用菜单功能(Set TEXT Item Name)来设置。 strStyleName:打印风格名,风格名称及其含义如下: “PageIndex”:指定输出页的序号控制字。 “PreviewOnly”:指定内容仅仅用来预览。 “ChartStyle”:图表风格,字符形的控制串。 “ChartLeftTitle”:图表的左标题,单行文本字符。 “ChartBottomTitle”:图表的底标题 “ChartTopTitle”:图表的上标题 “ChartRightTitle”:图表的右标题 “ChartTitle”:图表的主标题 “ChartFoot”:图表的注脚 “ChartbkStartColor”:图表的背景渐变的起始颜色 “ChartBKEndColor”:图表的背景渐变的截止颜色 “ChartMarkColor”:图表的标注颜色 “LeftWallColor”:图表的左墙颜色 “BottomWallColor”:图表的底墙颜色 “BackWallColor”:图表的背墙颜色 “NumberStartPage”:页号排序的起始页 “LineSpacing”:纯文本的行间距 “LetterSpacing”:纯文本的字间距 “ItemName”:项目类名 “StartNumberValue”:打印页号的初始值 “Content”:打印项的内容 “Deleted”:删除打印项或恢复被删除项; “TransColor”:透明图片的底色 “PageUnIndex”:禁止输出页的序号控制字 “SpacePatch”:文本末尾补空格 “AlignJustify”:文本两端对齐 “TextFrame”:文本的外框类型 “Offset2Top”:次页开始的上边距偏移量 “Offset2Left”:次页开始的左边距偏移量 “LinkedItem”:设置关联内容项的项目编号 “TableHeightScope”:设置TABLE高度是否包含页头页尾 其它见SET_PRINT_STYLE varStyleValue:打印风格值,相关值如下: PageIndex的值:字符型,用该序号字指定本数据项输出到哪些页。“First”第一页;“Last”最后页;“Odd”奇数页;“Even”偶数页;“具体数字”对应具体页;空表示默认页。缺省值是空。 PreviewOnly的值:字符或数字型,1或“true”代表仅预览,否则为正常打印内容。 ChartStyle的值:字符(串)型,该字符串的长度是19位,譬如:“00001-8008--2353312”每个位置的含义如下: 第1位控制“左边坐标样式”,样式值为0到5之间的一个数字或字符“-”,其中0代表“Hidden”、1代表“Auto”、2代表“None”、3代表“Value”、4代表“Mark”、5代表“Text”,字符“-”代表不设置,用默认样式; 第2位控制“底边坐标样式”,第3位控制“上边坐标样式”,第4位控制“右边坐标样式”,这三位的样式值及其含义与第1位相同。 第5位控制“图例样式”,样式值为0到6之间的一个数字或字符“-”,其中0代表“Hidden”、1代表“LeftValue”、2代表“LeftPercent”、3代表“XValue”、4代表“Plain”、5代表“RightValue”、6代表“RightPercent”,字符“-”代表不设置,用默认样式。 第6位控制“图例位置”,其值为0到3之间的一个数字或字符“-”,其中0代表“Left”、1代表“Right”、2代表“Top”、3代表“Bottom”,字符“-”代表不设置,用默认位置。 第7位控制“标注样式”,样式值为0到9之间的一个数字或字符“-”,其中0代表“Hidden”、1代表“Value”、2代表“Percent”、3代表“Label”、4代表“Label and Percent”、5代表“Label and Value”、6代表“Legend”、7代表“Percent Total”、8代表“Label and Percent Total”、9代表“XValue”,字符“-”代表不设置,用默认样式。 第8位控制“标注是否透明”,其值为0到1之间的一个数字或字符“-”,其中0代表“不透明”、1代表“透明”,字符“-”代表不设置,默认不透明。 第9-10这两位控制“三维深度(3D效果)”,其值为1到99之间的一个数值或两个字符“-”,1-99代表3D效果的百分比例,字符“-”代表不设置,用默认的3D效果。 第11-12这两位控制“左墙厚度”,其值为0到99之间的一个数值或两个字符“-”,0代表隐藏左墙,1-99代表左墙的厚度,字符“-”代表不设置,用默认的厚度。 第13位控制“背景色渐变走向样式”,样式值为0到7之间的一个数字或字符“-”,其中0代表“Hidden”、1代表“Top->Bottom”、2代表“Bottom->Top”、3代表“Left->Right”、4代表“Right->Left”、5代表“From Center”、6代表“From TopLeft”、7代表“From BottomLeft”,字符“-”代表不设置,用默认样式。 第14-16这三位控制“左右方向的旋转角度”,其值为270到361之间的一个数值或三个字符“-”,270-360代表旋转的角度,361代表恢复缺省角度,字符“-”代表不设置,用默认的角度。 第17-19这三位控制“前后方向的翻转角度”,其值为270到360之间的一个数值或三个字符“-”,270-360代表旋转的角度,字符“-”代表不设置,用默认的角度。 ChartLeftTitle、ChartBottomTitle、ChartTopTitle、ChartRightTitle、ChartTitle、ChartFoot:这六个的值:都是单行文本字符,未限制长度。 ChartbkStartColor、ChartBKEndColor、ChartMarkColor、LeftWallColor、BottomWallColor、BackWallColor这六个的值:整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名。 NumberStartPage的值:整数型,代表页号排序时的起始页,默认是1,即从第一页开始计算页号,设置大于1时一般用于目录或扉页不排序。 LineSpacing、LetterSpacing的值:字符或整数型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)。 ItemName的值:字符型,未限制长度,禁止包含关键字“ITEM”。 StartNumberValue的值,整数型,打印页号时起始值,默认是1,即页号从1开始累加,该值可以是0或负数。 “Content”的值:字符型,打印项的内容,未限制长度,在内容打印维护或打印设计时可动态设置打印项内容。 “Deleted”的值:字符或逻辑型,真表示删除该打印项, True或“True”或1或“1”==真,False或“False”或0或“0”=假,假表示恢复删除项。 “TransColor”的值:透明图片的底色,整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名。 PageUnIndex的值:字符型,用该序号字禁止本数据项输出到哪些页。“First”第一页;“Last”最后页;“Odd”奇数页;“Even”偶数页;“具体数字”对应具体页;空表示不禁止。缺省值是空。 “SpacePatch”的值:数字型,1代表文本末尾补空格,0代表不补。 “AlignJustify”的值:数字型,1代表文本两端对齐,0代表不处理。 “TextFrame”的值:数字型,文本的外框类型如下: 0(None)--无 1(Uper)--上划线 2(Under)--下划线 3(Left)--左划线 4(Right)--右划线 5(Rect)-矩形圈框 6(Ellipse)-圆圈框 7(Luper)-整行上划线 8(Lunder)-整行下划线 9(Lleft)-整行左划线 10(Lright)--整行右划线11(Lrect)-整行矩形圈框 12(Lellipse)-整行圆圈框 13(Grid)-田字格 14(Divi)-分割线 “Offset2Top”的值:整数或字符型,可声明单位或百分比,表示从次页开始的上边距偏移量。例如当对象的首页内容不能从顶端开始打印时,本设置显然很有用。 “Offset2Left” 的值:整数或字符型,可声明单位或百分比,表示从次页开始的左边距偏移量。 “LinkedItem”的值:整数或字符型,整数代表被关联项的序号,字符型代表被关联项的项目名,内容项与别人关联后,会紧跟被关联者之后打印,位置和区域大小随被关联项而定,此时其Top和left不再是上边距和左边距,而是与关联项的间隔空隙及左边距偏移。当两者都是多页内容项时,二者的每页区域一样大。 如果关联者是页眉页脚对象,那么不会每页输出,仅与被关联对象同页输出。此时输出的位置与被关联对象的位置相对固定,也就是当上边距小于被关联对象的上边距时,那么其起点位置会与被关联者的上边线保持设计时的距离,否则与被关联对象的下边线保持设计时的距离。 “TableHeightScope” 的值:数字型, 0-代表不包含(默认),1-代表包含头和尾 2-只包含页头 3-只包含页尾。这个值仅对TABLE对象有效。 其它见SET_PRINT_STYLE 结果:同函数SET_PRINT_ STYLE。 建议或要求: 打印初始化后、增加打印项之后调用本函数。 SAVE_TO_FILE 名称:导出数据到文件 格式:SAVE_TO_FILE(strFileName) 功能:如果超文本对象中有表格(table元素)数据,可用该函数导成Excel等文件 参数:strFileName要保存的文件名及其路径。其扩展名指明要保存的文件类型,目前支持的扩展名:“.xls”---Excel文件(电子表格文件) 结果:返回逻辑结果,保存成功时返回真,保存失败或放弃保存时返回假。 建议或要求: Add数据后运行。 SET_SAVE_MODE 名称:设置保存模式 格式:SET_SAVE_MODE(varModeName,varModeValue) 功能:设置导出数据到Excel等文件时的保存模式。 参数: varModeName模式名,字符型,如下是模式名及其含义: “FILE_PROMPT”:保存前是否进行文件名及其路径提示。 “TABLE_INDEX”:源table数据对象的序号。 “PAGE_TYPE”:保存表格时的分页方式。 “LINESTYLE”:Excel文件中的表格是否有边框 “CAPTION”:Excel文件中的标题栏内容 “CENTERHEADER”:Excel文件中的表格页眉(中)内容 “LEFTHEADER”:Excel文件中的表格页眉(左)内容 “RIGHTHEADER”:Excel文件中的表格页眉(右)内容 “CENTERFOOTER”:Excel文件中的表格页脚(中)内容 “LEFTFOOTER”:Excel文件中的表格页脚(左)内容 “RIGHTFOOTER”:Excel文件中的表格页脚(右)内容 “QUICK_SAVE”:保存表格时是否采用快速模式 “RETURN_FILE_NAME”:保存后返回文件名称 varModeValue模式值,整数或字符型,相关值如下: FILE_PROMPT的值:整数或字符型,1或“1”或“True”=是,“0”或其它=否。 该值为“是”时,控件会在保存前弹出窗口选择文件名及其路径。该值为“否”时控件按程序指定的文件名直接保存,不再弹出文件路径框,但会弹出安全提示框(做初次确认)。缺省值是“是”。 TABLE_INDEX的值:数字型,如果控件接受了多个超文本对象,在导出数据时可以用TABLE_INDEX指定某个对象被导出,否则就导出最后对象。该序号从1开始排序。 PAGE_TYPE的值:数字型, 0--表示不分页; 1--保存到同一个Sheet中,但会加入分页符(PageBreak); 2--分页到不同Sheet中 LINESTYLE的值: 数字型,1--表示有边框,0--表示无边框。 CAPTION的值: 字符型,标题栏的文本内容。 CENTERHEADER的值:字符型,表格(居中)页眉的文本内容或控制字(见Excel相关资料)。 LEFTHEADER的值:字符型,表格(靠左)页眉的文本内容或控制字(见Excel相关资料)。 RIGHTHEADER的值:字符型,表格(靠右)页眉的文本内容或控制字(见Excel相关资料)。 CENTERFOOTER的值:字符型,表格(居中)页脚的文本内容或控制字(见Excel相关资料)。 LEFTFOOTER的值:字符型,表格(靠左)页脚的文本内容或控制字(见Excel相关资料)。 RIGHTFOOTER的值:字符型,表格(靠右)页脚的文本内容或控制字(见Excel相关资料)。 QUICK_SAVE的值:整数或字符型,1或“1”或“True”=是,“0”或其它=否。 如果采用快速模式,在生成表格单元时将忽略样式和本函数的其它设置,生成速度较快,适宜数据较多且不在乎表格样式时。 RETURN_FILE_NAME的值:字符型。一般情况保存后返回成功与否的逻辑值,但该参数使SAVE_TO_FILE返回所保存文件的全路径名称。 结果:返回逻辑结果,成功时返回真,失败时返回假。 建议或要求: 导出数据(SAVE_TO_FILE)前调用本函数。 ADD_PRINT_SHAPE 名称:(扩展型)增加图形 格式: ADD_PRINT_SHAPE(intShapeType, Top, Left,Width,Height,intLineStyle, intLineWidth, varColor) 功能:增加矩形框、椭圆、直线等图形打印项,设定该图形在纸张内的位置和大小,设定线条的类型和线条宽度。 参数: intShapeType: 该图形的类型,数字型参数。0--仰角直线 1--俯角直线 2--矩形框线 3--椭圆线 4--实心矩形 5--实心椭圆 Top: 该图形在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 当上边距超过纸张高度时,打印项被输出在下一页(或更下页)。 Left: 该图形在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Width: 该图形(直线的外缘矩形或椭圆的外缘矩形)的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 Height: 该图形(直线的外缘矩形或椭圆的外缘矩形)的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。 intLineStyle: 线条类型,数字型,0--实线 1--破折线 2--点线 3--点划线 4--双点划线 缺省线条是实线。 intLineWidth: 线条宽,整数型,单位是(打印)像素,缺省值是1,非实线的线条宽也是0。 varColor: 图形的颜色,整数或字符型,整数时是颜色的十进制RGB值;字符时是超文本颜色值,可以是“#”加三色16进制值组合,也可以是英文颜色名; 结果:无 建议或要求: 要求在打印初始化后调用,建议在文本类函数之前调用。 SET_PRINTER_INDEXA 名称:(扩展型)指定打印设备 格式:SET_PRINTER_INDEXA (oIndexOrName) 功能:按名称或序号指定要进行打印输出的设备,指定后允许重新选择。 参数: oIndexOrName: 打印机名称或序号,字符或数字型。数字表示打印机的序号,从0开始,最大序号是GET_PRINTER_COUNT()减1。-1特指操作系统内设定的默认打印机。 字符代表打印机的名称,与操作系统内的打印机名称一致。 注:用本函数指定打印机后,在预览界面允许重新选择打印机,而用另外一个函数SET_PRINTER_INDEX指定后则不允许重新选择。 结果:返回逻辑值 返回逻辑真表示指定成功,逻辑假表示指定失败,失败原因有:该打印设备不存在。 建议或要求: 要求在初始化之后、打印或预览之前调用。 NEWPAGEA 名称:(扩展型)强制分页 格式:NEWPAGEA() 功能:强制分页。执行该函数之后所增加的内容会在前面内容的尾页之后新建一页输出,前面无内容时,仍然从第一页开始。 参数:无 结果:返回逻辑值 返回逻辑真表示强制分页成功,逻辑假表示强制分页失败。 建议或要求: 打印初始化后调用本函数。 PREVIEWA 名称:(扩展型)打印预览A 格式:PREVIEWA () 功能:同函数PREVIEW。预览前提示选择打印机。 参数:同函数PREVIEW。 结果:同函数PREVIEW。 建议或要求: 同函数PREVIEW。 PREVIEWB 名称:(扩展型)打印预览B 格式:PREVIEWB () 功能:同函数PREVIEW。强制用缺省布局风格来打印预览。 参数:同函数PREVIEW。 结果:同函数PREVIEW。 建议或要求: 同函数PREVIEW。不希望最终使用者改变打印布局和风格时调用本函数。 PRINTA 名称:(扩展型)直接打印A 格式:PRINTA () 功能:同函数PRINT。打印前提示选择打印机。 参数:同函数PRINT。 结果:同函数PRINT。返回逻辑结果,当真实打印时返回真,放弃打印或打印出错时返回假。 建议或要求: 同函数PRINTA。 PRINTB 名称:(扩展型)直接打印B 格式:PRINTB () 功能:同函数PRINT。强制用缺省布局风格来打印。 参数:同函数PRINT。 结果:同函数PRINT。 建议或要求: 同函数PRINT。不希望最终使用者改变打印布局和风格时调用本函数。 SHOW_CHART 名称:显示图表 格式:SHOW_CHART () 功能:在页面内显示一个图表。其图表的数据来源由函数ADD_PRINT_CHART来完成,图表的样式设置与打印预览一样,也是采用SET_PRINT_ STYLEA来实现。 参数:无。 结果:无。 建议或要求: 在建立好完整的打印页后调用,该命令类似打印事件,二者的差别是前者把内容在界面上显示,后者把内容在打印机中输出。 DO_ACTION 名称:控制界面动作 格式:DO_ACTION (ActName, ActValue) 功能:在控件界面内嵌到浏览器时,JS通过该函数直接驱使控件内部的动作事件。 参数: ActName动作名称,具体名称及其含义如下: PREVIEW_ZOOM_HIGHT:适高显示动作,触发预览界面适高显示按钮点击一次。 PREVIEW_ZOOM_NORMAL:正常显示动作,触发预览界面正常显示按钮点击一次。 PREVIEW_ZOOM_WIDTH:适宽显示动作,触发预览界面适宽显示按钮点击一次。 PREVIEW_ZOOM_IN:拉近显示动作,触发预览界面拉近(放大+)显示按钮点击一次。 PREVIEW_ZOOM_OUT:推远显示动作,触发预览界面推远(缩小-)显示按钮点击一次。 PREVIEW_PERCENT:选择缩放打印比例动作,改变预览界面缩放比例选项。 PREVIEW_GOFIRST:首页动作,触发预览界面首页(第一页)按钮点击一次。 PREVIEW_GOPRIOR:上页动作,触发预览界面上页按钮点击一次。 PREVIEW_GONEXT:下页动作,触发预览界面下页按钮点击一次。 PREVIEW_GOLAST:尾页动作,触发预览界面尾页(最后页)按钮点击一次。 PREVIEW_GOTO:页跳转动作,预览界面直接转到ActValue指定的页号显示。 PREVIEW_GOSKIP:页跳过动作,预览界面跳过ActValue指定的页数后显示。 PREVIEW_SETUP:打印设置动作,触发预览界面打印设置按钮点击一次。 PREVIEW_PRINT:打印动作,触发预览界面打印按钮点击一次。 PREVIEW_CLOSE:关闭动作,触发预览界面关闭按钮点击一次。 PREVIEW_ROTATE:旋转显示动作,触发预览界面旋转按钮点击一次。 ActValue动作辅助值 只有如下动作的辅助值有意义; PREVIEW_PERCENT的值:数字,代码值及其含义为: 0--30% 1--50% 2--60% 3--70% 4--80% 5--85% 6--90% 7--95% 8--100% 9--125% 10--150% 11--200% 12--按整宽 13--按整高 14--按整页 15--整宽不变形 16--整高不变形 17--自定比例 PREVIEW_GOTO的值:整数,某页的页序号值,从1开始。 PREVIEW_GOSKIP的值:整数,跳转的页数,正数向后跳,负数向前跳。 结果:无。 建议或要求: 在内嵌界面正常打开后调用。 SET_LICENSES 名称:设置软件产品注册信息 格式: SET_LICENSES (strCompanyName, strLicense, strLicenseA,strLicenseB) 功能:以函数方式设置软件使用权注册信息,功能与对应的控件参数一样。 参数: strCompanyName:注册单位名称,用途与控件参数CompanyName一样。 strLicense:主注册号,用途与控件参数License一样。 strLicenseA:附加注册号A,用途与控件参数LicenseA一样。 strLicenseB:附加注册号B,用途与控件参数LicenseB一样。 结果:无 建议或要求: 任何时间调用,本函数适合以隐蔽方式设置注册信息。 五、软件使用权注册 打印控件Lodop是一款专业共享软件,公开发行版本没有功能限制,多数用户可免费长期使用,仅如下功能需要注册使用权: 1、 (不经过预览的)“直接打印”功能; 2、“导出数据到Excel文件”功能; 不经注册使用以上功能时,打印输出结果的左下角会出现“本页由【试用版打印控件LodopX.0】输出”小字样水印。 软件使用权的注册设置,除了用SET_LICENSES函数外,一般用如下几个控件参数(调用方法参阅第三节): CompanyName 名称:设置注册单位名称 格式: < param name="CompanyName" value="注册单位名称XXX" > 功能:该名称配合License实现按使用者单位名称注册。这种注册不限制域名,注册者可把Lodop用于多个WEB工程,适合软件开发公司注册。页面使用单位名称注册号后,打印结果的水印消失,并在打印预览的状态栏有该单位名称的明示。 License 名称:设置注册号 格式: < param name="License" value="注册号XXX" > 功能:该注册号有两项功能: 一、当CompanyName不空时,该注册号配合其实现按使用者单位名称注册。这种注册不限制域名,注册者可把Lodop用于多个WEB工程,适合软件开发公司注册。 二、当CompanyName空时,这是域名注册号之一,一般是域名的名称注册号。这种注册只限该域名使用,价格便宜,适合最终使用单位注册。 LicenseA 名称:设置附加注册号A 格式: < param name="LicenseA" value="附加注册号A" > 功能:当CompanyName空时,这是域名注册号之二,一般是内网IP注册号,随主注册号免费赠送。 控件从6.0.0.5开始支持双注册号,所谓双注册号是指一个页面既有中文注册名又有英文注册名,英文注册名仅适用于英文版的控件。LicenseA可用来设置英文注册的公司名称。 LicenseB 名称:设置附加注册号B 格式: < param name="LicenseB" value="附加注册号B" > 功能:当CompanyName空时,这是域名注册号之三,一般是外网IP注册号,随主注册号免费赠送。 LicenseB可用来设置双注册号中的英文注册名的注册号。 六、打印维护和打印设计 打印设计的目标用户是软件开发者,详细功能解释略。 打印维护的目标用户是页面操作者,详细功能解释略。 七、计量单位 本文所述px单位固定换算关系如下,与像素类似但不是一个概念,也不受显示影响: 1in(英寸)=2.54cm(厘米)=25.4mm(毫米)=72pt(磅)=96px 另外一个特殊的计量单位“%(百分比)”,是指相对于纸张大小的百分比值,其中“上、下边距、高度”等的百分比是相当对于纸张高度(横向打印时则是宽度)的比值,而“左、右边距和宽度”的百分比是相对于纸张宽度(横向打印时则是高度)的比值。