如何使用pdfbox减小pdf大小

如何使用pdfbox减小pdf大小,pdfbox,Pdfbox,我想压缩输出PDF。下面的代码输出比原始文件大得多。我可以使用压缩选项吗 PDDocument doc = new PDDocument(); InputStream in = new FileInputStream(f); BufferedImage bimg = ImageIO.read(in); PDPage page = new PDPage(PDRectangle.A4); doc.addPage(page); PDImageXObject pdImageXObject = JPEG

我想压缩输出PDF。下面的代码输出比原始文件大得多。我可以使用压缩选项吗

PDDocument doc = new PDDocument();

InputStream in = new FileInputStream(f);
BufferedImage bimg = ImageIO.read(in);
PDPage page = new PDPage(PDRectangle.A4);
doc.addPage(page);
PDImageXObject pdImageXObject = JPEGFactory.createFromImage(doc, bimg, 0.03f);
PDPageContentStream contentStream = new PDPageContentStream(doc, page, AppendMode.APPEND, true);
contentStream.close(); 
doc.save(outfile);
doc.close();

原始图像的格式是什么?来自分割PDF框的jpeg图像,DPI200@user3741558下一个问题是,它是否是先前PDF中的jpeg文件。如果是这样,请检查您是否使用了ExtractImages中使用的快捷方式(“未修改的JPEG流”)。如果是,则应使用
JPEGFactory.createFromStream()
创建JPEG文件。如果从旧PDF提取并创建新PDF是在同一代码中完成的,则可以重用PDImage对象,但不要在目标文件之前关闭源文件。