在java中使用iText拆分PDF文件
使用iText来拆分pdf文件相比PDFBOX要复杂一点。以下示例实现了拆分PDF文件为单页文件,并保存为“文件名-n.pdf”的文件:
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfReader;
/**
* PDF文档的工具
*
* @author Howard
*
*/
public class PDFTool {
/**
* 拆分pdf,返回页数
*
* @throws IOException
* @throws DocumentException
* @throws FileFormatException
* @throws FileNotFoundException
*
*/
public int split(String filePath) throws IOException, DocumentException {
PdfReader reader = new PdfReader(filePath);
int pageCnt = reader.getNumberOfPages();
for (int i = 0; i < pageCnt; i++) {
Document document = new Document(reader.getPageSizeWithRotation(i+1));
PdfCopy copy = new PdfCopy(document, new FileOutputStream(filePath
.substring(0, filePath.length() - 4)
+ "-" + (i + 1) + ".pdf"));
document.open();
copy.addPage(copy.getImportedPage(reader, i+1));
document.close();
}
return pageCnt;
}
}
使用的iText处理pdf相比PDFBOX的好处是,目前有些pdf在使用PDFBOX读取时就会报错,但在iText中却不会,具体原因还有待分析。
因为这个错误也尝试过用“PDFClown”,同样也会报错。
相关文档:
1.使用HttpClient
用到的jar文件:commons-httpclient-3.1.jar
方法:
预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成。
String soapRequestData = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
"<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instanc ......
0 引言
从控制台中读取数据是一个比较常用的功能,在 JDK 5.0 以前的版本中的实现是比较复杂的,需要手工处理系统的输入流。有意思的是,从 JDK 5.0 版本开始,能从控制台中输入数据的方法每增加一个版本号,就有一种新增的方法,这也增加了选择的种类,可以依据不同的要求来进行选择。下面来看一下 ......
看火龙果写了一个验证日期的Java正则表达式,就给转了过来
由于使用到了反向预搜索模式“(?<=)”和“(?<!)”,所以这个只能在 Java 中使用,不能在 JavaScript 中使用,JavaScript 不支持反向预搜索。支持 yyyy-MM-dd、yyy-MM-dd、yy-MM-dd 和 y-MM-dd,即年份为 1~4 ......
对List的遍历有三种方式
List<A> list = new ArrayList<A>();
list.add(new A());
list.add(new & ......
安装完Ubuntu8.1之后,如果想要开发或运行Java程序,就需要安装JDK或JRE。下面就介绍一种最为简便的在Ubuntu中安装JDK
的方法。
众所周知,Sun公司对于Linux下的的JDK安装控制是相当严格:(1)预编译成二进制的JDK包是需要取得Sun公司授权的;(2)Sun公
司有自己的Unix操作系统。或许是因为这两点原因,目前在Linux或U ......