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
{