java
web网站怎样实现打印功能?
一、web网站怎样实现打印功能?
Web系统中,打印功能一直是个老大难问题,因此产生了很多第三方的控件,多数要收费,而且跟自己的系统结合有一定的麻烦。
系统采用J2EE技术,jsp打印问题同样存在于OA中。打印方式有三种:
一是不经过任何修改,直接调用javascript中的window.print()打印。
二根据客户要求的报表格式,编写相应格式的html,装载数据打印,同样调用window.print()打印,只是对html的格式要求比较高。
三是通过客户提供的word格式,通过xml配置文件与数据库的数据进行关联,自动装载数据到word中打印,这里是利用客户端的word进行打印。
第一种几乎不用编写程序,最简单快捷,这里会遇到几个问题,只能打印表单内容,按钮不希望打印出来;页眉页脚不想打印出来;IE的titile不想打印出来。
解决办法:把button放在一个table或者div里,打印的时候隐藏,完成后显示就可以。系统中的javascript打印代码如下:
function Print() { var tit = document.title; document.title = ""; table1.style.display = "none"; window.print(); document.title = tit; table1.style.display = "";}不过只能起到打印的目的,打印的效果一般比较土。
不管怎么说,可以最快的让系统的大部分模块都有打印的功能。
第二种方式必须根据每个报表的格式进行定制html和java程序开发,会花比较多的时间。要注意的是对html中table的样式控制,在IE中浏览看起来很细的边框,打印出来有些线条会比较粗,有些线条又会比较细,阴阳怪气的很难看。
在table中直接用bordercolor会让线条显得很粗,用bordercolorlight,bordercolordark配合使用可以显示出秀气的线条。<html> <head></head> <body> <table border="1" bordercolorlight="red" bordercolordark="#FFFFFF" cellpadding="3" cellspacing="0"> <tbody> <tr> <td>姓名</td> <td>所属部门</td> </tr> <tr> <td>陈</td> <td>技术部</td> </tr> </tbody> </table> </body></html>比如以上代码,在IE中看起来线条一样大小,还是比较秀气。
不要高兴的太早,打印出来的效果不象在IE中看到的那样,边框虽细,内线却很粗!原因是每个td都有边框,td与td的交接处就会有线条重叠,虽然IE看起来没有,可是打印的时候就会显示出来。
这个问题的解决办法是控制每一个td的样式,对重叠的地方进行border-bottom:1px之类的控制。
这个方案比较消耗精力,而且打印的时候很难控制分页,更不能随时按照客户的需要调整字体边框颜色等。
第三种方案:从服务器端生成word、excel等文档,发送到浏览器进行打印实现过程:先将需要打印的数据导入到word或者excel中,再利用word或者excel的打印功能来实现web打印。 下面以excel为例实现如何打印的过程 将网页中数据导入excel中的方法有很多,这里先介绍一种,利用ActiveX控件的方式,即 Excel.Application, 这个控件是MS为excel提供的编程接口,在很多种编程语言种都可以通过该接口来操纵excel表格。 下面用javascript脚本来实现一个简单的例子。<script language = "javascript">function ExcelPrint() { var excelApp; //存放Excel对象 var excelBook; //存放Excel工件簿文件 var excelSheet; //存放Excel活动工作表 try { excelApp = new ActiveXObject("Excel. Application"); //创建Excel对象} catch(e) { alert("请启用ActiveX控件设置!"); return; } excelBook = excelApp.Workbooks.Add(); //创建Excel工作簿文件 excelSheet = excelBook.ActiveSheet; //激活Excel工作表 var rowLen = printTable.rows.length; //table对象的行数 for (var i = 0; i < rowLen; i++) { var colLen = printTable.rows(i).cells.length; //table对象的列数 for (var j = 0; j < colLen; j++) //为Excel表的单元格赋值 excelSheet.Cells(i + 1, j + 1).value = printTable.rows(i).cells(j).innerText; } //将表格中的每个单元格的innerText导入到excel的单元格中 excelApp.Visible = true; //设置Excel对象可见 excelSheet.PrintOut(); //打印工作表 excelBook.Close(true); //关闭文档 excelApp.Quit(); //结束excel对象 excelApp = null; //释放excel对象 }}</script> 注意: 运行该程序的前提是 IE要允许对没有标记为安全的Activex控件进行初始化和脚本运行。设置方法如下: 打开控制面板→Internet选项→安全性→自定义级别→对没有标记为安全的ActiveX控件进行初始化和脚本运行→选中启用,这样我们的程序就可以运行了。如果没有启用该ActiveX控件设置,那么程序在执行创建Excel对象时会抛出一个异常,这时可以通过catch()语句来捕获这个异常,并且做出相应的处理。 运行该程序必须客户端安装了MS EXCEL,否则Activex驱动不了。
二、VB按钮怎么实现打印功能,打印word文档?
在Word2007中,用户可以通过设置打印选项使打印设置更适合实际应用,且所做的设置适用于所有Word文档。在Word2007中设置Word文档打印选项的步骤如下所述:
步骤/方法
第1步,打开Word2007文档窗口,依次单击Office按钮→“Word选项”按钮。
第2步,在打开的“Word选项”对话框中,切换到“显示”选项卡。在“打印选项”区域列出了可选的打印选项,选中每一项的作用介绍如下:
(1)选中“打印在Word中创建的图形”选项,可以打印使用Word绘图工具创建的图形;
(2)选中“打印背景色和图像”选项,可以打印为Word文档设置的背景颜色和在Word文档中插入的图片;
(3)选中“打印文档属性”选项,可以打印Word文档内容和文档属性内容(例如文档创建日期、最后修改日期等内容);
(4)选中“打印隐藏文字”选项,可以打印Word文档中设置为隐藏属性的文字;
(5)选中“打印前更新域”选项,在打印Word文档以前首先更新Word文档中的域;
(6)选中“打印前更新链接数据”选项,在打印Word文档以前首先更新Word文档中的链接,
第3步,在“Word选项”对话框中切换到“高级”选项卡,在“打印”区域可以进一步设置打印选项,选中每一项的作用介绍如下:
(1)选中“使用草稿品质”选项,能够以较低的分辨率打印Word文档,从而实现降低耗材费用、提高打印速度的目的;
(2)选中“后台打印”选项,可以在打印Word文档的同时继续编辑该文档,否则只能在完成打印任务后才能编辑;
(3)选中“逆序打印页面”选项,可以从页面底部开始打印文档,直至页面顶部;
(4)选中“打印XML标记”选项,可以在打印XML文档时打印XML标记;
(5)选中“打印域代码而非域值”选项,可以在打印含有域的Word文档时打印域代码,而不打印域值;
(6)选中“打印在双面打印纸张的正面”选项,当使用支持双面打印的打印机时,在纸张正面打印当前Word文档;
(7)选中“在纸张背面打印以进行双面打印”选项,当使用支持双面打印的打印机时,在纸张背面打印当前Word文档;
(8)选中“缩放内容以适应A4或8.5”X11”纸张大小”选项,当使用的打印机不支持Word页面设置中指定的纸张类型时,自动使用A4或8.5”X11”尺寸的纸张;
(9)“默认纸盒”列表中可以选中使用的纸盒,该选项只有在打印机拥有多个纸盒的情况下才有意义。
三、求助:关于ASP如何实现打印功能?
直接生成pdf呀,现在浏览器都支持直接预览pdf并打印了,推荐XMReport,简单易用
四、怎样用MFC实现打印功能?
这个pc-fax功能,需要在电脑上安装驱动,如果是用随机带的光盘安装全套的驱动,里面就都包含了,打印扫描pc-fax,然后把机器上的pc功能打开就可以了,机器上就是按功能键,然后按数字键2-5-1,还有个备份打印,把这个关闭就可以了。
五、EXCELVBA窗体的打印功能怎么实现?
例如打印sheet1表中b2到g9的区域:Sheet1.Range("$b$2:$g$9").PrintOut
六、打印机没有WiFi功能,怎么实现WiFi打印?
打印机如果有WIFI功能是可以使用的,步骤如下:
1、了解打印机的WIFI名称;
2、在电脑里设置把打印机的WIFI功能启用;
3、手机的WIFI功能打开,并搜寻到打印机的WIFI名称,确认连接;
手机显示连接成功后就可以进行无线打印了。
七、c#怎么实现打印预览和打印的功能?
我是河北软件的学生,是刚学软件开发的,我觉得用C++实现起来比较容易,不用写任何代码只需作选择就可以写出一个带打印预览功能的记事本软件
方法:打开VC++——新建——选择“工程”选卡——选取列表中的“MFCappWizard(exe)”——输入工程名称——确定——选择单文档(多重文档)——2~5采用默认选项就可以在第6步的基类列表中先择CEditView,点完成就可以了.
这个也不用吧,你试了吗,试试
八、word打印功能不能实现的功能?
你的意思是复制到别的电脑上也不能打印吧?
方法 : Office 2003/2007才有这个权限限制功能。
如果你使用的是Office 2003/2007,提示可以单击“文件”菜单→“权限”命令→“限制权限为”打开“权限”对话框。
如果你是第一次使用“信息权限管理(IRM)”,需要按照上面的提示安装设置“信息权限管理(IRM)”。
在“权限”对话框上选中“限制对此文档的权限”,在“读取”框中输入文档阅读者的.NET Passport的电子邮件地址(即对方能登录MSN的电子邮件地址),然后按“确定”按钮即可限制文档阅读者只能读取文档,但不能更改、打印或复制内容。
如果有多个文档阅读者,可以在“读取”框和“更改”框里输入多个.NET Passport邮件地址,设定文档阅读者的权限。
九、C#中连接打印机实现小票打印功能?
首先要看打印机是否支持无线打印功能。
若是支持,先打开打印机的无线WIFI热点,一般打开后打印机屏幕会显示出热点名及密码。
打开手机无线,搜索热点,输入密码后连接上打印机。
找到需要打印的资料,选择打印,选择连接的打印机就可以打出来了。
一般苹果手机都是支持直接连接打印的,安卓手机一般要下载专门的APP连接打印机才可打印。
希望以上回答可以帮到您。
十、word打印功能中不能实现的功能是什么?
你的意思是复制到别的电脑上也不能打印吧? 方法 : Office 2003/2007才有这个权限限制功能。
如果你使用的是Office 2003/2007,提示可以单击“文件”菜单→“权限”命令→“限制权限为”打开“权限”对话框。
如果你是第一次使用“信息权限管理(IRM)”,需要按照上面的提示安装设置“信息权限管理(IRM)”。
在“权限”对话框上选中“限制对此文档的权限”,在“读取”框中输入文档阅读者的.NET Passport的电子邮件地址(即对方能登录MSN的电子邮件地址),然后按“确定”按钮即可限制文档阅读者只能读取文档,但不能更改、打印或复制内容。
如果有多个文档阅读者,可以在“读取”框和“更改”框里输入多个.NET Passport邮件地址,设定文档阅读者的权限。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...