android下用itext修改pdf模板檔案
1、採用office 2007製作PDF檔案,其他PDF工具也可以。用word的表格文字處理能力來製作表格,應該都不會有什麼問題,應該讓程式碼來完成最靈巧的工作,注意留夠表單域的空間。製作好的表格檔案輸出成為PDF檔案.
2、使用Acrobat開啟製作好的表格PDF檔案,製作表單域。注意域名要唯一,同時,注意域的字型、格式、排列等相關屬性。
3、使用iText的PDFreader來讀取模板PDF檔案,使用setField(fieldname,value)來填充PDF上的表格域,將完成後的PDF檔案輸出儲存即得到完美的PDF表格檔案。
上程式碼:
這裡是設定讀取pdf檔案的路徑和輸出檔案的路徑,並對實體DataBean賦值
String ttfUrl = dirPath.toString() + "/FZSYJW.TTF"; BaseFont baseFont = BaseFont.createFont(ttfUrl, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); DataBean date = new DataBean(); date.setName("翟昆"); date.setAddress("濟南"); date.setPhone("15098975730"); date.setYoubian("255000"); date.setGx("是"); getPdfFile(fileurl,outUrl,date,baseFont);
這裡是主要實現
根據實體物件的名稱進行賦值/** * 根據一個databean,處理一個pdf檔案, * @param templatefile //模板檔案路徑 * @param destfile //目標檔案路徑 * @param databean //資料介面的實現 */ public void getPdfFile(String templatefile,String destfile,DataBean databean,BaseFont baseFont)throws IOException, DocumentException{ try { String TemplatePDF = templatefile; PdfReader reader = new PdfReader(TemplatePDF); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream( destfile)); AcroFields form = stamper.getAcroFields(); DataBean db = databean; List<String> fieldnames = this.getFieldName(db); for (int i = 0; i < fieldnames.size(); i++) { String tmpname = fieldnames.get(i); String value = this.getFieldValue(tmpname, db); form.setFieldProperty(tmpname, "textfont", baseFont, null); form.setField(tmpname, value); } stamper.setFormFlattening(true); stamper.close(); reader.close(); } catch (Exception e) { } }
/**
* 根據資料bean得到pdf中要寫入的textfield的名字
* @param db
*/
private List<String> getFieldName(DataBean db){
List<String> fieldnames = new ArrayList<String>();
Field[] fields = db.getClass().getDeclaredFields();
for(int i=0;i<fields.length;i++) {
String tmpname = fields[i].getName();
fieldnames.add(tmpname);
}
return fieldnames;
}
private String getFieldValue(String fieldname,DataBean db)
{
String value="";
Method[] methods = db.getClass().getDeclaredMethods();
for(int i=0;i<methods.length;i++) {
String methodname = methods[i].getName();
if (methodname.substring(0,3).toUpperCase().equals("GET") && methodname.substring(3).toUpperCase().equals(fieldname.toUpperCase())) {
Method method = methods[i];
try {
value = (String)method.invoke(db,new Object[] {});
} catch (Exception e) {
e.printStackTrace();
}
}
}
return value;
}
以上內容就是讀取pdf模板並修改或者新增文字域中的內容的實現,在剛開始做的時候一直編輯不進值,後來找到原因,是沒有設定字型
form.setFieldProperty(tmpname, "textfont", baseFont, null);
設定了中文字型後,內容就出來了相關推薦
android下用itext修改pdf模板檔案
最近公司專案要在android端生成表單檔案並且列印,這段時間研究了一下,列印結合第三方的Printshare來實現,在使用過程中發現android生成的word文件很不穩定,經常出現不全的情況,所以就用pdf吧,於是就研究了一下itext生成pdf,果然好用,很快就能生
windows下用Python把pdf檔案轉化為圖片(png格式)
最近工作中需要把pdf檔案轉化為圖片,想用python來實現,於是在網上找啊找啊找啊找,找了半天,倒是找到一些程式碼。 1、第一個找到的程式碼,我試了一下好像是反了,只能實現把圖片轉為pdf,而不能
Windows下用指令碼批量重新命名檔案
1. 我的效果: 2. reference reference:https://blog.csdn.net/txz317/article/details/52326041 在Windows下可以用指令碼批量重新命名檔案,且可以將檔名按指定的字串格式命名,並按序號遞
Linux Shell環境下用jq命令處理json檔案
安裝 CentOS下可以直接通過yum安裝: yum install jq -y 使用方法 假設有一個名為test.json的檔案,內容如下: { "Summary": { "Version": "1.0", "Comment
Linux下查詢及修改PHP配置檔案ini的路徑[轉載]
##原本地址:http://www.findme.wang/blog/detail/id/278.html 一、查詢PHP配置檔案 說到查詢,當然首先想到的是find命令。執行如下命令,即可查詢到php.ini檔案 find / -name php.ini 可是,找到三個
修改Xcode模板檔案
步驟如下: 1、進入Xcode目錄,找到模板資料夾: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templat
Java iText使用PDF模板生成PDF文件
我們系統需要生成一個可以列印的PDF文件,老闆給了我一個Word文件,按照這個Word文件的格式生成PDF文件。 第一步:下載AdobeAcrobat DC,必須使用這個來製作from域。 第二步:使用AdobeAcrobat DC將Word導成PDF文件。 第三步:由於還要加水
Linux和android下測試鍵盤和觸控式螢幕 && .kl檔案中的WAKE和WAKE_DROPPED
在Linux或者Android-x86系統下,會用到測試鍵盤、滑鼠、觸控式螢幕等各種輸入裝置的功能,那麼下面的這段程式碼是個好的選擇。首先編寫了個Linux輸入裝置的測試小程式來檢測問題所在,總算也小有成就。具體輸入裝置的路徑,大家可以用cat /proc/b
windows下用命令列執行class檔案提示“找不到或者無法載入主類”
我的jdk是jdk1.8.0_121這個版本的,配置好環境變數之後,使用javac進行沒問題,但是java 檔名的時候就提示找不到或者無法載入主類 百度搜了好久,很多人都是告訴說需要配置好classpath環境變數,但是之前看到的教程上說的是6.0以上的版本不需要配置cla
iText 根據PDF模板 替換生成新的PDF問題
public static void test2() throws Exception { /*開啟已經定義好欄位以後的pdf模板*/ PdfReader reader = new PdfReader("c://chapter5InvestTemplate.pdf");
eclipse下用Ant編譯大量java檔案時出Java heap space異常解決方法
問題:Try to increase heap size. Can be done by defining ANT_OPTS=-Xmx640m 問題截圖 解決辦法: 當使用Ant編譯大量的Java原始檔時,會出現java.lang.OutOfMemoryEr
java 通過itext操作pdf模板文字域填寫內容
1.pdf模板我這邊用的是福昕高階PDF編輯器(臨時使用14天)直接生成,通過工具的編輯表單新增文字域 2.pdf模板生成後,接著就是程式碼部分了: (1)新增jar <d
在後臺修改前臺模板檔案
<textarea cols= '80' rows='20'>${data['content']}</textarea> <button onclick='change()' >修改</button>
vs2008下用MFC讀寫excel檔案
CApplication app1; CWorkbooks books; CWorkbook book; CWorksheets sheets; CWorksheet sheet; CRange range; CRange iCell; LPDISPATCH lpDisp; COleVariant vResu
【java】 iText使用PDF模板生成輸出PDF 這個比較清晰
本文所要用到的工具或jar主要有: Adobe Acrobat 這個主要用來製作PDF模板、eclipse、 itext.jar、 解決中文的輸出問題,需要多下載一個名為iTextAsian.jar的JAR包。這個包裡面定義了與中文輸出相關的一些檔案。 pdf模
IText更改pdf模板資料並匯出
1.匯入maven相關依賴<dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <ver
window下用命令符建立新檔案,類似於其他系統touch 的用法
開啟命令視窗, 輸入如下,就會建立index.html檔案同時寫入你好,以此類推,可以建立js,txt,php等各中檔案,>符號前為寫入的內容,不能為空 echo 你好>index.html ps:window想在那個目錄開啟cmd視窗(命令視窗), 按住s
在Linux下進入目錄,目錄下建立、修改、刪除檔案所需許可權
首先,我們用root許可權建立一個目錄名為dir, 此時檔案擁有者對改目錄具有讀、寫和執行許可權,所屬組和other對改目錄具有讀和執行許可權。現在去除dir的所以許可權, 此時dir目錄的
Ubuntu下用命令列開啟pdf doc等檔案
對Linux命令不熟悉的可以參考 小白學習Linux命令 用了幾天Ubuntu,感覺linux的終端使用起來非常的方便。但是怎麼在linux下用命令的方式開啟pdf檔案呢?開啟pdf的命令: evince [filename] & 如果不在當前資料夾則需要使用cd命令或者把路
Android下修改hosts檔案
由於某些原因,可能需要指定域名對應的IP地址。Android是基於Linux的系統,與Linux類似,通過hosts檔案來設定。 在Android下,/etc是link到/system/etc的,我們需要修改/system/etc/hosts來實現。但是這個檔案是隻讀,不能通