博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 图片与文字生成PDF
阅读量:5322 次
发布时间:2019-06-14

本文共 3055 字,大约阅读时间需要 10 分钟。

1.jar包:iText-2.1.5.jar

2.code:

import java.awt.Color;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.Element;import com.lowagie.text.Font;import com.lowagie.text.FontFactory;import com.lowagie.text.Image;import com.lowagie.text.PageSize;import com.lowagie.text.Phrase;import com.lowagie.text.pdf.ColumnText;import com.lowagie.text.pdf.PdfContentByte;import com.lowagie.text.pdf.PdfWriter;public class GeneratePdf {    private void handleText(PdfWriter writer, String content, String color,            float x, float y, float z) {        PdfContentByte canvas = writer.getDirectContent();        Phrase phrase = new Phrase(content);        if (color != null) {            phrase = new Phrase(content, FontFactory.getFont(                    FontFactory.COURIER, 12, Font.NORMAL, new Color(255, 0, 0)));        }        ColumnText.showTextAligned(canvas, Element.ALIGN_UNDEFINED, phrase, x,                y, z);    }    public File Pdf(String imagePath, String mOutputPdfFileName) {        Document doc = new Document(PageSize.A4, 20, 20, 20, 20);        try {            PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(                    mOutputPdfFileName));            doc.open();            doc.newPage();            Image png1 = Image.getInstance(imagePath);            float heigth = png1.getHeight();            float width = png1.getWidth();            int percent = this.getPercent2(heigth, width);            png1.setAlignment(Image.MIDDLE);            png1.setAlignment(Image.TEXTWRAP);            png1.scalePercent(percent + 3);            doc.add(png1);            this.handleText(writer, "This is a test", "red", 400, 725, 0);            doc.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (DocumentException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        File mOutputPdfFile = new File(mOutputPdfFileName);        if (!mOutputPdfFile.exists()) {            mOutputPdfFile.deleteOnExit();            return null;        }        return mOutputPdfFile;    }    public int getPercent1(float h, float w) {        int p = 0;        float p2 = 0.0f;        if (h > w) {            p2 = 297 / h * 100;        } else {            p2 = 210 / w * 100;        }        p = Math.round(p2);        return p;    }    private int getPercent2(float h, float w) {        int p = 0;        float p2 = 0.0f;        p2 = 530 / w * 100;        p = Math.round(p2);        return p;    }    public static void main(String[] args) {        GeneratePdf gp = new GeneratePdf();        String pdfUrl = "C:\\pdf.pdf";        File file = gp                .Pdf("C:\\683.JPG",pdfUrl);        try {            file.createNewFile();        } catch (IOException e) {            e.printStackTrace();        }    }}

 

转载于:https://www.cnblogs.com/zhangfei/p/3318439.html

你可能感兴趣的文章
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
spring11----基于Schema的AOP
查看>>
解决input框自动填充为黄色的问题
查看>>
音视频基础知识(一)
查看>>
CyclicBarrier的使用
查看>>
小程序开发笔记
查看>>
Web框架高级功能之模板、拦截器、Json、打包
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
安装scikit-learn过程记录
查看>>
数据库的标识符可以有多长
查看>>
新手村之循环!循环!循环!
查看>>
在创业公司上班的感受
查看>>
Shell脚本
查看>>
masm32V11配置
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
通过Python、BeautifulSoup爬取Gitee热门开源项目
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>