PDF報表匯出

2021-08-28 03:10:53 字數 3809 閱讀 9870

使用itext pdf 類庫匯出:

1.匯入依賴:

com.lowagiegroupid>

itextartifactid>

4.2.1version>

dependency>

com.itextpdfgroupid>

itext-asianartifactid>

5.2.0version>

dependency>

2.查詢資料:

listwaybills =waybillservice.findall(model);
3.匯出pdf檔案:

// 設定頭資訊

string filename = "運單資料.pdf"

; string agent = servletactioncontext.getrequest()

.getheader("user-agent");

filename = fileutils.encodedownloadfilename(filename, agent);

servletactioncontext.getresponse().setheader("content-disposition",

"attachment;filename=" + filename);

// 生成pdf檔案

document document = new document();

pdfwriter.getinstance(document, servletactioncontext.getresponse()

.getoutputstream());

document.open();

// 寫pdf資料

// 向document 生成pdf**

table table = new table(7);

table.setwidth(100); // 寬度

table.setborder(1); // 邊框

table.getdefaultcell().sethorizontalalignment(element.align_center); // 水平對齊方式

table.getdefaultcell().setverticalalignment(element.align_top); // 垂直對齊方式

// 設定**字型

basefont cn = basefont.createfont("stsongstd-light", "unigb-ucs2-h",

false);

font font = new font(cn, 10, font.helvetica, color.black);

// 寫表頭

table.addcell(buildcell("運單號", font));

table.addcell(buildcell("寄件人", font));

table.addcell(buildcell("寄件人**", font));

table.addcell(buildcell("寄件人位址", font));

table.addcell(buildcell("收件人", font));

table.addcell(buildcell("收件人**", font));

table.addcell(buildcell("收件人位址", font));

// 寫資料

for (waybill waybill : waybills)

// 將**加入文件

document.add(table);

document.close();

jasperreport+ireport匯出:

1.新增依賴:

org.codehaus.groovygroupid>

groovy-allartifactid>

2.2.0version>

dependency>

net.sf.jasperreportsgroupid>

jasperreportsartifactid>

5.6.0version>

com.lowagiegroupid>

itextartifactid>

exclusion>

exclusions>

dependency>

2.編寫查詢**:

// 設定頭資訊

string filename = "運單資料.pdf"

; string agent = servletactioncontext.getrequest()

.getheader("user-agent");

filename = fileutils.encodedownloadfilename(filename, agent);

servletactioncontext.getresponse().setheader("content-disposition",

"attachment;filename=" + filename);

// 根據 jasperreport模板 生成pdf

// 讀取模板檔案

string jrxml = servletactioncontext.getservletcontext().getrealpath(

"/web-inf/jasper/waybill.jrxml");

jasperreport report = jaspercompilemanager.compilereport(jrxml);

// 設定模板資料

// parameter變數

mapparamerters = new hashmap();

paramerters.put("company", "傳智播客");

// field變數

//根據要求查詢的資料生成pdf

jasperprint jasperprint = jasperfillmanager.fillreport(report,

paramerters, new jrbeancollectiondatasource(waybills));

//根據ireport的sql查詢資料生成pdf

jasperprint jasperprint2 = jasperfillmanager.fillreport(report,

paramerters, datasource.getconnection());

.println(waybills);

// 生成pdf客戶端

jrpdfexporter exporter = new jrpdfexporter();

exporter.setparameter(jrexporterparameter.jasper_print, jasperprint);

exporter.setparameter(jrexporterparameter.output_stream,

servletactioncontext.getresponse().getoutputstream());

exporter.exportreport();// 匯出

ps:

當我們不使用ireoort查詢資料顯示時,需要在ireport 新增符合查詢物件屬性的 field

pdf沒有資料:檢查前台表單的提交方式是否是post;

pdf資料沒有自動換行:檢查在屬性中是否設定了自動換行,手動在ireport中拓展行高,有沒有為顯示資料新增中文顯示;

水晶報表匯出為word,excel和pdf格式

string filetype filetype ddlfiletype.selectedvalue string contenttype file reportexportfile session.sessionid filetype crystaldecisions.shared.diskfil...

birt 3 7 1匯出PDF報表中文問題

報表用的是指令碼資料來源產生資料。在相同的環境下輸出html,excel格式的都沒有問題。birt 輸出pdf需要itext 的支援,而3.7.1版本中不用自己處理itext.jar,在其plugins中已經存在該外掛程式了。至於中文處理我在網上查了一下,說是將 itextasian.jar 放到r...

潤幹報表Api後台匯出報表組到PDF

潤幹報表頁面展現報表組檔案後,採用標籤生成的匯出pdf能將各報表組子項匯出到乙個pdf檔案,但有的使用者可能不需要前端展現,而是直接呼叫後台程式運算報表並匯出pdf。預設情況下,參考教程或手冊後,會考慮用reportutils或reportexpoerter,但結果發現並不能將組內的各子項匯出到乙個...