JAVA打印功能总结文档

本文档总结了JAVA在C/S和B/S架构下实现打印功能的几种方法。对于C/S,介绍了利用java.awt的打印API实现,通过Graphics2D进行文本布局,适合特殊场景的打印需求。对于B/S,提到了浏览器自带的`window.print()`方法和WB.execWB()控件,以及推荐使用LODOP控件来实现更复杂的WEB打印需求。
摘要由CSDN通过智能技术生成
高手请斧正,菜鸟请虚心,引用请注明出处,转发请告知作者,谢谢尊重!

 

近期农信项目后台系统客户新提出需求的其中一项涉及到“打印”功能,前期技术储备时,发现网上相关资源甚少且混杂,特别是有关web打印技术,被码农们一致称为“老大难”。现整理了几项经本人验证的可行的打印方法,包括C/S和B/S的,供码友们参考。

 

一、C/S

1.利用java.awt中提供的打印API,继承Printable实现接口方法print进行打印。

参考文献:《Java实现打印功能》-----------百度文库。

此方法实际是C/S的打印方法,但是在某些特殊情况下,B/S的打印依然可用,例如在某些特殊的管理系统,操作此系统的用户可以非常方便的设置发布此系统的服务器,那么将服务器所连接的打印机设置成用户指定的打印机,此时再将代码设置成直接打印状态(不弹出打印提示页面),就可以顺利完成打印操作。

该方法的弊端也比较明显,java.awt所提供API实现接口的方法print,最后是用Graphics2D直接输出,所以有关长篇文字的格式只能手动调整(可参考官方API文档的格式调整算法),且参数中只有一个Graphics,以至于整篇文档的字体、颜色都是统一格式,无法调整(也许是本人对Graphics实在不了解),且无法操作页眉页脚(当以Word文档格式时);优点不用说,一般的打印还是可以实现的,且Graphics能画出来的也就都能打印出来,所以,此种打印方式所适用的和不适用的情况也就比较明显了吧。

 

以下是关键代码,详细请见文件夹下printHelp.java文件中内容。

package com.hepow.cbrc.help;

 

import java.awt.BasicStroke;

import java.awt.Color;

import java.awt.Component;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Graphics2D;

importjava.awt.Image;

importjava.awt.Toolkit;

import java.awt.font.FontRenderContext;

import java.awt.font.LineBreakMeasurer;

import java.awt.font.TextAttribute;

import java.awt.font.TextLayout;

import java.awt.geom.Point2D;

import java.awt.print.PageFormat;

import java.awt.print.Printable;

import java.awt.print.PrinterException;

importjava.text.AttributedString;

 

publicclassprintHelpimplementsPrintable {

/**

* @param Graphic指明打印的图形环境

* @param PageFormat指明打印页格式(页面大小以点为计量单位,1点为1英才的1/721英寸为25.4毫米。A4纸大致为595×842点)

* @param pageIndex指明页号

**/

       publicintprint(Graphicsgra,PageFormatpf,intpageIndex)throws PrinterException {

           System.out.println("pageIndex="+pageIndex);

           Component c =null;

          //print string

           String test = "根据国家劳动管理规定以及本公司员工聘用办法,甲方招聘乙方为试用员<br/>工,双方在平等、自愿的基础上,经协商一致签订本试用合同,共同遵守本协议所列条款"

                + "根据国家劳动管理规定以及本公司员工聘用办法,甲方招聘乙方为试用员工,双方在平等、自愿的基础上,经协商一致签订本试用合同,共同遵守本协议所列条款"

                + "根据国家劳动管理规定以及本公司员工聘用办法,甲方招聘乙方为试用员工,双<br/>方在平等、自愿的基础上,经协商一致签订本试用合同,共同遵守本协议所列条款"

                + "根据国家劳动管理规定以及本公司员工聘用办法,甲方招聘乙方为试用员工,双方在平等、自愿的基础上,经协商一致签订本试用合同,共同遵守本协议所列条款";

           String head ="劳动合同范本(二)——试用期劳动合同范本";

              String str ="";

              String str01 ="甲方:______________________";

              String str02 ="乙方: (身份证号)______________________";

              String str03 =" 根据国家劳动管理规定以及本公司员工聘用办法,甲方招聘乙方为试用员工,双方在平等、自愿的基础上,经协商一致签订本试用合同,共同遵守本协议所列条款";

              String str033 ="基础上,经协商一致签订本试用合同,共同遵守本协议所列条款。";

              String str04 ="一、试用合同期限:试用期为个月,自_____年_____月_____日至_____年_____月_____日止。";

              String str05 ="二、根据甲方的工作安排,聘用乙方在_______________工作岗位。";

              String str06 ="三、甲方聘用乙方的月薪为_____元(含养老、医疗、住房公积金)。试用期满后,并经考核合格,可";

              String str066 ="根据平等协商的原则,签订正式劳动合同。";

              String str07 ="四、甲方的基本权利与义务:";

              String str08 ="1.甲方的权利";

              String str09 =" 有权要求乙方遵守国家法律和公司各项规章制度;";

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值