输出 pdf
jar 包 :core-renderer.jar iText-2.0.8.jar iTextAsian.jar
方式1:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List; import org.xhtmlrenderer.pdf.ITextFontResolver;
import org.xhtmlrenderer.pdf.ITextRenderer; import com.lowagie.text.pdf.BaseFont; public class pdf {
public static void main(String[] args) throws FileNotFoundException {
List<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
list.add("test");
}
String outputFile = "e:/firstdoc.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
StringBuffer html = new StringBuffer();
//组装成符合W3C标准的html文件,否则不能正确解析
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">")
.append("<head>")
.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
.append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: Arial Unicode MS;}</style>")
.append("<style type=\"text/css\">img {width: 500px;}</style>")
.append("<style type=\"text/css\">table {font-size:13px;}</style>")
.append("</head>")
.append("<body>");
html.append("<center>");
html.append("<div>报表测试</div>");
for(int i=0;i<list.size();i++) {
html.append("<div>" + list.get(i) + "</div>");
}
html.append("</center>");
html.append("</body></html>");
try {
renderer.setDocumentFromString(html.toString());
// ITextFontResolver fontResolver = renderer.getFontResolver();
// fontResolver.addFont("e:/fonts/ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
// 解决图片的相对路径问题,图片路径必须以file开头
// renderer.getSharedContext().setBaseURL("file:/" + rootpath);
renderer.layout();
renderer.createPDF(os);
os.close();
System.out.println("ok");
} catch (Exception e) {
e.printStackTrace();
}
}
}
方式2
import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List; import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter; public class pdf2 {
public static void main(String[] args) throws FileNotFoundException, Exception {
List<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
list.add("test");
}
String outputFile = "e:/firstdoc.pdf";
OutputStream ops = new FileOutputStream(outputFile);
Document document = new Document();
PdfWriter.getInstance(document, ops);
document.open();
// set chinese font
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font f2 = new Font(bfChinese, 2, Font.NORMAL);
Font f6 = new Font(bfChinese, 6, Font.NORMAL);
Font f8 = new Font(bfChinese, 8, Font.NORMAL);
Font f10 = new Font(bfChinese, 10, Font.NORMAL);
Font f12 = new Font(bfChinese, 12, Font.BOLD);
// int rowNumer = 0;
// PdfPTable table = new PdfPTable(2);
// table.setWidthPercentage(80);
// table.setHorizontalAlignment(PdfPTable.ALIGN_CENTER);
// PdfPCell titleCell = new PdfPCell();
// titleCell.setBackgroundColor(new Color(213, 141, 69));
// titleCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER);
// titleCell.setPhrase(new Paragraph("人口指标", f8));
// table.addCell(titleCell);
// titleCell.setPhrase(new Paragraph("人口指标2", f8));
// table.addCell(titleCell);
// document.add(table);
PdfPTable table = new PdfPTable(3);
PdfPCell cell;
cell = new PdfPCell(new Phrase("Cell with colspan 3"));
cell.setColspan(3);
table.addCell(cell);
cell = new PdfPCell(new Phrase("Cell with rowspan 2"));
cell.setColspan(2);
table.addCell(cell);
table.addCell("row 1; cell 1");
table.addCell("row 1; cell 2");
table.addCell("row 2; cell 1");
table.addCell("row 2; cell 2"); document.add(table);
document.close();
ops.close();
System.out.println("ok");
}
}
输出 pdf的更多相关文章
- Servlet输出PDF文档方法
概述 Java Servlet 编程可以很方便地将 HTML 文件发送到客户端的 Web 浏览器.然而许多站点还允许访问非 HTML 格式的文档,包括 Adobe PDF.Microsoft Word ...
- django “如何”系列9:三合一:利用遗留的数据库、输出csv和输出pdf
如何集成遗留的数据库 django在适合开发新应用的同时,可以可以集成以前遗留的数据库,下面是如何集成一个已经存在的数据库的流程. 给定你的数据库的参数 你需要告诉django你的数据库连接参数以及数 ...
- Rmarkdown:输出pdf设置
输出pdf需要安装Ctex --- title: "first markdown" author: "name" date: "`r format(S ...
- emacs在org-mode时输出pdf时,只输出为链接
这个找到问题了,写错格式了,输出pdf中要内嵌图像,格式要写成[[file:/home/xxx/yyy.jpg]],不能写成file:/home/xxx/yyy.jpg或者[[file:/home/x ...
- itextpdf JAVA 输出PDF文档
使用JAVA生成PDF的时候,还是有些注意事项需要处理的. 第一.中文问题,默认的itext是不支持中文的,想要支持,需要做些处理. 1.直接引用操作系统的中文字体库支持,由于此方案限制性强,又绑定了 ...
- c# 中crystal report输出PDF文件
工程中引入以下crystal report的类库crystaldecisions.crystalreports.enginecrystaldecisions.reportsourcecrystalde ...
- C# 输出pdf文件流在页面上显示
1 不调用itextsharp.dll的操作 /// <summary> /// 生成pdf流 /// </summary> /// ...
- 转:MVC2表单验证失败后,直接返回View,已填写的内容就会清空,可以这样做;MVC2输出文本;MVC2输出PDF文件
ViewData.ModelState.AddModelError("FormValidator", message); foreach (string field in Requ ...
- 【Itext】解决Itext5大并发大数据量下输出PDF发生内存溢出outofmemery异常
尼玛,这个问题干扰了我两个星期!! 关键字 itext5 outofmemery 内存溢出 大数据 高并发 多线程 pdf 导出 报表 itext 并发 在读<<iText in Acti ...
- Jupyter Notebook通过latex输出pdf
主要步骤 1.将ipynb编译成tex ipython nbconvert --to latex Example.ipynb 2. 修改tex,增加中文支持 在\documentclass{artic ...
随机推荐
- .NET下XML文件的读写
一.前言: XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了.本文将指导大家如何运用C#语言完成.Net框架下的X ...
- Java 大数(整数+浮点数) 基本函数
import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; public class Main { pu ...
- 使用证书登陆Linux服务器
CentOS 7 SSH使用证书登录 https://blog.csdn.net/long690276759/article/details/53535464 切记: 0.私钥放在client,公钥放 ...
- linux文本处理常用命令
linux文本处理常用命令 linux文本处理命令:grep.sed.printf.awk 1.grep grep的作用是按行查找字符,输出包含字符的行. #从文件查询 grep 'hello' ...
- ural 1519 fomular 1 既插头DP学习笔记
直接看CDQ在2008年的论文吧. 个人认为她的论文有两个不明确的地方, 这里补充一下: 首先是轮廓的概念. 我们在进行插头DP时, 是从上往下, 从左往右逐个格子进行的, 已经处理的格子与未经处理的 ...
- 通信API、使用Web Workers处理线程
1.跨文档消息传输 要想接受从其他的窗口那里发过来的消息,就必须对窗口对象的message事件进行监视. w ...
- Andriod Atom x86模拟器启动报错
用Inter Atom模式的Android模拟器启动报一下错误: Starting emulator for AVD 'new' emulator: ERROR: x86 emulation curr ...
- [深入浅出iOS库]之数据库 sqlite
一,sqlite 简介 前面写了一篇博文讲如何在 C# 中使用 ADO 访问各种数据库,在移动开发和嵌入式领域也有一个轻量级的开源关系型数据库-sqlite.它的特点是零配置(无需服务器),单磁盘文件 ...
- Oracle Forms Execute_Query Example To Fetch The Records From Database
Execute_Query command is used to fetch all the records for current database data block in Oracle For ...
- Could not open lock file/var/lib/dpkg/lock
apt-get时出现错误提示: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailabl ...