基于Web打印打印预览技术预研报告Word格式.docx
- 文档编号:4317772
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:9
- 大小:19KB
基于Web打印打印预览技术预研报告Word格式.docx
《基于Web打印打印预览技术预研报告Word格式.docx》由会员分享,可在线阅读,更多相关《基于Web打印打印预览技术预研报告Word格式.docx(9页珍藏版)》请在冰点文库上搜索。
3.1概述预研技术的发展情况
在B/S架构的项目中,由于浏览器的局限性,一直以来Web打印最是让程序员头痛的技术,浏览器呈现给用户的页面与实际打印的效果有着很明显的差别,如:
打印模板中控制页边距、页眉、页脚、纸张大小等。
我们经常用的Word、Excel等应用程序,它们有着简单灵活的设计界面,能满足各种文档的打印需求,而Web应用则因为其特殊的呈现方式,只能寻求其他的解决方案。
现有的Web打印控制技术分成三种方式:
浏览器的打印功能、第三方控件打印功能、服务器生成Pdf、Word、Excel形式下载到本地打印。
3.2预研技术解决方法和方法比较
一、浏览器的打印功能
a)通过javascript来调用window.print()函数实现,或用户点击浏览器的打印菜单实现预览及打印功能。
<
inputtype='
button'
value='
打印'
onclick='
javascript:
window.print()'
/>
@mediaprint{.toolbar{display:
none;
}}设置类样式中的内容不打印
.paging{page-break-after:
always}强制换页
优点:
1>
代码简单
2>
支持IE、谷歌、火狐等浏览器
缺点:
不能精确分页。
浏览器一般是根据用户设置的页面大小,web页面的内容多少,来自行决定分页位置,程序员很难控制。
会有页脚页眉干扰。
不能准确对齐边距及打印页面大小。
3>
不能解决连续打印。
b)使用webbrowser控件+javascript,这实际上,是浏览器打印功能菜单的一种程序调用,与打印功能菜单没什么两样。
分页的问题仍然存在,只不过,可以让用户不用去点菜单,直接在网页中的一个按钮,或一个链接里面调用。
OBJECTid=WebBrowserclassid=CLSID:
8856F961-340A-11D0-A96B-00C04FD705A2height=0width=0>
/OBJECT>
inputtype=buttonvalue=打印onclick=document.all.WebBrowser.ExecWB(6,1)>
inputtype=buttonvalue=页面设置onclick=document.all.WebBrowser.ExecWB(8,1)>
inputtype=buttonvalue=打印预览onclick=document.all.WebBrowser.ExecWB(7,1)>
仅支持IE浏览器
二、第三方控件打印功能
1)使用ScriptX控件打印
ScriptX是一个叫MeadCo的国外公司开发的打印控件,可以对页眉,页脚,页边距,纸张方向进行设置,官网的最新版是6.4,下载以后是一个smsx.cab文件,其大小为5.06MB,使用时需要在页面引入cab控件。
scriptlanguage="
javascript"
>
varhkey_root,hkey_path,hkey_key
hkey_root="
HKEY_CURRENT_USER"
hkey_path="
\\Software\\Microsoft\\InternetExplorer\\PageSetup\\"
//设置网页打印的页眉页脚为空
functionpagesetup_null()
{
try{
varRegWsh=newActiveXObject("
WScript.Shell"
)
hkey_key="
header"
RegWsh.RegWrite(hkey_root+hkey_path+hkey_key,"
"
footer"
}catch(e){}
}
//用于设置打印参数
functionprintBase(){
factory.printing.header="
//页眉
factory.printing.footer="
//页脚
factory.printing.portrait=true//true为纵向打印,false为横向打印
factory.printing.leftMargin=0.5
factory.printing.topMargin=1.5
factory.printing.rightMargin=0.5
factory.printing.bottomMargin=1.5
}
//用于调用设置打印参数的方法和显示预览界面
functionprintReport(){
printBase();
//pagesetup_null();
document.all("
button"
).style.display="
none"
;
//隐藏按钮
factory.printing.Preview();
functionprintWindow(){
factory.printing.header="
ThisisMeadCo"
//頁首
factory.printing.footer="
PrintingbyScriptX"
//頁尾
factory.printing.portrait=false;
//橫印
factory.printing.leftMargin=1.0;
factory.printing.topMargin=1.0;
factory.printing.rightMargin=1.0;
factory.printing.bottomMargin=1.0;
factory.printing.Print(true);
/script>
objectid="
factory"
style="
display:
classid="
clsid:
1663ed61-23eb-11d2-b92f-008048fdd814"
/object>
inputtype="
name="
Print"
value="
列印"
onclick="
printWindow();
inputid="
idPrint2"
type="
页面设置"
factory.printing.PageSetup()"
idPrint3"
打印预览"
factory.printing.Preview()"
可以通过代码直接设置页眉页脚页边距
分页可控性差
仅支持IE浏览器
2)使用Lodop控件进行复杂的打印
Lodop俗称露肚皮,是一个专业的Web打印控件,分为收费版和免费版,也是目前一般专业打印软件中应用最广的打印控件,所有调用如同JavaScript扩展语句。
它是一个install_lodop32.exe的安装包,其大小为2.28MB。
src="
LodopFuncs.js"
LODOP_OB"
2105C259-1E0C-4534-8141-A753534CB4CA"
width=0height=0style="
position:
absolute;
left:
0px;
top:
-10px;
LODOP_EM"
application/x-print-lodop"
<
scripttype="
text/javascript"
LODOP=getLodop(document.getElementById('
LODOP_OB'
),document.getElementById('
LODOP_EM'
));
PRINT_INIT(strPrintTaskName)打印初始化
SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName)设定纸张大小
ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml)增加超文本项
ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent)增加纯文本项
ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml)增加表格项
SET_PRINT_STYLE(strStyleName,varStyleValue)设置对象风格
NewPage()设置换页
PREVIEW打印预览
PRINT直接打印
1〉可控性好;
支持IE系列、IE内核系列(遨游、360、世界之窗、搜狗、蚂蚁等)浏览器,以及Firefox(火狐)系列、Chrome(谷歌)系列、Opera系列、Safari系列等各类浏览器
需要安装控件
3)使用Pdf插件进行复杂的打印
PDFObject.js,是一个JavaScript库用来在HTML中动态嵌入PDF文档,需要安装AdobeReaderXI应用程序。
PDF-full_files/pdfobject.js"
window.onload=function(){
varmyPDF=newPDFObject({url:
"
sample.pdf"
}).embed();
};
objectdata="
sample.pdf#"
application/pdf"
width="
100%"
height="
浏览及打印样式美观;
支持常用的浏览器。
需要在本地安装AdobeReaderXI浏览工具;
需要服务器生成Pdf文档,提供客户端查看。
三、服务器生成Pdf、Word、Excel形式下载到本地打印
用户将需要打印的数据发送请求给服务器,服务器生成Pdf、Word、Excel文件提供给用户下载,用户下载后通过文档工具进行打印。
页面可控性好;
2〉无需考虑浏览器兼容性问题。
消耗部分服务器性能;
用户需要下载打印。
3.3针对产品进行的方法选择和基本描述
1)浏览器的打印功能使用简单方便,但需要对打印格式要求较高,对单张页面的打印可控性好。
2)第三方控件打印,打印页面的样式较为美观,可以根据用户的需求设定合适的界面,但需安装第三方控件,对连续打印可控性好。
3)本地应用打印,繁琐的是需要将打印的文件下载到本地打开打印,但用户可对打印数据进行编辑操作。
4结论
如果打印文件是单张建议使用浏览器自身的打印功能,如果打印的数据较多使用第三方控件或本地应用打印,具体方案待项目设计完成后再做定夺。
5参考资料
参考资料编号
参考资料名称
2
Web系统页面打印技术实现与分析-moonvan-博客园.mhtml
3
WEB打印系列教程-quentin_wjb的日志-网易博客
4
Lodop6.1技术手册.doc
5
js插件方式打开pdf文件(浏览器pdf插件分享)_javascript技巧_脚本之家.htm
6
ScriptX.cab使用及下载IE打印设置(转)-没个性的日志-网易博客.htm
7
ScriptX打印控件的使用.htm
8
捷普终端安全综合管理平台统计分析
9
西安交通违法当事人网上自助处理系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Web 打印 预览 技术 报告