使用itext生成带表格pdf文件(包含生成条形码、设置单元格高度、向表格中插入图片、设置输出文件的页面大小)

本文将介绍如何使用Java的itext库来生成包含表格、条形码以及图片的PDF文件,同时讲解如何设置单元格高度和页面大小,为PDF文档定制视觉效果。
摘要由CSDN通过智能技术生成
package com.shipfile.pojo;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;



public class GetExportPdf {
   

	//public static void main(String[] args) throws DocumentException, FileNotFoundException  {
   
	public String getpdffile(HttpServletRequest request, String path, String job_num, List<ShipPojo> list, String picPath, String packing_date) {
   
		float rate = 2.83333f;
		//10厘米X15里面的纸
	    int width = Math.round(100 * rate);
	    int height = Math.round(150 * rate);
	    //设置纸张大小,设置横向纵向只用将宽高互换即可
		Document doc = new Document(new Rectangle(height,width),1,1,1,1);
		String exportfilepath = path +"/" +list.get(0).getMcat_num()+"-"+System.currentTimeMillis()+".pdf";
		//File file = new File("C:\\Users\\503125053\\Desktop\\victor\\测试1.pdf");
		//System.out.println("导出文件的路径为:"+exportfilepath);
		File file = new File(exportfilepath);
		if (file.exists()) {
   
			file.delete();
		}
		PdfWriter writer = null;
		try {
   
			FileOutputStream foStream = new FileOutputStream(file);
			// 把word与输出流绑定
			writer = PdfWriter.getInstance(doc, foStream);
		} catch (FileNotFoundException e1) {
   
			// TODO Auto-generated catch block
			e1.printStackTrace();
		} catch (DocumentException e) {
   
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 把word与输出流绑定
        //RtfWriter2.getInstance(doc, foStream);
        // 开始写入word,必须调用这个方法才能进行word的写入
        doc.open();
        // 加载额外字体的第一种方法:iText本身支持的字体少,这个时候可以使用系统自带的字体
       // FontFactory.register("C:\\WINDOWS\\Fonts\\simsun.ttc");
       
        // 这是另一种加载字体的方法,把字体文件放到webapp下,防止某些电脑并没有第一种方法中的字体.
        String realPath = request.getSession().getServletContext().getRealPath("/") + "font/";
        FontFactory.register(realPath + "SIMSUN.TTC"); 
        FontFactory.register(realPath + "STFANGSO.TTF"); 
        FontFactory.register(realPath + "STKAITI.TTF");
        // 对字体文件右键查看详细信息的标题,可以获取getFont方法中第一个参数的字符串.
        // 第二个参数不用管是编码集, 第三个参数是字体大小
        Font titlefont = FontFactory.getFont("simsun", Bas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值