锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鐜板湪JFreeReport鍔犲叆鍒頒簡Pentaho錛屾墍浠FreeReport鐨勬渶鏂扮増鏈彧鍒癹freereport-0.8.7-9.jar錛屼箣鍚庡氨浠entaho Report Designer鍛藉悕浜嗐?br />
浜屻丣FreeReport緇勪歡鐨勭粨鏋?br />
JFreeReport緇勪歡鐨勬牳蹇冨璞″氨鏄疛FreeReport瀵硅薄錛屾垜灝嗗叾瑙嗕袱閮ㄥ垎錛氫竴閮ㄥ垎鏄姤琛ㄦ牸寮忓畾涔夛紝鍙︿竴閮ㄥ垎鏄暟鎹瓨鍌ㄣ?br />
JFreeReport緇勪歡鐨勬暟鎹嬌鐢ㄧ殑鏄痡ava.swing.table.TableModel綾伙紝鎴戜滑瀵瑰畠閮介潪甯哥啛鎮変簡錛岀敤JTable鍋氳〃鏍兼椂閮戒細鐢ㄥ埌錛屾墍浠ュ湪姝や笉鍐嶇瘡榪般?br />
鎴戜富瑕佽璁睯FreeReport鐨勬姤琛ㄦ牸寮忓畾涔変互鍙婅緭鍑烘柟娉曘?br />
JFreeReport灝嗘姤琛ㄥ垎涓轟互涓嬪嚑涓儴鍒嗭細
鎶ュご錛圧eportHeader錛夈?br />
鎶ュ熬錛圧eportFooter錛夈?br />
欏靛ご錛圥ageHeader錛夈?br />
欏靛熬錛圥ageFooter錛夈?br />
鍒嗙粍澶達紙GroupHeader錛夈?br />
鍒嗙粍灝撅紙GroupFooter錛夊拰鏁版嵁鍩熴?br />
l 琛ㄥご錛圧eportHeader錛夆斺斿唴瀹規樉紺哄湪鏁翠釜鎶ヨ〃鐨勫紑澶達紝鍙互鍖呮嫭鎶ヨ〃鍚嶇О絳夊唴瀹廣?br />
l 琛ㄥ熬錛圧eportFooter錛夆斺斿唴瀹規樉紺哄湪鏁翠釜鎶ヨ〃鐨勬湯灝俱?br />
l 欏甸錛圥ageHeader錛夆斺斿唴瀹規樉紺哄湪姣忎竴欏電殑棣栭儴錛岀涓欏靛垯鏄劇ず鍦≧eportHeader涓嬮潰錛屽彲浠ュ寘鎷姤琛ㄦ棩鏈熴佸~琛ㄤ漢絳夊唴瀹廣?br />
l 欏靛熬錛圥ageFooter錛夆斺斿唴瀹規樉紺哄湪姣忎竴欏電殑鏈熬錛屽彲浠ュ寘鎷〉鍙風瓑淇℃伅銆?br />
l 鍒嗙粍澶達紙GroupHeader錛夆斺斿鏋滃皢鏁版嵁鍒嗙粍錛屽垯GroupHeadar鍐呭浼氭樉紺哄湪姣忎竴緇勫垎緇勭殑澶撮儴銆?br />
l 鍒嗙粍灝撅紙GroupFooter錛夆斺斿鏋滃皢鏁版嵁鍒嗙粍錛屽垯GroupHeadar鍐呭浼氭樉紺哄湪姣忎竴緇勫垎緇勭殑澶撮儴銆?br />
l 鏁版嵁鍩熲斺旀姤琛ㄦ暟鎹紝涓鑸綅浜庢瘡欏電殑涓棿閮ㄥ垎銆?br />
涓夈佹姤琛ㄦ牸寮忓畾涔?br />
鐭ラ亾浜咼FreeReport緇勪歡鐨勬姤琛ㄧ粨鏋勶紝涓嬮潰璇ヤ粙緇嶅浣曞畾涔変簡銆傛湁涓ょ鏂規硶錛氫竴縐嶆槸浣跨敤java浠g爜瀹炵幇錛屽彟涓縐嶆槸浣跨敤xml瀹氫箟銆?br />
1銆佷唬鐮佹柟寮忓疄鐜版姤琛ㄦ牸寮忓畾涔?br />
浣跨敤浠g爜鏂瑰紡瀹炵幇姝ラ寰堢畝鍗曪紝灝辨槸鍒嗗埆鏋勯犳姤澶達紙ReportHeader錛夈佹姤灝撅紙ReportFooter錛夈侀〉澶達紙PageHeader錛夈侀〉灝撅紙PageFooter錛夈?br />
鍒嗙粍澶達紙GroupHeader錛夊拰鍒嗙粍灝撅紙GroupFooter錛夊璞★紝鐒跺悗浣跨敤set鏂規硶鍔犲叆JFreeReport瀵硅薄灝卞彲浠ヤ簡銆?br />
涓婇潰榪欏嚑涓璞℃垜浠竴鑸彧浼氱敤鍒板叾addElement(Element element)鏂規硶錛屽嵆灝嗕竴涓厓绱狅紙Element錛夊姞鍏ュ埌鎸囧畾閮ㄥ垎銆傚湪榪欓噷錛屽厓绱犵殑鎰忎箟
灝辨槸鏄劇ず鍦ㄦ姤琛ㄤ腑鐨勫唴瀹癸紝鍖呮嫭鏂囨湰銆佽〃鏍箋佸浘褰€佸浘鐗囩瓑絳夈侲lement鏄竴涓娊璞$被錛屼粬鏈夊嚑涓瓙綾伙紝浣嗘垜浠笉蹇呯洿鎺ヤ嬌鐢ㄨ繖浜涘瓙綾伙紝
鑰屾槸閫氳繃org.jfree.report.elementfactory鍖呬腑鐨勫伐鍘傜被鏉ユ瀯寤恒傦細
l LabelElementFactory鈥斺旀爣絳懼厓绱犲伐鍘傜被錛屽畾涔夋姤琛ㄤ腑鏄劇ず鐨勫浐瀹氭枃鏈唴瀹廣?br />
l TextElementFactory鈥斺旀枃鏈厓绱犲伐鍘傜被錛屾牴鎹畾涔夌殑鍩熷悕錛屾樉紺哄叾鍩熷悕涓嬬殑鍐呭銆傛瘮濡傦細tableModel涓殑“緙栧彿”瀛楁涓嬬殑鍐呭銆?br />
l StaticShapeElementFactory鈥斺斿浘褰㈠厓绱犵被錛屽彲浠ョ粯鍒剁洿綰褲佺煩褰㈢瓑鍥懼艦銆?br />
鍏朵粬鐨勫厓绱犳垜娌$敤榪囷紝澶у鍙互鏌ョ湅JFreeReport鐨凙PI鏂囨。銆備粬浠殑鐢ㄦ硶璇風湅涓嬮潰鐨勪緥瀛愩?br />
public static final int ROW_HEIGHT = 20; //鎶ュ憡錛氳楂樺害
public static final int HEADER_HEIGHT = 40; //鎶ュ憡錛氭姤澶撮珮搴?br />
JFreeReport report = new JFreeReport(); //鏋勯燡FreeReport瀵硅薄
report.setName("Report Name");
PageDefinition pd = report.getPageDefinition(); //鍙栧緱鎶ュ憡欏甸潰瀹氫箟
float pageWidth = pd.getWidth(); //鍙栧緱鎵撳嵃鏉愯川鐨勯〉瀹?br />
//瀹氫箟欏靛ご
PageHeader header = new PageHeader();
LabelElementFactory title = new LabelElementFactory(); //鏍囬鍏冪礌
title.setText("緇熻鎶ヨ〃"); //璁劇疆鏂囨湰鍐呭
title.setColor(Color.BLACK); //璁劇疆棰滆壊
title.setAbsolutePosition(new Point2D.Float(0, HEADER_HEIGHT)); //璁劇疆鏄劇ず浣嶇疆
title.setMinimumSize(new FloatDimension(pageWidth, 36)); //璁劇疆灝哄
title.setHorizontalAlignment(ElementAlignment.LEFT);
title.setVerticalAlignment(ElementAlignment.MIDDLE);
title.setDynamicHeight(true); //璁劇疆鏄惁鍔ㄦ佽皟鏁撮珮搴︼紙濡傛灉涓簍rue錛屽綋鏂囨湰鍐呭瓚呭嚭鏄劇ず鑼冨洿鏃墮珮搴﹁嚜鍔ㄥ姞闀匡級
header.addElement(title.createElement());
report.setPageHeader(header);
String[] columnNames = getColumnNames(); //鍙栧緱鎶ヨ〃鏁版嵁鍩熺殑鎵鏈夊垪鍚?br />
if (columnNames != null && columnNames.length > 0) ...{
report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); //緇樺埗琛ㄦ牸鐨勬í綰?br />
//瀹氫箟鎶ヨ〃澶?br />
ReportHeader reportHeader = new ReportHeader();
for (int i = 0; i < columnNames.length; i++) ...{
//瀛楁鍚嶅厓绱?br />
LabelElementFactory col = new LabelElementFactory();
col.setName(columnNames[i]);
col.setColor(Color.BLACK);
col.setHorizontalAlignment(ElementAlignment.CENTER);
col.setVerticalAlignment(ElementAlignment.MIDDLE);
col.setDynamicHeight(true);
col.setAbsolutePosition(new Point2D.Float((pageWidth
/ (columnNames.length))
* i, 0));
col.setMinimumSize(new FloatDimension(pageWidth
/ (columnNames.length), ROW_HEIGHT)); //璁劇疆鏈灝忓昂瀵?br />
col.setBold(true); //璁劇疆鏄惁綺椾綋鏄劇ず
col.setText(columnNames[i]);
reportHeader.addElement(col.createElement());
reportHeader.addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), col.getAbsolutePosition().getX())); //鍏冪礌宸︿晶绔栫嚎
reportHeader.addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); //鍏冪礌涓婃柟妯嚎
reportHeader.addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), pageWidth)); //鍏冪礌鍙充晶绔栫嚎
report.setReportHeader(reportHeader);
//瀛楁鍐呭鍏冪礌
TextFieldElementFactory data = new TextFieldElementFactory();
data.setName(columnNames[i]);
data.setColor(Color.BLACK);
data.setAbsolutePosition(new Point2D.Float((pageWidth
/ (columnNames.length))
* i, 0));
data.setMinimumSize(new FloatDimension(pageWidth
/ (columnNames.length), ROW_HEIGHT));
data.setHorizontalAlignment(ElementAlignment.CENTER);
data.setVerticalAlignment(ElementAlignment.MIDDLE);
data.setDynamicHeight(true);
data.setWrapText(new Boolean(true));
data.setNullString("-"); //濡傛灉瀛楁鍐呭涓虹┖錛屾樉紺虹殑鏂囨湰
data.setFieldname(columnNames[i]);
report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));
report.getItemBand().addElement(data.createElement());
report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), -100));
report.getItemBand().addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), data.getAbsolutePosition().getX()));
report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));
}// end for(int i=0;i<columnNames.length;i++)
//鏈鍚庣殑绔栫嚎
report.getItemBand().addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), pageWidth));
PageFooter footer = new PageFooter();
//璁劇疆欏靛彿
PageOfPagesFunction pageFunction = new PageOfPagesFunction("PAGE_NUMBER"); //鏋勯犱竴涓〉鍙峰嚱鏁板璞?br />
pageFunction.setFormat("{0} / {1}欏?); //璁劇疆欏靛彿鏄劇ず鏍煎紡錛堟澶勬樉紺虹殑鏍煎紡涓?#8220;1/5欏?#8221;錛?br />
report.addExpression(pageFunction);
TextFieldElementFactory pageCount = new TextFieldElementFactory();
pageCount.setFieldname("PAGE_NUMBER");
pageCount.setColor(Color.black);
pageCount.setAbsolutePosition(new Point2D.Float(0, 0));
pageCount.setMinimumSize(new FloatDimension(pageWidth, 0));
pageCount.setHorizontalAlignment(ElementAlignment.RIGHT);
pageCount.setVerticalAlignment(ElementAlignment.MIDDLE);
pageCount.setDynamicHeight(true);
footer.addElement(pageCount.createElement());
report.setPageFooter(footer);
ReportFooter reportFooter = new ReportFooter();
reportFooter.addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0));
report.setReportFooter(reportFooter);
2銆乆ML鏂瑰紡瀹炵幇鎶ヨ〃鏍煎紡瀹氫箟
瀵逛簬綆鍗曠殑鎶ヨ〃錛屾垜浠彲浠ヤ嬌鐢ㄤ唬鐮佹潵瀹炵幇錛屼絾瀵逛簬澶嶆潅鐨勬姤琛紝浠g爜鍙兘灝辨棤鑳戒負鍔涗簡
錛堣櫧鐒朵篃鍙互瀹炵幇錛屼絾瀵逛簬璇諱唬鐮佺殑浜烘潵璇村彲鑳藉皢鏄満鐏鵑毦錛夛紝閭d箞鎴戜滑灝卞彲浠ラ氳繃瀹氫箟XML鏉ュ疄鐜版姤琛ㄦ牸寮忕殑瀹氫箟銆?br />
榪欑鏂規硶闈炲父鏂逛究鑰屼笖娓呮櫚銆?br />
JFreeReport瀹氫箟浜嗕袱縐峏ML瀹炵幇鏂規硶銆傝繖閲屾垜鍙粙緇嶄竴縐嶏紝鍥犱負鍙︿竴縐嶆垜娌℃湁鐢ㄨ繃銆傛垜鐩存帴閫氳繃渚嬪瓙鏉ヨВ閲婂浣曞疄鐜幫細
<?xml version="1.0" encoding="GB2312"?>
<report name="My Report" pageformat="A4" leftmargin="40" rightmargin="40">
<configuration>
<property name="com.jrefinery.report.preview.PreferredWidth">1024</property>
<property name="com.jrefinery.report.preview.PreferredHeight">768</property>
</configuration>
<!-- 鎶ュご -->
<reportfooter height="20" fontname="瀹嬩綋" fontsize="12">
</reportfooter>
<!-- 欏甸 -->
<pageheader fontname="瀹嬩綋" fontsize="12">
<!-- 鏂囨湰鍩燂紝鐢ㄤ簬鏄劇ず琛ㄦ暟鎹腑鏌愬垪鐨勫唴瀹?nbsp; -->
<!-- x,y: 涓哄潗鏍囩偣錛堜互欏甸鍖哄煙鐨勫乏涓婅涓?0, 0)鐐癸級 -->
<!-- width, height: 涓烘枃鏈煙鐨勫搴﹀拰楂樺害錛屽鏋滀負鏁板煎垯琛ㄧず涓虹粷瀵瑰昂瀵革紝濡傛灉涓虹櫨鍒嗘暟錛屽垯鑷姩浠ョ櫨鍒嗘瘮鏂瑰紡璋冩暣灝哄澶у皬 -->
<!-- alignment: 鎺掑垪鏂瑰紡 -->
<!-- fieldname: 鍩熷悕錛屽嵆鏁版嵁鍩熺殑鍒楀悕 -->
<!-- nullstring: 褰撴暟鎹煙鍐呭涓虹┖鏃舵樉紺虹殑瀛楃涓插唴瀹?-->
<!-- alignment: 姘村鉤鎺掑垪鏂瑰紡center錛宭eft鎴杛ight -->
<!-- vertical-alignment: 绔栫洿鎺掑垪鏂瑰紡top銆乵iddle鎴朾ottom -->
<!-- dynamic: 鏄惁鍔ㄦ佽皟鏁村崟鍏冩牸楂樺害錛屽鏋滀負true錛屽綋鏂囨湰鍐呭涓嶈凍浠ュ湪褰撳墠灝哄涓樉紺烘椂灝嗚嚜鍔ㄥ鍔犲崟鍏冩牸楂樺害 -->
<string-field x="0" y="0" width="100%" height="30" alignment="center" fontname="榛戜綋" fontsize="15" fieldname="report.title" nullstring=""></string-field>
<!-- 鏍囩鍩燂紝鐢ㄤ簬鍦ㄦ姤琛ㄤ腑鏄劇ず鍥哄畾鏂囨湰鍐呭 -->
<label x="0" y="20" width="100%" height="20" alignment="center" fontname="榛戜綋" fontsize="15">鎶ヨ〃</label>
<label x="5%" y="80" width="100%" height="20" alignment="left">緇熻鏃墮棿錛?lt;/label>
<string-field x="90" y="80" width="30%" height="18" alignment="left" fieldname="report.time" nullstring=""/>
<label x="70%" y="80" width="100%" height="20">緇熻鏃ユ湡錛?lt;/label>
<!-- 鏃墮棿鍩燂紝鐢ㄤ簬鏄劇ず鏃墮棿 -->
<!-- report.date: 涓嬮潰<function>涓畾涔夌殑鍑芥暟錛屾樉紺哄綋鍓嶆椂闂?-->
<!-- format: 鏃ユ湡鏍煎紡 -->
<date-field fieldname="report.date" format="yyyy/M/d" x="0%" y="80" width="95%" height="20" alignment="right"></date-field>
</pageheader>
<!-- 欏靛熬 -->
<pagefooter height="20" fontname="瀹嬩綋" fontsize="12">
<string-field fieldname="pageXofY" x="0" y="4" width="100%" height="18" alignment="right"/>
</pagefooter>
<!-- 鍒嗙粍 -->
<groups>
<group name="group1">
<!-- 鍒嗙粍澶?-->
<groupheader fontname="瀹嬩綋" fontsize="10.5">
<label x="0%" y="5" width="20%" height="40" alignment="center" vertical-alignment="middle"> 緇?nbsp; 璁?</label>
<rectangle x="0%" y="0" width="20%" height="50" color="#000000" draw="true" fill="false"/>
<label x="20%" y="5" width="40%" height="20" alignment="center" vertical-alignment="middle">涓?騫?搴?lt;/label>
<!-- 鍥懼艦錛氱煩褰?-->
<!-- color: 棰滆壊 -->
<!-- fill: 鏄惁濉厖 -->
<rectangle x="20%" y="0" width="40%" height="25" color="#000000" draw="true" fill="false"/>
<label x="20%" y="30" width="20%" height="20" alignment="center" vertical-alignment="middle">浜?鏁?lt;/label>
<rectangle x="20%" y="25" width="20%" height="25" color="#000000" draw="true" fill="false"/>
<label x="40%" y="30" width="20%" height="20" alignment="center" vertical-alignment="middle">鍗犳瘮(%)</label>
<rectangle x="40%" y="25" width="20%" height="25" color="#000000" draw="true" fill="false"/>
<label x="60%" y="5" width="40%" height="20" alignment="center" vertical-alignment="middle">鏈?騫?搴?lt;/label>
<rectangle x="60%" y="0" width="40%" height="25" color="#000000" draw="true" fill="false"/>
<label x="60%" y="30" width="20%" height="20" alignment="center" vertical-alignment="middle">浜?鏁?lt;/label>
<rectangle x="60%" y="25" width="20%" height="25" color="#000000" draw="true" fill="false"/>
<label x="80%" y="30" width="20%" height="20" alignment="center" vertical-alignment="middle">鍗犳瘮(%)</label>
<rectangle x="80%" y="25" width="20%" height="25" color="#000000" draw="true" fill="false"/>
</groupheader>
<!-- 鍙互榪樻湁鍒嗙粍灝?lt;groupfooter> -->
</group>
</groups>
<!-- 鏁版嵁鍩?nbsp; -->
<items fontname="瀹嬩綋" fontsize="12">
<!-- 鍥懼艦錛氱洿綰?-->
<line x1="0" y1="0" x2="0" y2="100%"/>
<string-field fieldname="騫村害浣撴緇撹" x="0%" y="5" width="20%" height="20" alignment="center" vertical-alignment="middle" nullstring="" dynamic="true"/>
<line x1="20%" y1="0" x2="20%" y2="100%"/><!-- 緇撹 -->
<string-field fieldname="涓婂勾搴? x="20%" y="5" width="20%" height="20" alignment="center" vertical-alignment="middle" nullstring="" dynamic="true"/>
<line x1="40%" y1="0" x2="40%" y2="100%"/><!-- 涓婂勾搴︿漢鏁?-->
<string-field fieldname="涓婂勾搴?%)" x="40%" y="5" width="20%" height="20" alignment="center" vertical-alignment="middle" nullstring="" dynamic="true"/>
<line x1="60%" y1="0" x2="60%" y2="100%"/><!-- 涓婂勾搴﹀崰姣?-->
<string-field fieldname="鏈勾搴? x="60%" y="5" width="20%" height="20" alignment="center" vertical-alignment="middle" nullstring="" dynamic="true"/>
<line x1="80%" y1="0" x2="80%" y2="100%"/><!-- 鏈勾搴︿漢鏁?-->
<string-field fieldname="鏈勾搴?%)" x="80%" y="5" width="20%" height="20" alignment="center" vertical-alignment="middle" nullstring="" dynamic="true"/>
<line x1="100%" y1="0" x2="100%" y2="100%"/><!-- 鏈勾搴﹀崰姣?-->
<line x1="0" y1="100%" x2="100%" y2="100%"/>
</items>
<!-- 鍑芥暟瀹氫箟 -->
<functions>
<!-- 鏄劇ず褰撳墠鏃墮棿鐨勫嚱鏁扮敤娉?nbsp; -->
<property-ref name="report.date"/>
<!-- 鏄劇ず褰撳墠欏電爜鐨勫嚱鏁扮敤娉?-->
<function name="PageNumber" class="org.jfree.report.function.PageFunction" deplevel="1"/>
<!-- 鏄劇ず鎬婚〉鏁扮殑鍑芥暟鐢ㄦ硶 -->
<function name="PageTotal" class="org.jfree.report.function.PageTotalFunction" deplevel="1"/>
<!-- 琛ㄨ揪寮忥紝嬈¤〃杈懼紡瀹氫箟涓涓樉紺洪〉鐮佹牸寮忕殑鐢ㄦ硶 -->
<expression name="pageXofY" class="org.jfree.report.function.TextFormatExpression">
<properties>
<property name="pattern">{0}/{1}欏?lt;/property>
<property name="field[0]">PageNumber</property>
<property name="field[1]">PageTotal</property>
</properties>
</expression>
</functions>
</report>
鍙︿竴縐嶆柟娉曟垜娌℃湁鐢ㄨ繃錛屼互鍚庝簡瑙d簡鍐嶈ˉ鍏呫?br />
鍥涖佽緭鍑?br />
瀹氫箟瀹孞FreeReport瀵硅薄錛屽氨鍙互榪涜杈撳嚭浜嗐備笅闈粙緇嶅嚑縐嶈緭鍑烘柟娉曘?br />
1銆侀氳繃棰勮紿楀彛瀵硅薄杈撳嚭
璇ユ柟寮忓彧鑳藉湪Application鐜涓嬌鐢ㄣ傞氳繃棰勮紿楀彛錛岀敤鎴峰彲浠ヨ嚜琛岄夋嫨鎵撳嵃銆佹帓鐗堟垨鐢熸垚鍚勭鏍煎紡鐨勬枃浠訛紝榪欎篃鏄垜浠湪Application涓父鐢ㄧ殑鏂瑰紡銆備唬鐮佺ず渚嬪涓嬶細
PreviewDialog preview = null; //棰勮紿楀彛瀵硅薄
try ...{
// 灝嗙敓鎴愮殑鎶ヨ〃鏀懼埌棰勮紿楀彛涓?br />
preview = new PreviewDialog(report);
} catch (ReportProcessingException e) ...{
e.printStackTrace();
}
if (preview != null) ...{
preview.pack();
preview.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
// 璁劇疆鎶ヨ〃璧峰鐐瑰強闀垮
preview.setLocation(new Point(0, 0));
Dimension screen = getToolkit().getScreenSize();
int width = (int) (screen.getWidth() - 2 * preview.getLocation().x);
int height = (int) (screen.getHeight());
preview.setSize(new Dimension(width, height));
// 鏄劇ず鎶ヨ〃棰勮紿楀彛
preview.setVisible(true);
preview.requestFocus();
// preview.addWindowListener(new CloseHandler());
}
2銆佽緭鍑篐TML鏂囨湰銆?br />
榪欑鏂規硶鍙互灝嗘姤琛ㄨ緭鍑轟負HTML璇█褰㈡垚鐨勬枃鏈紝榪欑鏂瑰紡閫傜敤浜庡湪嫻忚鍣ㄤ腑鏄劇ず鎶ヨ〃鍐呭銆傜ず渚嬩唬鐮佸涓嬶細
ByteArrayOutputStream bo = null;
StreamHtmlFilesystem filesystem = null;
try ...{
// 鐢熸垚Html
bo = new ByteArrayOutputStream();
final HtmlProcessor processor = new HtmlProcessor(report);
processor.setGenerateBodyFragment(true);
processor.setEncoding ("UTF-8");
filesystem = new StreamHtmlFilesystem(bo);
processor.setFilesystem(filesystem);
processor.processReport();
String htmlCode = new String(bo.toByteArray(), "UTF-8");
bo.close();
bo = null;
filesystem.close();
filesystem = null;
} catch(FileNotFoundException e) ...{
e.printStackTrace();
} catch(SecurityException e) ...{
e.printStackTrace();
} catch (ReportProcessingException e) ...{
e.printStackTrace();
} catch (IOException e) ...{
e.printStackTrace();
}
3銆佽緭鍑篜DF鏂囦歡
PDF鐨勮緭鍑烘柟寮忚窡HTML鐨勫樊涓嶅錛屼絾鏈変竴鐐癸紝JFreeReport鏈韓鏃犳硶杈撳嚭涓枃瀛楃錛屽鏋滄兂瑕佽緭鍑轟腑鏂囷紝鎴戞病鏈夋壘鍒版洿濂界殑鏂規硶錛屾墍浠ユ洿鏀逛簡JFreeReport鍖呬腑org.jfree.report.modules.output.support.itext.BaseFontSupport綾葷殑婧愮爜錛屽皢
final BaseFont f = BaseFont.createFont(BaseFont.HELVETICA, stringEncoding, embedded,
false, null, null)涓殑BaseFont.HELVETICA鏀逛負“STSong-Light”,鍙﹀闇瑕佸埌www.lowagie.com/iText緗戠珯涓嬭澆iText.jar鍖呬互鏀寔STSong-Light瀛椾綋緙栫爜錛岃繖鏍鳳紝灝卞彲浠ヨ緭鍑轟腑鏂囦簡銆傜ず渚嬩唬鐮佸涓嬫墍紺猴細
榪欓噷娉ㄦ剰錛屽繀欏誨皢target鐨勫瓧浣撶紪鐮佽涓?#8220;UniGB-UCS2-H”鑰屼笖浣跨敤Java1.5榪涜緙栬瘧
PDFOutputTarget target = null;
try ...{
//鐢熸垚pdf
FileOutputStream fos = new FileOutputStream("PDF.pdf");
target = new PDFOutputTarget(fos);
target.configure(report.getReportConfiguration());
target.setFontEncoding("UniGB-UCS2-H");
target.open();
final PageableReportProcessor proc = new PageableReportProcessor(report);
proc.setOutputTarget(target);
proc.processReport();
target.close();
target = null;
} catch(FileNotFoundException e) ...{
e.printStackTrace();
} catch(SecurityException e) ...{
e.printStackTrace();
} catch (OutputTargetException e) ...{
e.printStackTrace();
} catch (ReportProcessingException e) ...{
e.printStackTrace();
}
浠ヤ笂灝辨槸鎴戝JFreeReport緇勪歡鐨勬葷粨錛屽啓鐨勪笉濂藉笇鏈涘澶у鏈夋墍
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2056738