import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import org.eclipse.swt.widgets.Text;
import com.lowagie.text.Anchor;
import com.lowagie.text.Chapter;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.GreekList;
import com.lowagie.text.List;
import com.lowagie.text.ListItem;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.RomanList;
import com.lowagie.text.Section;
import com.lowagie.text.ZapfDingbatsList;
import com.lowagie.text.ZapfDingbatsNumberList;
import com.lowagie.text.pdf.PdfWriter;
public class BasePdf {
public Document document=new Document();
public static void main(String[] args) throws DocumentException {
BasePdf base=new BasePdf();
base.createMixed();
base.testOtherStyleList();
base.testBookMarks();
base.document.close();
}
public void createMixed()
{
/*A Chunk is the smallest significant part of text that can be added to a document.
It’s the atomic building block of most of the other high-level text objects. A Chunk
contains a String of which all the characters have the same font, font size, font
style, font color, rendition, and so forth.*/
/*
* Chunk有几个不同的构造方法new Chunk();
*
*
*
*/
try {
PdfWriter writer=PdfWriter.getInstance(document, new FileOutputStream("c:\\demo.pdf"));
document.open();
Font font = new Font(Font.COURIER, 10, Font.BOLD);
font.setColor(new Color(0xFF, 0xFF, 0xFF));
Chunk fox = new Chunk("quick brown fox", font);
fox.setBackground(new Color(0xa5, 0x2a, 0x2a));
Chunk jumps = new Chunk(" jumps over ", new Font());
Chunk dog = new Chunk("the lazy dog",new Font(Font.TIMES_ROMAN, 14, Font.ITALIC));
/*A phrase, on the other hand, is defined as “a string of
words.” It isn’t solid; it’s a composed object. I thought it was a good word to use to
refer to a concatenation of chunks. Translated to iText and Java, a Phrase is an
ArrayList of Chunk objects.
*
*/
Phrase phrase=new Phrase();
phrase.add(fox);
phrase.add(jumps);
phrase.add(dog);
//constructor1
Phrase phrase1=new Phrase("constructor11111111111111111111111111111");
//constructor2
Phrase phrase2=new Phrase(new Chunk("constructor22222222222222222222222",new Font(Font.COURIER,12,Font.BOLD)));
//constructor3
Phrase phrase3=new Phrase("constructor33333333333333333",new Font(Font.COURIER,12));
/*
* The Paragraph class is derived from Phrase; this means you can create a Paragraph
* and specify the leading, but you also can do much more.
*/
Paragraph p=new Paragraph();
p.add(phrase1);
p.add(phrase2);
p.add(phrase3);
p.setAlignment(Element.ALIGN_LEFT);
document.add(p);
p.setAlignment(Element.ALIGN_CENTER);
document.add(p);
document.add(getAnchor());
//增加矛点
addInternalAnchor();
//List
testListItem();
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
}
}
//test external anchor
public Anchor getAnchor()
{
Anchor anchor=new Anchor("this is a link,you can test!");
//set external link
anchor.setReference("www.sina.com");
return anchor;
}
//test internal anchor
public void addInternalAnchor() throws DocumentException
{
Paragraph p=new Paragraph("internal");
//添加一个茅点
Anchor anchor=new Anchor("destionation");
//指定锚点
anchor.setReference("#destionation");
p.add(anchor);
p.add("pass by !!!!!!!!!");
document.add(p);
//换页
document.newPage();
//
Anchor anchor1=new Anchor("Link !");
//设定锚点到达的位置
anchor1.setName("destionation");
document.add(anchor1);
}
/*
* ListItem is a subclass of Paragraph. A ListItem has the same functionality as a
Paragraph (such as leading and indentation), except for two differences:
■ You can’t add a ListItem to a document directly. You have to add ListItem
objects to a List.
■ The classes List and ListItem have a member variable that represents the
list symbol.
*/
public void testListItem() throws DocumentException
{
List list1=new List(List.ORDERED,20);
list1.add(new ListItem("the lazy dog"));
document.add(list1);
List list2 = new List(List.UNORDERED, 10);
list2.add("the lazy cat");
document.add(list2);
List list3 = new List(List.ORDERED, List.ALPHABETICAL, 20);
list3.add(new ListItem("the fence"));
document.add(list3);
List list4 = new List(List.UNORDERED, 30);
list4.setListSymbol("----->");
list4.setIndentationLeft(10);
list4.add("the lazy dog");
document.add(list4);
List list5 = new List(List.ORDERED, 20);
list5.setFirst(11);
list5.add(new ListItem("the lazy cat"));
document.add(list5);
//nested list
List list = new List(List.UNORDERED, 10);
list.add(list1);
list.add(list3);
list.add(list5);
document.add(list);
}
public void testOtherStyleList() throws DocumentException
{
/*
* RomanList and GreekList work well if your list has no more than 26 or 24 items.
*/
RomanList romanlist = new RomanList(20);
romanlist.setRomanLower(false);
romanlist.add(new ListItem("the lazy dog"));
document.add(romanlist);
GreekList greeklist = new GreekList(20);
greeklist.setGreekLower(true);
greeklist.add(new ListItem("the lazy cat"));
document.add(greeklist);
ZapfDingbatsList zapfdingbatslist = new ZapfDingbatsList(42, 15);
zapfdingbatslist.add(new ListItem("the lazy dog"));
zapfdingbatslist.add(new ListItem("the lazy cat"));
document.add(zapfdingbatslist);
//ZapfDingbatsNumberList has no more than 10 words
ZapfDingbatsNumberList zapfdingbatsnumberlist
= new ZapfDingbatsNumberList(0, 15);
zapfdingbatsnumberlist.add(new ListItem("the lazy cat"));
document.add(zapfdingbatsnumberlist);
System.out.println("success");
}
public void testBookMarks() throws DocumentException
{
//在左侧增加一个章节
Chapter chapter1=new Chapter(new Paragraph(""), 1);
chapter1.add(new Paragraph("chapter add: "));
Section section=chapter1.addSection("quick",0);
Section section1=chapter1.addSection("2222222",1);
section.add(new Paragraph("section adddd: "));
document.add(chapter1);
//section nested section
section1.add(section);
Chapter chapter2=new Chapter("",0);
chapter2.addSection("").add(section);
chapter1.setBookmarkTitle("bookMark title");
chapter1.setBookmarkOpen(false);
document.add(chapter2);
}
}
分享到:
相关推荐
这篇笔记主要探讨了如何使用iText创建和操作表格。在给定的代码示例中,我们看到一个简单的Java程序,该程序展示了如何使用iText库创建一个包含多个单元格的PDF表格。 首先,程序创建了一个`Document`对象,这是...
"iText中文教程.doc"和"学习itext笔记.docx"是两份中文学习资料,它们可能是对IText的详细解释和实践心得。这些文档可能会提供更贴近中文开发者习惯的解释,帮助你更好地理解和运用IText。 在学习过程中,建议按照...
iText中文包 博文链接:https://moon-vv.iteye.com/blog/224725
其中还附有学习笔记一份,上述生成的文档包括对字体的选择(本地或者iTextAsian里面的),有对图片的添加,有对样式的调整,有对table的添加,其中生成的文档格式比较正规,是现实用户使用模板。如有需要欢迎大家...
案例中的两个`.txt`文件可能是博主在测试过程中记录的笔记或输出结果,它们可以提供更具体的信息,帮助理解实际的实现细节。 总结来说,利用iText库,开发者可以在Java中创建Word文档,这在需要自动化报告生成、...
`iText5`是一个强大的Java库,专门用于创建和编辑PDF文档。本篇将深入探讨如何利用`iText5`生成PDF报表,并结合FastDFS文件系统进行文件存储,以及将相关信息存入数据库。 首先,`iText5`是`iText`系列的一个版本,...
itext in action (java中 pdf 格式输出笔记)
总之,"Java学习笔记"涵盖了从基础到进阶的众多Java主题,结合JFreeChart和iText这两个实用库,不仅提供了对Java编程语言的深入理解,还展示了其在数据可视化和文档生成方面的强大能力。对于任何希望提升Java技能的...
### Apache BIRT 图表学习笔记知识点详解 #### 一、Apache BIRT 概述 Apache BIRT(Business Intelligence and Reporting Tools)是一款开源的商务智能工具,由Eclipse基金会发起并维护。它为开发者提供了创建数据...
2. **itext-2.0.6.jar** - 这是一个用于创建PDF文档的Java库,可能在笔记中涉及了DWR3如何用来实现实时生成或更新PDF文件的功能。 3. **dwr.jar** - DWR的核心库,包含了所有必需的类和资源,用于在浏览器和服务器...
4. **iText 7 Signature**: itext7-sign-7.0.1-sources.jar.asc、itext7-sign-7.0.1.pom.asc 和 itext7-sign-7.0.1-javadoc.jar.asc 包含了签名和安全功能。这些库可以用来签署PDF文件,确保其完整性,并提供数字...
笔记记录应用程序,允许用户添加笔记,生成下载PDF并通过电子邮件发送笔记。 应用程序 : : 使用的技术和库 1,Spring MVC 2,Hibernate + MySql 3,Hibernate验证器 4,JavaMail API 5.iTextPDF库 6.html,css...
### Jasperreport与iReport整合开发Web报表学习笔记 #### 一、环境配置 为了能够顺利地使用Jasperreport和iReport进行报表设计与开发,首先需要确保开发环境配置正确。 1. **Java JDK环境**: 确保已安装最新版的...
对于PDF和Excel格式的输出,Spring MVC可以通过Apache POI库来处理Excel,使用Flying Saucer或iText库来生成PDF。这些库能够将HTML内容转换为所需的格式,方便导出和下载。 总的来说,Spring MVC是Spring框架的重要...
项目可能使用Apache POI库读写Excel,iText或PDFBox生成Pdf文件。学习这些技能对于生成报告、导出数据等场景非常实用。 5. **统计报表** “统计报表注意事项.txt”可能涵盖了报表的设计和生成过程。在CRMSys中,...
### JfreeChart 学习笔记:深度解析与应用 #### JFreeChart概览与核心功能 JFreeChart作为一款开源的JAVA项目,专为图表开发而设计,支持丰富的图表类型,包括饼图、柱状图(含普通及堆栈柱状图)、线图、散点图、...
**JFreeChart学习笔记** JFreeChart是一款强大的Java图表库,它允许开发者在应用程序、Swing组件、Applet或Web应用中创建各种复杂的图表。这个开源项目提供了多种图表类型,如饼图、柱状图、线图、散点图、甘特图等...
此外,CleanerNotes可能还使用了PDF库,如iText或Apache PDFBox,这些库提供了创建、编辑和操作PDF文档的能力。通过这些库,开发者可以精确控制PDF的布局,将照片和文本合并到一个统一的文档中。在处理过程中,可能...