使用iTextpdf删除java中的pdf页面
我有一个现有的功能来显示我无法更改的pdf文件 函数的输入是一个使用iTextpdf删除java中的pdf页面,java,itext,Java,Itext,我有一个现有的功能来显示我无法更改的pdf文件 函数的输入是一个InputStream变量。 在过去,他们常常向它传递一个pdf文件,它会显示出来 但现在他们要求我只显示pdf的前30页。所以我使用的是iTextpdf,我会这样做: PdfReader reader = new PdfReader (inputStream); reader.selectPages("1-30"); 现在我应该将结果作为InputStream变量发送给show方法 我该怎么做? 谢谢您可以使用PdfStampe
InputStream
变量。
在过去,他们常常向它传递一个pdf文件,它会显示出来
但现在他们要求我只显示pdf的前30页。所以我使用的是iTextpdf
,我会这样做:
PdfReader reader = new PdfReader (inputStream);
reader.selectPages("1-30");
现在我应该将结果作为InputStream
变量发送给show方法
我该怎么做?
谢谢您可以使用
PdfStamper
存储结果,如下所示:
PdfReader reader = new PdfReader (inputStream);
reader.selectPages("1-30");
ByteArrayOutputStream os = new ByteArrayOutputStream();
PdfStamper stamper = new PdfStamper(reader, os);
stamper.close();
byte[] changedPdf = os.toByteArray();
如果希望结果再次出现在InputStream InputStream
变量中,只需添加一行即可
inputStream = new ByteArrayInputStream(changedPdf);
您可以使用
PdfStamper
存储结果,如下所示:
PdfReader reader = new PdfReader (inputStream);
reader.selectPages("1-30");
ByteArrayOutputStream os = new ByteArrayOutputStream();
PdfStamper stamper = new PdfStamper(reader, os);
stamper.close();
byte[] changedPdf = os.toByteArray();
如果希望结果再次出现在InputStream InputStream
变量中,只需添加一行即可
inputStream = new ByteArrayInputStream(changedPdf);
通过获取现有pdf文件的读取器
PdfReader pdfReader = new PdfReader("source pdf file path");
现在通过以下方式更新读者
reader.selectPages("1-5,15-20");
然后获取pdf stamper对象,通过
PdfStamper pdfStamper = new PdfStamper(pdfReader,
new FileOutputStream("destination pdf file path"));
通过以下方式关闭PdfStamper
pdfStamper.close();
它也将关闭pdf阅读器。通过以下方式获取现有pdf文件的阅读器:
PdfReader pdfReader = new PdfReader("source pdf file path");
现在通过以下方式更新读者
reader.selectPages("1-5,15-20");
然后获取pdf stamper对象,通过
PdfStamper pdfStamper = new PdfStamper(pdfReader,
new FileOutputStream("destination pdf file path"));
通过以下方式关闭PdfStamper
pdfStamper.close();
它也将关闭PdfReader