javapdf模板填充生成pdf打印(亲测有效)

更新时间:2023-07-31 06:46:29 阅读: 评论:0

妥协歌词
javapdf模板填充⽣成pdf打印(亲测有效)
//先要制作好pdf模板(可以在word ⾥⾯画好,导出保存pdf⽂件),下载Adobe Acrobat DC ⼯具后打开 pdf ⾥⾯带格式的,然后点击准备表单按钮你可以拖动⽂本和⽂本域(图⽚/⽂本),编辑好后再保存即可,下⾯有图哦.
import DocumentException;
import Image;
import Rectangle;
import pdf.*;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class PDFUtil {
public static void main(String[] args) throws Exception {
//参考 /article/2118369405/
test();
System.out.println("success");
}
public static void test() throws IOException, DocumentException {
// pdf模板
String fileName = "D:/113.pdf";
//读取pdf
PdfReader reader = new PdfReader(fileName);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//将要⽣成的⽬标PDF⽂件名称
PdfStamper ps = new PdfStamper(reader, bos);
//PdfContentByte under = ps.getUnderContent(1);
//设置中⽂字体
BaFont bf = ateFont("STSong-Light", "UniGB-UCS2-H", BaFont.NOT_EMBEDDED);
ArrayList<BaFont> fontList = new ArrayList<BaFont>();
fontList.add(bf);
//取出报表模板中的所有字段
AcroFields fields = ps.getAcroFields();
fields.tSubstitutionFonts(fontList);
//对表单数据进⾏赋值
fillData(fields, ps, data());
//(如果为fal,⽣成的PDF⽂件可以编辑,如果为true,⽣成的PDF⽂件不可以编辑)
回乡偶书的意思ps.tFormFlattening(true);
ps.clo();
OutputStream fos = new FileOutputStream("D:/new.pdf");
fos.ByteArray());
fos.flush();
fos.clo();
bos.clo();
}
public static void fillData(AcroFields fields, PdfStamper ps, Map<String, String> data) throws IOException, DocumentException {        // 为字段赋值,注意字段名称是区分⼤⼩写的
for (String key : data.keySet()) {
if (key.equals("Text8")){//图⽚
/**
* 添加图⽚
*/
String imgpath = (key);
int pageNo = FieldPositions(key).get(0).page;
Rectangle signRect = FieldPositions(key).get(0).position;
float x = Left();
float y = Bottom();
//根据路径读取图⽚
Image image = Instance(imgpath);
//获取图⽚页⾯
PdfContentByte under = ps.getOverContent(pageNo);
//图⽚⼤⼩⾃适应
美联储加息意味着什么image.Width(), Height());
//添加图⽚
image.tAbsolutePosition(x, y);
under.addImage(image);
}el if(key.equals("Text7")){//⽣成⼆维码
Object value = (key);
// 获取属性的类型
if(value != null && Field(key) != null){
//获取位置(左上右下)
AcroFields.FieldPosition fieldPosition = FieldPositions(key).get(0);
//绘制⼆维码
百度知道推广float width = Right() - Left();
BarcodeQRCode pdf417 = new String(), (int)width, (int)width, null);
鸡内金能治结石吗
//⽣成⼆维码图像
Image image128 = Image();
//绘制在第⼀页
PdfContentByte cb = ps.getOverContent(1);
//左边距(居中处理)
float marginLeft = (Right() - Left() - Width()) / 2;
//条码位置
image128.tAbsolutePosition(Left() + marginLeft, Bottom());
//加⼊条码
cb.addImage(image128);
}
}el if(key.equals("Text9")){//条形码
Object value = (key);
// 获取属性的类型
if(value != null && Field(key) != null){
//获取位置(左上右下)
AcroFields.FieldPosition fieldPosition = FieldPositions(key).get(0);
//绘制条码
Barcode128 barcode128 = new Barcode128();
//字号
barcode128.tSize(10);
//条码⾼度
barcode128.tBarHeight(35);
//条码与数字间距
//条码与数字间距
barcode128.tBaline(10);
//条码值
barcode128.String());
barcode128.tStartStopText(fal);
barcode128.tExtended(true);
//绘制在第⼀页
PdfContentByte cb = ps.getOverContent(1);
//⽣成条码图⽚
Image image128 = ateImageWithBarcode(cb, null, null);中士的工资是多少一月
//左边距(居中处理)
float marginLeft = (Right() - Left() - Width()) / 2;                    //条码位置
image128.tAbsolutePosition(Left() + marginLeft, Bottom());                    //加⼊条码
cb.addImage(image128);
}
}el {//⽂本处理
String value = (key);
fields.tField(key, value);
}
}
}
public static Map<String, String> data() {
Map<String, String> data = new HashMap<String, String>();
data.put("fhDate", "2021年12⽉13⽇");
data.put("hf", "伙房名称襄阳⼯⼚");
data.put("gysbm", "20210909");
data.put("skfmc", "⼴州**机械有限");
data.put("gysmc", "襄阳**机械有限公司test001");
data.put("shr", "有⼤头");
data.put("dhcs", "BOOOOOM3");
25个表白藏头诗
data.put("dhzsr", "2012-12-09 10:11:09");
data.put("jhdhm", "JHD100009");
data.put("cgdh", "CGD10000fsfd");
data.put("Text7", "");
data.put("Text8", "D:/ewm001.png");
data.put("Text9", "txmQWERTYUIOPASDFGHJKLZXCVBNM<");
return data;
}
}

本文发布于:2023-07-31 06:46:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1124489.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模板   表单   条码   襄阳
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图