Java 函数,可用于使用iText从PDF中删除单个页面

Java 函数,可用于使用iText从PDF中删除单个页面,java,pdf,itext,Java,Pdf,Itext,类似的: 我正在尝试使用iText 5.5.x创建一个通用函数,可以从PDF中删除页面 我写了一个函数,它通常工作正常。但我也收到过用户的抱怨,他们说这个函数有时会把PDF完全搞糟 你知道我的代码有什么问题吗 public static void removePageFromPDF(File thePDFFile, int pageIndexNotZeroBased) throws InterruptedException, Exception { PdfReade

类似的:

我正在尝试使用iText 5.5.x创建一个通用函数,可以从PDF中删除页面

我写了一个函数,它通常工作正常。但我也收到过用户的抱怨,他们说这个函数有时会把PDF完全搞糟

你知道我的代码有什么问题吗

public static void removePageFromPDF(File thePDFFile, int pageIndexNotZeroBased) throws InterruptedException, Exception {       
        PdfReader reader = new PdfReader(thePDFFile.getAbsolutePath());
        File tmpNewFile = File.createTempFile("pdfRemoveFile", "pdfouttemp.pdf");
        FileOutputStream fos = new FileOutputStream(tmpNewFile);
        com.itextpdf.text.Document d = new com.itextpdf.text.Document();
        PdfCopy copy = new PdfCopy(d, fos);
        d.open();
        for (int i = 1; i <= reader.getNumberOfPages(); ++i) {
            if (i != pageIndexNotZeroBased) {
                copy.addPage(copy.getImportedPage(reader, i));
            }
        }
        copy.freeReader(reader);
        reader.close();
        d.close();
        fos.close();
        FileUtils.copyFile(tmpNewFile, thePDFFile);
        tmpNewFile.delete();
    }
publicstaticvoid removepagefromfpdf(文件thePDFFile,int-pageIndexNotZeroBased)引发中断异常,异常{
PdfReader reader=新的PdfReader(thePDFFile.getAbsolutePath());
文件tmpNewFile=File.createTempFile(“pdfRemoveFile”,“pdfouttemp.pdf”);
FileOutputStream fos=新的FileOutputStream(tmpNewFile);
com.itextpdf.text.Document d=new com.itextpdf.text.Document();
PdfCopy副本=新的PdfCopy(d,fos);
d、 open();
对于(int i=1;i请阅读我的书。您将看到有两种选择页面的方法,一种使用
PdfCopy
,另一种使用
PdfStamper
。使用
PdfStamper
的方法比您现有的方法简单得多,而且更可靠:

PdfReader reader = new PdfReader(src);
reader.selectPages("!2");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
请阅读我的书。您将看到有两种选择页面的方法,一种使用
PdfCopy
,另一种使用
PdfStamper
。使用
PdfStamper
的方法比您现有的方法简单得多,而且更可靠:

PdfReader reader = new PdfReader(src);
reader.selectPages("!2");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
请阅读我的书。您将看到有两种选择页面的方法,一种使用
PdfCopy
,另一种使用
PdfStamper
。使用
PdfStamper
的方法比您现有的方法简单得多,而且更可靠:

PdfReader reader = new PdfReader(src);
reader.selectPages("!2");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
请阅读我的书。您将看到有两种选择页面的方法,一种使用
PdfCopy
,另一种使用
PdfStamper
。使用
PdfStamper
的方法比您现有的方法简单得多,而且更可靠:

PdfReader reader = new PdfReader(src);
reader.selectPages("!2");
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();

复制原始文件,逐页删除所有交互和文档级内容。考虑使用<代码> PdfStamper < /代码>并选择要保留的页。复制原始文件逐页删除所有交互和文档级内容。考虑使用<代码> PdfStamper < /代码>并选择要保留的页。复制原始文件一页一页地删除所有交互和文档级内容。考虑使用<代码> PdfStamper < /代码>并选择要保留的页。复制原始文件逐页删除所有交互和文档级内容。考虑使用<代码> PdfStamper < /代码>并选择您想要的页面。P