国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Jasperreport的web 套打

前段時(shí)間寫了一篇 解決Jasperreportweb打印另一種方法http://www.blogjava.net/three-3/archive/2010/06/24/324329.html 
關(guān)于在web中的打印 套打是經(jīng)常被提到的,這個(gè)需求很廣泛,中間忙了一些其他的事情,到今天才把在Jasperreport實(shí)現(xiàn)web套打的內(nèi)容整理好。

在讀這篇文章之前最好先讀一下上一篇文章,里面有些設(shè)計(jì)到jatoolsprinter的內(nèi)容需要了解一下。

        下面開始講述一下整個(gè)套打的過程

1:首先用ireport制作一張?zhí)状虻膱?bào)表如下圖



 

如下模板所示 在一個(gè)image組件上放上要打印的內(nèi)容,我這里的演示是從數(shù)據(jù)庫中取到的字段打印出來。



 

至于ireport模板的制作,我這里不做介紹,因?yàn)槲易约阂矝]有接觸多久,會的不一定比你多。

 

2:創(chuàng)建JSP文件 代碼如下

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding
="utf-8"%>
<%@ page import="net.sf.jasperreports.engine.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="net.sf.jasperreports.engine.util.*"%>
<%@ page import="net.sf.jasperreports.engine.export.*"%>

<html>
    
<head>
        
<!-- 插入打印控件 -->
        
<OBJECT ID="jatoolsPrinter"
            CLASSID
="CLSID:B43D3361-D975-4BE2-87FE-057188254255"
            codebase
="jatoolsPrinter.cab#version=5,3,0,0"></OBJECT>
    
</head>
    
<script type="text/javascript">
 function doPrint(how)
                

                
//打印文檔對象
                var myDoc =
                    
{
                    settings:
                        
{
                        pageWidth: 
2100,    //自定義紙張寬度(單位為十分之一毫米)
                        pageHeight: 1400,  //自定義紙張高度(單位為十分之一毫米)
                        orientation: 1     //打印方向
                        }
,
                    enableScreenOnlyClass:
true// 使所有使用 screen-only 樣式類的對象,只在預(yù)覽、顯示時(shí)可見,打印時(shí)隱藏
                    documents: document, // 打印頁面(div)們在本文檔中
                    marginIgnored: true,
                   settingsID: 
'mydocc'//打印設(shè)置的ID保存在注冊表中
                    copyrights: '杰創(chuàng)軟件擁有版權(quán)   www.jatools.com' // 版權(quán)聲明必須
                    }
;
    
