浏览 5898 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-12-31
最后修改:2008-12-31
用iText读取一个pdf文件,然后把它保存成另一个pdf文件(相当于复制一份),代码如下:
import java.io.FileOutputStream; import java.io.IOException; 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(); } } }
运行时出现了下面这样的错误:
Exception in thread "main" java.lang.IllegalArgumentException: PdfReader not opened with owner password at com.lowagie.text.pdf.PdfReaderInstance.getImportedPage(Unknown Source) at com.lowagie.text.pdf.PdfCopy.getImportedPage(Unknown Source)
上网查了一下,最后好不容易找到了原因,找到了解决办法。原来,我用的iText是itext-2.1.4.jar,使用以前的版本itext-2.0.2.jar,这时就不会出现这个错误了,就可以进行pdf文件的读取和保存了。
保存效果还是蛮好的,而且也支持中文。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |