- 浏览: 481257 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
pyl574069214:
1楼的方法可用
iText操作错误:PdfReader not opened with owner password -
pyl574069214:
谢谢
iText操作错误:PdfReader not opened with owner password -
ggyyso:
解决方法:import java.lang.reflect.F ...
iText操作错误:PdfReader not opened with owner password -
思念-悲伤:
谢了!!!
Exception loading sessions from persistent storage -
u012380013:
加上bos.flush(); 是成功的
Java解压缩zip文件
这几天研究了一下对pdf文件的操作,简单点的比如怎样用iText来复制一个pdf文件等,这是对本地的pdf文件进行操作。当然,iText还可以对网络上的pdf文件进行操作,比如下载网络上的pdf文件等。下面的代码就是专门针对http://www.jms20x.com/dzts/default.html上的pdf文件进行下载的。这可以对中文进行操作,而且能很好的保存成原文件的版式。
import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfCopy; import com.lowagie.text.pdf.PdfImportedPage; import com.lowagie.text.pdf.PdfReader; public class downloadFiles { private static final String urlname = "http://www.jms20x.com/dzts/"; private static ArrayList<String> urllist = new ArrayList<String>(); private static ArrayList<String> savelist = new ArrayList<String>(); public static void main(String[] args) { String savepath = ""; String tempurl = ""; for(int i=1; i<=100; i++) { if(i==61 || i==63 || i==65 || i==66 || i==70 || i==71 || i==74 || i==82 || i==87 || i==89 || i==91 || i==93 || i==95 || i==97 ) continue; savepath = "C:\\" + i + "\\"; tempurl = urlname + i + "/"; downloadFiles.getURLS(tempurl, savepath, urllist, savelist); if(urllist.size() > 0) { System.out.println("Creating a new directory : C:\\" + i ); for(int j=0; j<urllist.size(); j++) { System.out.println(j); downloadFiles.getWebFiles(urllist.get(j), savelist.get(j)); } urllist.clear(); savelist.clear(); } } } public static void getURLS(String urlname, String savedir, ArrayList<String> urllist, ArrayList<String> savelist) { try { URL url = new URL(urlname + "/index.html"); HttpURLConnection httpconn =(HttpURLConnection)url.openConnection(); BufferedReader br = new BufferedReader(new InputStreamReader(httpconn.getInputStream())); String str = br.readLine(); String temp = ""; String urlpath = ""; String savepath = ""; while(str != null) { if(str.indexOf("<a href=") > -1) { if(str.indexOf("</a>") > -1) { temp = str.substring(str.indexOf("<a href=")+9, str.indexOf("</a>")); urlpath = urlname + temp.substring(0, temp.indexOf(".pdf")+4); if(urlpath.length() > 60) { str = br.readLine(); continue; } savepath = temp.substring(temp.indexOf(">")+1) + ".pdf"; if(savepath.indexOf(":") > -1) savepath = savepath.replace(':', '_'); if(savepath.indexOf(":") > -1) savepath = savepath.replace(':', '_'); savepath = savedir + savepath; urllist.add(urlpath); savelist.add(savepath); } } str = br.readLine(); } httpconn.disconnect(); } catch (MalformedURLException e) { return; } catch (IOException e) { return; } } public static void getWebFiles(String urlpath, String savepath) { String tempdir = savepath.substring(0, savepath.lastIndexOf("\\")); File dir = new File(tempdir); if(!dir.exists()) dir.mkdir(); File f = new File(savepath); if(f.exists()) return; try { URL url = new URL(urlpath); URLConnection conn = url.openConnection(); HttpURLConnection httpconn =(HttpURLConnection)conn; if(httpconn.getContentLength() > 20000000) { httpconn.disconnect(); return; } f.createNewFile(); InputStream is = httpconn.getInputStream(); PdfReader reader = new PdfReader(is); httpconn.disconnect(); int n = reader.getNumberOfPages(); Document document = new Document(reader.getPageSize(1)); PdfCopy copy = new PdfCopy(document, new FileOutputStream(f)); document.open(); for(int i=1; i<=n; i++) { document.newPage(); PdfImportedPage page = copy.getImportedPage(reader, i); copy.addPage(page); } document.close(); } catch (MalformedURLException e1) { return; } catch (IOException e) { return; } catch(DocumentException e) { return; } catch(Exception e) { if(f.exists()) f.delete(); return; } } }
需要说明的是,这里需要用itext-2.0.2.jar包和bcprov-jdk15-139.jar,不能使用最新的itext-2.1.4.jar版本,否则会出现错误。可以使用附件里面的文件进行下载,解压后直接双击Start.bat就可进行下载了(默认是保存在C盘里)。对JDK为1.5和1.6的,可以分别使用附件里对应版本的文件。
对本地pdf文件的操作差不多。下面的代码是针对本地pdf文件进行操作的一个简单例子,就是对文件进行复制。
import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfCopy; import com.lowagie.text.pdf.PdfImportedPage; import com.lowagie.text.pdf.PdfReader; public class pdfCopy { public static void main(String[] args) { String filepath = "C:\\a.pdf"; String savepath = "C:\\b.pdf"; copyLocalFiles(filepath, savepath); } public static void copyLocalFiles(String filepath, String savepath) { try { PdfReader reader = new PdfReader(filepath); int n = reader.getNumberOfPages(); Document document = new Document(reader.getPageSize(1)); PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath)); document.open(); for(int i=1; i<=n; i++) { document.newPage(); PdfImportedPage page = copy.getImportedPage(reader, i); copy.addPage(page); } document.close(); } catch (IOException e) { e.printStackTrace(); } catch(DocumentException e) { e.printStackTrace(); } } }
上面的代码只是简单的对本地和网络文件进行操作的例子,还算比较简单。
下面是学习iText的几个比较有用的网址。
http://itextdocs.lowagie.com/tutorial/
- getPdfFiles_JDK1.5.rar (2.5 MB)
- 下载次数: 91
- getPdfFiles_JDK1.6.rar (2.5 MB)
- 下载次数: 36
发表评论
-
java中final关键字的使用
2013-05-31 10:04 5129java中final关键字的使用 1. 用final修饰基 ... -
Java类的初始化
2010-02-01 18:28 1260如下面代码 public class Test1 ... -
Java之Exception与try语句
2010-02-01 18:21 1399代码如下: public class Test1 ... -
java之对象引用static变量
2010-01-18 09:53 1629如下面代码 public class Test { ... -
java之catch语句
2010-01-13 20:16 2046如下面代码: public class Test { ... -
java之static变量
2010-01-13 20:07 1225如下面代码: public class Test { ... -
java之继承
2010-01-13 20:03 1145如下面代码: public class Test { ... -
java内部类
2010-01-13 10:46 1155如下面代码: public class OuterIn ... -
java基础之"=="操作符
2010-01-12 19:44 1151如下: public class Test { ... -
java之动态绑定和静态绑定
2010-01-11 11:22 1394如下面代码: package cn.lifx.test; ... -
java之String变量和“==”操作符(2)
2010-01-11 10:51 1385如下面代码: public class StringTest ... -
java之String变量和“==”操作符(1)
2010-01-06 16:35 1247先看下面的代码,有助于后面的理解。 public cl ... -
汉字截取问题
2010-01-04 15:01 1298如下 public class Test { p ... -
求几个整数的最小公倍数和最大公约数
2009-12-31 16:23 1446下面的方法是用递归解决的。如求几个整数的最小公倍数 ... -
java之final, finally, finalize的区别
2009-12-25 15:43 15601. final 用于声明属性,方法和类,分别表示属性不 ... -
java之抽象类和接口
2009-12-25 11:15 1229如下代码,是使用接口时需要注意的问题。 public int ... -
java之try与finally语句(2)
2009-12-25 11:07 1441接上一篇,跟上一篇代码差不多,就是修改了a的值为double类 ... -
java之try与finally语句
2009-12-24 21:42 1589如下面的代码,结果就不解释了。 public clas ... -
java的静态方法和非静态方法
2009-12-24 11:11 1327如下面的代码 public class Test { ... -
接着看java线程问题
2009-12-18 19:26 1077接上一篇,继续看看java线程问题。当然,下面的程序或者说用法 ...
相关推荐
在实际开发中,`iText操作Pdf简单整理.txt`可能包含了关于如何使用这些功能的示例代码和说明,通过学习和实践,开发者能够熟练掌握iText,满足各种PDF文档处理需求。 总的来说,iText是一款功能丰富的PDF处理工具,...
在实际应用中,你可能需要根据业务需求对PDF文件进行更复杂的操作,如添加页眉页脚、插入表格、处理图像等。Itext库提供了丰富的API来支持这些功能,你可以查阅其官方文档或者相关的教程进行深入学习。 在压缩包中...
在描述中提到的“iText可以制作中文PDF文件的JAVA源程序”,意味着这个压缩包可能包含示例代码或教程,展示了如何使用iText库在Java程序中创建包含中文字符的PDF文档。通常,处理中文字符需要正确配置字体资源,并...
本篇文章将详细介绍如何使用iText库生成PDF文件,以及在这个过程中可能遇到的关键知识点。 首先,我们需要了解iText的基本概念。iText是一个开源库,它提供了一系列API,使开发者能够方便地处理PDF文档。通过这个库...
本篇文章将详细介绍如何利用iText库操作PDF,从数据库中导出大量数据。 首先,我们需要理解iText的基本概念和功能。iText提供了丰富的API,可以用于创建新的PDF文档、添加文本、图像、表格、链接等元素,以及对已有...
2. **读取PDF**: 使用`PdfReader`类打开原始PDF文件,获取其`PdfStamper`实例,这将允许你访问并操作PDF的内部结构。 3. **计算页面大小**: 每个PDF页面可能包含不同的元素,如文本、图像和图形,这导致每页的大小...
iText是一个开源的Java库,用于生成、修改和操作PDF文件。它提供了一套丰富的API,允许开发者轻松地集成到现有的应用程序中。无论是从头创建PDF文档,还是编辑现有的PDF文件,iText都提供了强大的支持。 #### 二、...
在Java世界中,Itext 是一个广泛使用的库,它允许开发者创建、修改和操作PDF文档。这篇博客 "freemarker+itext生成PDF" 可能详细介绍了如何结合这两者来生成PDF文件,这在报表生成、发票打印或任何需要静态化输出的...
- PDF文档的结构:PDF由多个对象组成,如页、字体、图像、注释等,这些对象在PDF文件中以XML式的语法存储。 - 转换PDF:除了基本的创建和编辑功能,iText 7还允许开发者将PDF文档转换为其他格式,例如HTML、XML或...
Java通过iText库操作PDF模板来写入PDF合同数据是一项常见的技术任务,尤其在文档自动化处理和企业级应用中。iText是一个强大的PDF处理库,它允许开发者创建、修改和处理PDF文档。在这个过程中,首先我们需要一个PDF...
Itext是一个Java库,专门用于处理PDF文档,包括创建、编辑和阅读PDF文件。本话题将深入探讨如何使用iText库来打印PDF文件并拆分包含在List数据中的信息。 首先,我们要理解iText的工作原理。iText提供了一系列API,...
《iTextPDF 5.5.13:创建PDF文件的高效工具》 iTextPDF是一款功能强大的Java库,主要用于创建、编辑以及处理PDF文档。版本5.5.13是其历史版本之一,提供了丰富的API和功能,使得开发者能够方便地在Android平台上...
iText是一个强大的PDF库,它允许开发者在程序中创建、修改和操作PDF文档。然而,对于处理中文字符,iText需要额外的字体文件支持,因为默认的字体库不包含中文字符集。本教程将深入探讨如何在Java中使用iText PDF...
Itext是一个开源Java库,专为处理PDF文档设计,提供了一系列API用于创建、编辑和阅读PDF文件。 **Itext库介绍** Itext是PDF处理的强力工具,它允许开发者进行各种操作,包括添加文本、图像、表格,以及处理PDF的...
通过以上步骤,你可以在Java环境中利用iTextPDF和iText-Asian库为PDF文件添加中文水印。这个过程涉及到PDF文档的读取、写入、文本样式设定以及内容的定位,是一个典型的PDF处理应用场景。在实际开发中,你可能需要...
TestForExcel2PDF测试类可能包含这样的逻辑:首先,加载Excel文件,然后使用itextpdf的API将工作表的内容转换为PDF页面,最后保存为PDF文件。这个过程中可能涉及到对Excel表格的样式、字体、颜色等元素的保持,以...
这将生成一个名为"output.pdf"的PDF文件,其中包含指定的文本。 接下来,我们转向Word文档的生成。虽然IText的主要功能是处理PDF,但它也可以通过使用Apache POI库或iTextAspose库生成Word(.doc或.docx)文件。...
本教程将探讨如何利用iText库在Spring Boot应用中从HTML页面生成PDF,并进行一系列的定制化操作,如添加页眉、页码、水印、目录以及二维码。 首先,iText是一个强大的Java库,专门用于创建和编辑PDF文档。它提供了...
iText是一款广泛应用于PDF文档处理的Java库,尤其在生成、编辑和操作PDF文档方面表现卓越。本资源包包含了iText 5.5.11版本的组件,以及专门针对亚洲语言支持的itext-asian5.20.jar,同时提供了加水印和去水印的代码...
例如,通过数字签名,可以确保PDF文件的完整性和来源的真实性;通过加密,可以保护敏感信息不被未经授权的人员访问。 在实际开发中,iTextPDF库易于集成,提供了丰富的示例和文档,使得开发者能够快速上手。同时,...