bing1987jing 2017-09-05 08:56 采纳率: 0%
浏览 1176

java 使用itext拆分pdf出错

使用main方法手动调用没问题,放入项目中动态调用出错

    public static void main(String[] args) {  
        partitionPdfFile("C:\\mb\\111.pdf","C:\\mb\\Chapter04.pdf", 2,2); 

    }  

    /** 
     * 截取pdfFile的第from页至第end页,组成一个新的文件名 
     * @param pdfFile 
     * @param subfileName 
     * @param from 
     * @param end 
     * 
     */  
    public static void partitionPdfFile(String pdfFile,  
            String newFile, int from, int end) {  
        System.out.println("aaa");
        Document document = null;  
        PdfCopy copy = null;          
        try {  
            PdfReader reader = new PdfReader(pdfFile);            
            int n = reader.getNumberOfPages();            
            if(end==0){  
                end = n;  
            }  
            ArrayList<String> savepaths = new ArrayList<String>();  
//            String staticpath = pdfFile.substring(0, pdfFile.lastIndexOf("\\")+1);  
//            String savepath = staticpath+ newFile;  
            String savepath =  newFile; 
            savepaths.add(savepath);  
            document = new Document(reader.getPageSize(1));  
            copy = new PdfCopy(document, new FileOutputStream(savepaths.get(0)));  
            document.open();  
            for(int j=from; j<=end; j++) {  
                document.newPage();   
                PdfImportedPage page = copy.getImportedPage(reader, j);  
                copy.addPage(page);  
            }  
            document.close();  

        } catch (IOException e) {  
            e.printStackTrace();  
        } catch(DocumentException e) {  
            e.printStackTrace();  
        }  
    }  

使用其他方法调用 partitionPdfFile("C:\mb\111.pdf","C:\mb\Chapter04.pdf", 2,2); 出错
错误内容:

 java.io.EOFException
    at com.itextpdf.text.pdf.RandomAccessFileOrArray.readFully(RandomAccessFileOrArray.java:261)
    at com.itextpdf.text.pdf.RandomAccessFileOrArray.readFully(RandomAccessFileOrArray.java:253)
    at com.itextpdf.text.pdf.PdfReader.getStreamBytesRaw(PdfReader.java:2254)
    at com.itextpdf.text.pdf.PdfReader.getStreamBytesRaw(PdfReader.java:2291)
    at com.itextpdf.text.pdf.PRStream.toPdf(PRStream.java:215)
    at com.itextpdf.text.pdf.PdfIndirectObject.writeTo(PdfIndirectObject.java:157)
    at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:396)
    at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:376)
    at com.itextpdf.text.pdf.PdfWriter$PdfBody.add(PdfWriter.java:368)
    at com.itextpdf.text.pdf.PdfWriter.addToBody(PdfWriter.java:806)
    at com.itextpdf.text.pdf.PdfCopy.copyIndirect(PdfCopy.java:214)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:282)
    at com.itextpdf.text.pdf.PdfCopy.copyDictionary(PdfCopy.java:236)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:280)
    at com.itextpdf.text.pdf.PdfCopy.copyIndirect(PdfCopy.java:213)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:282)
    at com.itextpdf.text.pdf.PdfCopy.copyDictionary(PdfCopy.java:236)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:280)
    at com.itextpdf.text.pdf.PdfCopy.copyIndirect(PdfCopy.java:213)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:282)
    at com.itextpdf.text.pdf.PdfCopy.copyDictionary(PdfCopy.java:236)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:280)
    at com.itextpdf.text.pdf.PdfCopy.copyDictionary(PdfCopy.java:236)
    at com.itextpdf.text.pdf.PdfCopy.copyObject(PdfCopy.java:280)
    at com.itextpdf.text.pdf.PdfCopy.copyDictionary(PdfCopy.java:233)
    at com.itextpdf.text.pdf.PdfCopy.addPage(PdfCopy.java:362)
  • 写回答

3条回答

  • 猿李 2017-09-05 09:36
    关注

    你是不是放在web项目中了

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值