javapdf模板
Ⅰ java實現讀取pdf模板,替換內容後生成新pdf文檔
為什麼要採用替換的方法呢?
讀漏州取後經過處理,重新新建一個PDF,把內容寫到新的PDF裡面就行了,用這些jar可以實現了
我的意思是,如扒你有PDF模板,然後用java讀取模板的內容,然後按你的要求對讀取的內容進返橡蔽行處理(這里的處理是根據你自己的需求而定,如:從資料庫讀取數據,然後填充到從模板讀取到的表格中),再把處理完後的內容重新寫到一個新建的PDF中
Ⅱ 怎麼用java動態生成pdf文檔
Flying-Saucer + iText + Velocity
1. 第一步
將jar包放到你的工程里,需要的jar如下:
bcprov-jdk15-140.jar
core-renderer.jar
iText-2.0.8.jar
iTextAsian.jar
velocity-1.4.jar
Jar包下載地址:http://code.google.com/p/flying-saucer/downloads/list
2. 第二步
設計模版,進行排版調整樣式,css樣式也可以導入@import 等,通過Velocity模版引擎動態替換 頁面內容,以下是模版內容:
<?xml version="1.0" encoding="UTF-8" ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PDF模版</title>
<style type="text/css">
<!--
body {
font: 100% Verdana, Arial, Helvetica, sans-serif;
margin: 0;
padding: 0;
text-align: center;
color: #000000;
}
.oneColLiqCtrHdr #container {
width: 100%;
margin: 0 auto;
text-align: left;
}
div.header-left {display: none}
div.header-right {display: none}
div.footer-left {display: none}
div.footer-right {display: none}
Ⅲ Java如何使用Java創建一個空的PDF文檔
package com.yii;import java.io.IOException;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.PDPage;// 需要下 apache pdfbox包和apache.commons.loggin烏,下載地址:http://pdfbox.apache.org/download.cgi 和 http://commons.apache.org/proper/commons-logging/download_logging.cgi// 在本示例中下肆頃載使用的是:戚雹世pdfbox-2.0.7.jar // 將下載的pdfbox-2.0.7.jar添加到Eclipse項目依懶庫中。// 右鍵高肢點擊:"java_apache_pdf_box"->"Bulid Path"->"Add External Artchives...",然後選篤下載的"pdfbox-2.0.7.jar"和"commons-logging-1.2.jar"文件 public class CreatingEmptyPdf {
public static void main(String args[]) throws IOException {
// Creating PDF document object
PDDocument document = new PDDocument();
// Add an empty page to it
document.addPage(new PDPage());
// Saving the document
document.save("F:/worksp/javaexamples/java_apache_pdf_box/BlankPdf.pdf");
System.out.println("PDF created");
// Closing the document
document.close();
}}
Ⅳ java如何讓pdf模板中的數據網格的行數根據傳入數據進行變化
import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import javax.swing.*;public class DemoJText extends JFrame {public DemoJText() {ArrayList jtfs = new ArrayList();//用於保存文本框Container c = this.getContentPane();JPanel jp = new JPanel();int row = 10;//行手雀哪數int col = 9;//列數jp.setLayout(new GridLayout(row,col, 5, 5));for (int i = 0; i < 90; i++) {JTextField jtf= new JTextField("");jtfs.add(jtf);jp.add(jtf);}c.add(jp);JPanel jp1 = new JPanel();final JButton jb = new JButton("清除");final JButton jbOut = new JButton("控制台輸出");jp1.add(jb);jp1.add(jbOut);c.add(jp1, BorderLayout.SOUTH);jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {for (int i = 0; i < jtfs.size(); i++) {jtfs.get(i).setText(""歲段);}}});jbOut.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {for (int i = 0; i < jtfs.size(); i++) {String temp = jtfs.get(i).getText();//可以不用判斷全部輸出.我這里就先判斷下,如果不為空才輸出if(!temp.equals("")){//如果不為空就輸出int r = i/col+1;//行int c = i%col+1;//畢碼列System.out.println("第"+r+"行"+"第"+c+"列"+temp);}}}});this.setBounds(160, 250, 300, 350);this.setTitle("測試");this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.setVisible(true);}public static void main(String[] args) {new DemoJText();}}輸出
Ⅳ java如何多次解析填充pdf模板
java如何多次解析填充pdf模板操作如下:
1、先去建一個Word文件,設置好想要填充的地方,留好位置,設輪橘置好下劃線。
2、將Word另唯察存為pdf。
3、打開電腦中的AdobeAcrobatproDC(這個應該win10都有,搜索一下就出來了),點擊文件→創建→創建指桐茄表單。
4、然後導入剛剛生成的pdf會出來頁面雙擊這個陰影部分,將名稱改成你要設置的名稱,後面要根據這個名稱來給他賦值全部設置好以後就可以另存為。
Ⅵ java 解析pdf表格
最近在幫公司做工具,需要讀取PDF中表格的數據。網上查了,大部分PDFBox讀取的代碼都大致相同,一行一行從頭讀到尾。嘗試讀取PDF表格的人可能會遇到表格有空數據時,列與列就會對不齊,這樣就不能很好地進行數據的處理了。網上看到一個例子,用iText坐標精確讀取的例子,參考以後出現了亞洲語種字體不支持,添加了語言包iTextAsian.jar導入字體後,結果發現列印的都是空格無法處理。後找到了PDFBox坐標讀取的方法,相當給力。在此過程中了解到有很多人遇到了我這樣的問題。所以寫下來望對現在還未解決問題還有以後遇到此問題的人提供幫助。
上代碼:
package com.pdfbox.util.test;
import org.apache.pdfbox.exceptions.InvalidPasswordException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.util.PDFTextStripperByArea;
import java.awt.Rectangle;
import java.util.List;
public class ExtractTextByArea
{