国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

JasperReport定義變量后打印PDF變量為null以及整個pdf文件為空白

這篇具有很好參考價值的文章主要介紹了JasperReport定義變量后打印PDF變量為null以及整個pdf文件為空白。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

問題1: JasperReport打印出來的整個pdf文件為空白文件;
問題2:JasperReport定義變量后打印PDF變量為null;

問題1原因是因?yàn)槿鄙贁?shù)據(jù)源JRDataSource

JasperFillManager.fillReport(jasperReport, params,new JREmptyDataSource());

如果你打印的jrxml文件單純是一些文本,沒有數(shù)據(jù),那么你需要在fillReport 函數(shù)傳入一個空的數(shù)據(jù)源,如果沒有數(shù)據(jù)源生成的PDF就是空白的,如下圖:
JasperReport定義變量后打印PDF變量為null以及整個pdf文件為空白,pdf,jasper,java
問題2原因是把field 和 parameter 搞混了,如果只是參數(shù),那么你就定義成parameter,如果是數(shù)據(jù)信息就定義成字段即可;

小提示:如果你需要將數(shù)據(jù)進(jìn)行打印出來,那么定義成field,此時你的數(shù)據(jù)就是數(shù)據(jù)源:JRDataSource datasource = new JRBeanCollectionDataSource(dataList);

最后附上相關(guān)源碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-690887.html

//主函數(shù)
public static void main(String[] args){
		String str = "/Documents/work/ccount_4.jrxml"; //jrxml文件地址
		Map<String, Object> params = new HashMap<>();
		params.put("tenantName","ccccccc");  //封裝變量tenantName
		pdfByJrxml(str,params); //PDF文件生成邏輯

	}

//Jasper生產(chǎn)PDF文件
	public static String pdfByJrxml(String jrxmlPath, Map<String, Object> params) {
		try {
			InputStream resourceAsStream = new FileInputStream(jrxmlPath);
			JasperDesign jasperDesign = JRXmlLoader.load(resourceAsStream);
			JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
			//fillReport 重點(diǎn)是這個方法,如果沒有數(shù)據(jù),那么需要制定空的數(shù)據(jù)源,否則生成的PDF是空白的
			JasperPrint jasperPrint =
					JasperFillManager.fillReport(jasperReport, params,new JREmptyDataSource());
								byte[] bytes = JasperExportManager.exportReportToPdf(jasperPrint);
			testWriteLocalFile(bytes); //將PDF文件輸出到本地
		} catch (Exception  e) {
			logger.error("generate pdf error{}", e);
		}
	}
	//本地生成PDF文件
	public static void testWriteLocalFile(byte[] bytes){
		BufferedOutputStream bos = null;
		FileOutputStream fos = null;
		File file;
		String filePath = "/xxx/Documents/work/";
		try {
			File dir = new File(filePath);
			if(!dir.exists()&&dir.isDirectory()){//判斷文件目錄是否存在
				dir.mkdirs();
			}
			file = new File(filePath+"d.pdf");
			fos = new FileOutputStream(file);
			bos = new BufferedOutputStream(fos);
			bos.write(bytes);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (bos != null) {
				try {
					bos.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
			if (fos != null) {
				try {
					fos.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}
			}
		}
	}```

到了這里,關(guān)于JasperReport定義變量后打印PDF變量為null以及整個pdf文件為空白的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包