android利用itext5制作pdf,Itext5生成PDF
Itext5生成PDF
Itext
官網(wǎng)
Java操作pdf方法
通過Adobe Acrobat生成pdf form,通過Java設(shè)置form表單中的元素值進(jìn)行數(shù)據(jù)填充。
讀取pdf通過坐標(biāo)進(jìn)行填充數(shù)據(jù),繪制成結(jié)果pdf。
通過itext代碼繪制pdf。
Acrobat制作模板
先用Excel制作一個(gè)Excel模板,另存為PDF文件。
用Adobe Acrobat Pro DC打開PDF模板文件,打開表單功能,在指定地方添加文字域,模板即可制作完成。
Java代碼填充AcroField
Java代碼對(duì)Acrobat制作的PDF中的Form進(jìn)行填充。
Maven坐標(biāo)
properties
itextpdf.version5.5.6/itextpdf.version
/properties
dependencies
dependency
groupIdcom.itextpdf/groupId
artifactIditextpdf/artifactId
version${itextpdf.version}/version
/dependency
dependency
groupIdcom.itextpdf.tool/groupId
artifactIdxmlworker/artifactId
version${itextpdf.version}/version
/dependency
dependency
groupIdcom.itextpdf/groupId
artifactIditext-asian/artifactId
version5.2.0/version
/dependency
/dependencies
Java代碼
//設(shè)置字體
//BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
/*模板*/
PdfReader reader = new PdfReader("發(fā)票模板.pdf");
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PdfStamper ps = new PdfStamper(reader, bos);
/*使用中文字體 使用 AcroFields填充值的不需要在程序中設(shè)置字體,在模板文件中設(shè)置字體為中文字體 Adobe 宋體 std L*/
AcroFields s = ps.getAcroFields();
//設(shè)置表單的key-value值
//通過s.setFieldProperty("字段名", "textfont", BaseFont , null); 設(shè)置字段的格式或者在模板中修改樣式
//s.setFieldProperty("checkNo","textfont",bfChinese,null);
s.setField("checkNo", "20210204");
s.setField("$info$", "測(cè)試單位");
s.setField("$projectName_1$", "測(cè)試項(xiàng)目");
s.setField("$num_1$", "2");
s.setField("$bw_1$", "1");
s.setField("$amount_1$", "100000000");
s.setField("$total$", "壹佰萬整");
s.setField("$bz_1$", "個(gè)");
s.setField("$SKR$", "測(cè)試人");
s.setField("$SKDW$", "測(cè)試單位");
s.setField("$year$", "2021");
s.setField("$month$", "11");
s.setField("$day$", "08");
// 設(shè)為true,設(shè)置為false后生成的pdf依然可編輯
ps.setFormFlattening(true);
ps.close();
/*輸出到指定位置*/
FileOutputStream fos = new FileOutputStream("d:\\發(fā)票.pdf");
fos.write(bos.toByteArray());
輸出展示
參考:
https://blog.csdn.net/u011391773/article/details/53084231
https://blog.csdn.net/sand_clock/article/details/85328849
Itext5生成PDF 相關(guān)文章
自己寫的一個(gè)java小腳本,用于comsol仿真聲子晶體的能帶圖數(shù)據(jù)直接生成origin可以用的csv文件!
import javax.security.auth.login.CredentialException;import java.io.*;import java.util.Arrays;public class Hannscript { //判斷幾行 public static int count = 0; public static void main(String[] args) throws IOException { //String path = Thr
Github Pages 的特性來部署由 Hexo 框架渲染生成的靜態(tài)博客
準(zhǔn)備環(huán)境 安裝 Hexo 注冊(cè) Github 配置 SSH key 部署到 Github 開始寫作 主題設(shè)置 七牛實(shí)現(xiàn)圖床 個(gè)性化主題 添加評(píng)論功能 環(huán)境準(zhǔn)備 shiyanlou:project/ $ git version [18:28:15] git version 2.7.4 shiyanlou:project/ $ node -v [18:28:24] v12.14.1 shiyan
Degree of Spanning Tree 南京ICPC2020 生成樹+并查集+思維
Degree of Spanning Tree 生成樹 + 思維 題目大意: 給你一張 \(n\) 個(gè)節(jié)點(diǎn) \(m\) 條邊的無向圖,你可以刪去一些節(jié)點(diǎn)使得這張圖變成一棵樹,要求每一個(gè)節(jié)點(diǎn)的度數(shù)小于等于 \(\frac{n}{2}\) 題解: 要一步一步的分析 首先分析如何把一張圖變成一棵樹,并查集
golang 生成rsa秘鑰對(duì)
需求:golang生成秘鑰對(duì),秘鑰有密碼 package mainimport ("crypto/rand""crypto/rsa""crypto/x509""encoding/pem""fmt""os")func generateRSAKey(pripath, pubpath, passwd string) error {privateKey, err := rsa.GenerateKey(rand.Reader, 2048)if err !=
WinDbg分析DUMP文件
1. 如何生成dump文件 原理:通過SetUnhandledExceptionFilter設(shè)置捕獲dump的入口,然后通過MiniDumpWriteDump生成dump文件; SetUnhandledExceptionFilter:https://msdn.microsoft.com/query/dev10.queryappId=Dev10IDEF1l=EN-USk=k(SETUNHANDLEDEXCEPTIONFI
一個(gè)網(wǎng)址,需要生成一個(gè)帶有人臉識(shí)別功能的APP如何做
問題:一個(gè)官網(wǎng)地址,需要生成一個(gè)帶有人臉識(shí)別功能的APP如何做 操作步驟: 第一步:進(jìn)入中控易動(dòng)平臺(tái),創(chuàng)建一個(gè)應(yīng)用,創(chuàng)建完成進(jìn)入應(yīng)用 注意:首頁(yè)網(wǎng)址輸入的是:自己的官網(wǎng)地址 第二步:添加人臉識(shí)別插件(ArcSoftFace插件) 第三步:查看插件文檔,配置插
自動(dòng)生成業(yè)務(wù)編號(hào) 備份
String sqlCode = "SELECT MAX(code) as code from gongzuo where year(create_date) = year(NOW()) and month(create_date)=month(NOW()) "; String delegateCode = jdbcTemplate.queryForObject(sqlCode, String.class); StringB String sqlCode = "SELECT
Javadoc生成文檔
1 package com.lin.base; 2 3 /** 4 * @author Lin 5 * @version 1.0 6 * @since 11 7 */ 8 public class Doc { 9 String name;10 11 /**12 *13 * @param name14 * @return15 * @throws Exception16 */17 public String test(String name)throws Exception{1
使用IDEA的webservice工具解析生成的客戶端調(diào)用遠(yuǎn)程接口
由于這個(gè)接口的報(bào)文格式比較麻煩,是XML的請(qǐng)求頭加上JSON格式的請(qǐng)求體,所以看起來比較復(fù)雜,也可以用RPC的方式調(diào)用,那樣需要將請(qǐng)求頭和請(qǐng)求體,響應(yīng)頭和響應(yīng)體建實(shí)體。 public JSONObject sendReq(PortTypeEnum portTypeEnum,JSONObject reqBody){ Main ma
allure生成的報(bào)告打開后顯示loading
allure生成的報(bào)告打開后顯示loading,怎么辦 1. allure生成報(bào)告的命令 1.1、生成測(cè)試數(shù)據(jù) # 命令格式:pytest 相關(guān)參數(shù) 指定執(zhí)行的用例 --alluredir=數(shù)據(jù)存放的路徑# 參數(shù):--alluredir指定結(jié)果數(shù)據(jù)保存的目錄,可以用等號(hào),也可以空格# 命令示例1:④pytest
總結(jié)
以上是生活随笔為你收集整理的android利用itext5制作pdf,Itext5生成PDF的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB 图像处理之图片区域显示
- 下一篇: Astar算法笔记