// 調(diào)用打印方法
    if(how == '打印預(yù)覽
')
        jatoolsPrinter.printPreview(myDoc,
true );   // 打印預(yù)覽
                 
       
else if(how == '打印
')
           jatoolsPrinter.print(myDoc ,
true);   // 打印前彈出打印設(shè)置對話框
                
       
else
           jatoolsPrinter.print(myDoc ,
false);       // 不彈出對話框打印
}

</script>
    
<body bgcolor="white">

        
<br>
        
<input type="button" value="打印預(yù)覽
" onClick="doPrint('打印預(yù)覽
')
">
        
<input type="button" value="打印
" onClick="doPrint('打印
')
">
        
<input type="button" value="打印" onClick="doPrint('打印')">
        
<br>




        
<%
                    File reportFile 
= new File(application
                    .getRealPath(
"/jasper/taoda.jasper"));
            JasperReport jasperReport 
= (JasperReport) JRLoader
                    .loadObject(reportFile.getPath());
            Map parameters 
= new HashMap();

            Class.forName(
"com.mysql.jdbc.Driver");
            Connection conn 
= DriverManager.getConnection(
                    
"jdbc:mysql://localhost:3306/DataName""user""password");
            JasperPrint jasperPrint 
= JasperFillManager.fillReport(
                    jasperReport, parameters, conn);

            JRXhtmlExporter exporter 
= new JRXhtmlExporter();
            StringBuffer sbuffer 
= new StringBuffer();

            Map imagesMap 
= new HashMap();
            session.setAttribute(
"IMAGES_MAP", imagesMap);

            exporter
                    .setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
            exporter.setParameter(JRExporterParameter.OUTPUT_WRITER, out);
            exporter
                    .setParameter(JRHtmlExporterParameter.IMAGES_MAP, imagesMap);
            String imgServDirUrl 
= "/images/";
            File imgRealDir 
= new File(request.getRealPath(File.separator)
                    
+ imgServDirUrl);
            
if (!imgRealDir.exists()) {
                imgRealDir.mkdirs();
            }

            exporter.setParameter(JRHtmlExporterParameter.IMAGES_URI, request
                    .getContextPath()
                    
+ imgServDirUrl);
            exporter.setParameter(JRHtmlExporterParameter.IMAGES_DIR,
                    imgRealDir);
            exporter.setParameter(
                    JRHtmlExporterParameter.IS_OUTPUT_IMAGES_TO_DIR,
                    Boolean.TRUE);

            exporter.setParameter(
                    JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,
                    Boolean.FALSE);
            exporter.exportReport();
            conn.close();
        
%>


其中以下內(nèi)容為jatoolsprinter所需代碼

<OBJECT ID="jatoolsPrinter"
            CLASSID
="CLSID:B43D3361-D975-4BE2-87FE-057188254255"
            codebase
="jatoolsPrinter.cab#version=5,3,0,0"></OBJECT>



function doPrint(how)
                

                
//打印文檔對象
                var myDoc =
                    
{
                    settings:
                        
{
                        pageWidth: 
2100,    //自定義紙張寬度(單位為十分之一毫米)
                        pageHeight: 1400,  //自定義紙張高度(單位為十分之一毫米)
                        orientation: 1     //打印方向
                        }
,
                    enableScreenOnlyClass:
true// 使所有使用 screen-only 樣式類的對象,只在預(yù)覽、顯示時(shí)可見,打印時(shí)隱藏
                    documents: document, // 打印頁面(div)們在本文檔中
                    marginIgnored: true,
                   settingsID: 
'mydocc'//打印設(shè)置的ID保存在注冊表中
                    copyrights: '杰創(chuàng)軟件擁有版權(quán)   www.jatools.com' // 版權(quán)聲明必須
                    }
;
    
// 調(diào)用打印方法
    if(how == '打印預(yù)覽
')
        jatoolsPrinter.printPreview(myDoc,
true );   // 打印預(yù)覽
                 
       
else if(how == '打印
')
           jatoolsPrinter.print(myDoc ,
true);   // 打印前彈出打印設(shè)置對話框
                
       
else
           jatoolsPrinter.print(myDoc ,
false);       // 不彈出對話框打印


 

起先在在jasperreprot中輸出格式為html 背景圖一直不顯示,單獨(dú)放一張圖片,圖片上不要有其他組件,就會顯示,一直沒搞清楚這個(gè)問題是什么原因,但是輸出格式為xhtml的時(shí)候圖片就會顯示。


 

3:修改JRXhtmlExporter代碼



 

根據(jù)jatoolsprinter的規(guī)范,需要在打印的內(nèi)容的div 命名規(guī)則必須為<div id='page'+數(shù)字>

Jasperreport是利用<a name="JR_PAGE_ANCHOR_?_?"></a>來區(qū)分頁數(shù)所以我們在代碼中找到輸出JR_PAGE_ANCHOR_?_? 的位置在他之后加上

writer.write("<div id='page"+ (pageIndex + 1)+"'>"n");

    exportPage(page);

writer.write("</div>"n");


 

4:預(yù)覽可見,打印不可見。

這樣打印的頁面jatoolsprinter就可以找到了??墒沁€有個(gè)問題,套打一般的問題都是希望那個(gè)底圖在預(yù)覽的時(shí)候可見而打印的時(shí)候不打印,那么這個(gè)問題在jatoolsprinter中是這樣處理的。

找到輸出img信息的位置如下圖



 

在輸出img 的信息中添加 writer.write(" class=\"screen-only\"");現(xiàn)在底圖就不會被打印出來了。

5:啟動tomcatweb下運(yùn)行




 

點(diǎn)擊打印預(yù)覽




最后打印效果如下




 

這篇文章只是對在JsperReport中進(jìn)行套打進(jìn)行了介紹。套打當(dāng)中還會設(shè)計(jì)到其他的一些問題可以參照早先錄的一個(gè)視頻一步一步教你做web套打(http://www.56.com/u11/v_NTA2MjcyMDM.html),這個(gè)就和JsperReport沒有任何關(guān)系了。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ireport jasperreports報(bào)表
Spring MVC JasperReport 導(dǎo)出Html格式報(bào)表圖片不顯示
iReport學(xué)習(xí)筆記
使用JasperReport輸出image圖像
jatoolsPrinter套打整理
ireport導(dǎo)出各種格式(pdf,excel,word,html,print)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服