useful materials
http://svn.assembla.com/svn/jarbilling/billing/trunk/billing/vendor/pdfmanipulator/Fdf.java
http://svn.assembla.com/svn/jarbilling/billing/trunk/billing/vendor/pdfmanipulator/test/BatchFormFill.java
http://www.coderanch.com/t/63861/open-source/iText-Silent-Print
http://threebit.net/mail-archive/itext-questions/msg02068.html
part4.chapter13.PrintPreferencesExample:
http://itextpdf.com/examples/iia.php?id=230
http://comments.gmane.org/gmane.comp.java.lib.itext.general/28053
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Map.Entry;
import java.util.Set;
import com.itextpdf.text.Document;
import com.itextpdf.text.FontFactory;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.AcroFields.Item;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
public class PdfTest2 {
public static void main(String[] args) throws Exception {
// Create output PDF
Document document = new Document(PageSize.A4);
document.open();
// Load existing PDF
PdfReader reader = new PdfReader(new FileInputStream(
"Sample application form_ENG edit.pdf"));
// PdfImportedPage page = writer.getImportedPage(reader, 1);
// we'll create the file in memory
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// Now we create the PDF
PdfStamper stamper = new PdfStamper(reader, baos);
// We alter the fields of the existing PDF
AcroFields fields = stamper.getAcroFields();
BaseFont baseFont = FontFactory.getFont(FontFactory.TIMES_ITALIC,BaseFont.IDENTITY_H, new Float(12)).getBaseFont();
Set<Entry<String, Item>> entrySet = fields.getFields().entrySet();
for (Entry<String, Item> entry : entrySet) {
String key = entry.getKey();
System.out.println(key);
fields.setField(key, key);
// if (fields.getFieldType(key) == AcroFields.FIELD_TYPE_TEXT) {
fields.setFieldProperty(key, "textfont", baseFont, null);
fields.setFieldProperty(key, "textsize", new Float(16), null);
// }
}
fields.setField("tradeID", "007");
// close the stamper
fields.setField("acNo", "9527");
stamper.close();
document.close();
// let's write the file in memory to a file anyway
FileOutputStream fos = new FileOutputStream("HelloWorld-Gavin.pdf");
fos.write(baos.toByteArray());
fos.close();
}
}
分享到:
相关推荐
**ITextPDF库在Java中的应用:创建模板化的PDF文档** `iTextPDF`是一个流行的开源Java库,用于创建、编辑和操作PDF文档。在这个场景中,我们将探讨如何使用iTextPDF来根据模板生成包含表单、表格、条形码和二维码的...
5. **PdfTemplate** 和 **ColumnText**:前者用于创建自定义的可重用元素,后者用于在PDF页面上排列多列文本。 6. **Image** 类:用于插入图像到PDF文档中,支持多种格式。 7. **AcroFields** 和 **...
import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.*; public class PdfGenerator { public static void main(String[] args) throws Exception { // 加载模板 PdfReader reader = new Pdf...
1. iText相关的jar:这可能包括`itextpdf.jar`,这是iText的主要库,包含了创建和操作PDF的基本功能。 2. Freemarker的jar:例如`freemarker.jar`,这是Freemarker模板引擎的核心库。 3. XMLWorker的jar:例如`...
页眉和页脚可以通过自定义PdfPHeaderFooter实现,而水印则可以使用PdfTemplate和ColumnText在每一页上绘制。 ```java public void addHeaderAndFooter(PdfDocument pdfDoc) { PdfPage page = pdfDoc.getPage(1); ...
<artifactId>itextpdf <version>5.x.x</version> <!-- 替换为实际版本号 --> ``` 确保使用的版本与项目兼容,并已正确导入。 4. **操作PDF** - **读取模板**:使用`PdfReader`类读取PDF模板文件,创建`...
官方提供了详细的下载和安装指南([访问链接](https://developers.itextpdf.com/itext7/download-and-install-information/))。 - 如果是Java项目,还可以通过Maven依赖进行集成。 #### 四、关键步骤解析 ##### ...
在这个场景中,我们将讨论如何结合Velocity和Itext来实现PDF的导出。 首先,Velocity的工作原理是通过模板语言,允许开发者将静态内容与动态数据结合,生成最终的输出。它的语法简洁,易于理解,特别适合生成基于...
PdfReader reader = new PdfReader("template.pdf"); AcroFields fields = reader.getAcroFields(); fields.setField("fieldName", "填入的值"); ``` 数字签名是确保PDF文档完整性和未被篡改的关键特性。iText提供...
`PdfTemplate`和`Canvas`类则提供了低级别的绘图功能,可以绘制自定义图形和线条。 对于更高级的应用,例如表单处理,iText的`PdfFormXObject`和`AcroFields`类可以帮助你创建和填写交互式PDF表单。你可以获取和...
<groupId>com.itextpdf</groupId> <artifactId>itext7-core <version>7.x.x <groupId>org.freemarker <artifactId>freemarker <version>2.x.x ``` 请替换`x.x.x`为最新版本号。 步骤二:创建...
1. 加载PDF模板文件,获取AcroFields对象:`PdfReader reader = new PdfReader("template.pdf"); AcroFields fields = reader.getAcroFields();` 2. 查找表单字段:`String fieldName = "你的表单字段名";` 3. 填充...
《使用iTextPDF5创建合同模板的实战指南》 在IT行业中,生成PDF文档是常见的需求,尤其是在处理法律文件、报告或合同等正式文档时。iText是一个强大的Java库,专门用于生成和处理PDF文档。本篇文章将深入探讨如何...
该项目实现了使用IText将html文件转为pdf文件功能。 步骤: (1):将字体文件按代码中写的路径放到磁盘对应位置。 (2):将template.html文件按代码中路径放到磁盘对应位置。 (3):直接运行HtmlToPdfUtilForCss...
`template`文件夹存放了PDF模板,可能是一个预设格式的PDF文件,包含固定布局和样式,iText7将据此填充数据。 总的来说,这个示例展示了如何利用C#和iText7库,结合预先定义的模板,生成具有专业格式的电子发票PDF...
<artifactId>itextpdf <version>5.x.x</version> <!-- 使用合适的版本 --> <groupId>org.apache.velocity <artifactId>velocity <version>1.x.x</version> <!-- 使用合适的版本 --> ``` 然后,创建一个...
3. 加载PDF模板:使用`com.itextpdf.text.pdf.PdfReader`读取保存的PDF模板,并通过`com.itextpdf.text.pdf.PdfStamper`创建一个可写入的PDF对象,这将用于填充模板。 4. 填充表单字段:利用`PdfStamper....
PdfTemplate template = PdfTemplate.createTemplate(pdfDocument, 500, 500); template.beginText(); template.setFontAndSize(BaseFont.createFont(), 50); template.setTextMatrix(200, 200); template....
在与 Velocity 结合使用时,iText 可以接受由 Velocity 渲染的模板,将动态数据填充到预先设计好的PDF模板中,生成具有个性化内容的PDF文件。 **Velocity** 是Apache软件基金会的一个项目,是一个Java模板引擎。它...
# 本项目主要介绍 1. itextpdf(CreatePdf) ...对于不会HTML的制作,熟悉**itextpdf**的,完全可以使用PdfTemplate,该方法其实就是将itextpdf中PDF的元素逆解析 5. xdocreport 复杂word动态生成上功能很强大