java转pdf

最近项目需求,将文档做已修改并以pdf格式输出,自己就从网上搜了下,自己写了demo一、引入jar    我的项目是maven构建的,这里是我导出pdf所需要的jar <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <dependency> <group...
摘要由CSDN通过智能技术生成

最近项目需求,将文档做已修改并以pdf格式输出,自己就从网上搜了下,自己写了demo

一、引入jar

    我的项目是maven构建的,这里是我导出pdf所需要的jar

		<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
		<dependency>
		    <groupId>com.itextpdf</groupId>
		    <artifactId>itextpdf</artifactId>
		    <version>5.5.13</version>
		</dependency>
			
		<!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
		<dependency>
		    <groupId>com.itextpdf</groupId>
		    <artifactId>itext-asian</artifactId>
		    <version>5.2.0</version>
		</dependency>

二、上干货,码代码



import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfGState;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfWriter;

public class Test1 {

	
	public static void main(String[] args) throws Exception {
		imageWaterMark(createPDF(), "D://1.jpg"); 

		}


		/**
		* 创建PDF文档
		* @return
		* @throws Exception
		* @throws docException
		*/
		public static String createPDF() throws Exception {
		        
			    //输出路径
			    String outPath = "D://test1.pdf";//DataUtil.createTempPath(".pdf");
		   
		        //设置纸张
		        Rectangle rect = new Rectangle(PageSize.A4);
		   
		        //创建文档实例
		        Document doc=new Document(rect);
		        
		        //添加中文字体
		        BaseFont bfChinese=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
		        
		        //设置字体样式
		        Font textFont = new Font(bfChinese,11,Font.NORMAL); //正常
		        Font redTextFont = new Font(bfChinese,11,Font.NORMAL); //正常,红色
		        Font boldFont = new Font(bfChinese,11,Font.BOLD); //加粗
		        Font redBoldFont = new Font(bfChinese,11,Font.BOLD); //加粗,红色
		        Font firsetTitleFont = new Font(bfChinese,22,Font.BOLD); //一级标题
		        Font secondTitleFont = new Font(bfChinese,15,Font.BOLD); //二级标题
		        Font underlineFont = new Font(bfChinese,11,Font.UNDERLINE); //下划线斜体
		        
		        //手指图片
		        Image hand = Image.getInstance("D:\\0.05.png");
		        hand.setWidthPercentage(10);
		   
		        
		        //创建输出流
		        PdfWriter.getInstance(doc, new FileOutputStream(new File(outPath)));
		        
		        doc.open();
		        doc.newPage();
		        
		        //段落  
		        Paragraph p1 = new Paragraph();  
		        //短语
		        Phrase ph1 = new Phrase();  
		        //块
		        Chunk c1 = new Chunk("*********", boldFont) ;
		        Chunk c11 = new Chunk("(信用报告提供机构l ogo)", textFont) ;
		        //将块添加到短语
		        ph1.add(c1);
		        ph1.add(c11);
		        //将短语添加到段落
		        p1.add(ph1);
		        //将段落添加到短语
		        doc.add(p1);
		        
		        p1 = new Paragraph();  
		        ph1 = new Phrase(); 
		        Chunk c2 = new Chunk("报告编号:", boldFont) ;
		        Chunk c22 = new Chunk("SN-201604010001", textFont) ;
		        ph1.add(c2);
		        ph1.add(c22);
		        p1.add(ph1);
		        doc.add(p1);
		        
		        p1 = new Paragraph("企业信用报告", firsetTitleFont);
		        p1.setLeading(50);
		        p1.setAlignment(Element.ALIGN_CENTER);
		        doc.add(p1);


		        p1 = new Paragraph("(企业版)", textFont);
		        p1.setLeading(20);
		        p1.setAlignment(Element.ALIGN_CENTER);
		        doc.add(p1);
		            
		        p1 = new Paragraph();  
		        p1.setLeading(20);
		        p1.setAlignment(Element.ALIGN_CENTER);
		        ph1 = new Phrase(); 
		        Chunk c3 = new Chunk("查询时间:", boldFont) ;
		        Chunk c33 = new Chunk("2016-04-01 00:00:00", textFont) ;
		        Chunk c4 = new Chunk(leftPad("查询人:", 10), boldFont) ;
		        Chunk c44 = new Chunk("admin(用户登录名)", textFont) ;
		        ph1.add(c3);
		        ph1.add(c33);
		        ph1.add(c4);
		        ph1.add(c44);
		        p1.add(ph1);
		        doc.add(p1);
		            
		        p1 = new Paragraph("报告说明", secondTitleFont);
		        p1.setLeading(50);
		        p1.setAlignment(Element.ALIGN_CENTER);
		        doc.add(p1);
		        
		        p1 = new Paragraph("
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值