Java pdf和jpg互转

匿名 (未验证) 提交于 2019-12-02 21:53:52

pdfbox: jpg转pdf:

/**      * 使用pdfbox将jpg转成pdf      * @param jpgStream jpg输入流      * @param pdfPath pdf文件存储路径      * @throws IOException IOException      */     public static void jpgToPdf(InputStream jpgStream, String pdfPath) throws IOException {          PDDocument pdDocument = new PDDocument();         BufferedImage image = ImageIO.read(jpgStream);          PDPage pdPage = new PDPage(new PDRectangle(image.getWidth(), image.getHeight()));         pdDocument.addPage(pdPage);         PDImageXObject pdImageXObject = LosslessFactory.createFromImage(pdDocument, image);         PDPageContentStream contentStream = new PDPageContentStream(pdDocument, pdPage);         contentStream.drawImage(pdImageXObject, 0, 0, image.getWidth(), image.getHeight());         contentStream.close();         pdDocument.save(pdfPath);         pdDocument.close();     }

pdfbox: pdf转jpg:

static void pdfbox() throws IOException {         long start = System.currentTimeMillis();         //pdf路径         URL url = new URL("file:///D:/1.pdf");         InputStream stream = URLUtil.getStream(url);         // 加载解析PDF文件         PDDocument doc = PDDocument.load(stream);         PDFRenderer pdfRenderer = new PDFRenderer(doc);         PDPageTree pages = doc.getPages();         int pageCount = pages.getCount();         for (int i = 0; i < pageCount; i++) {             BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 200);             ByteArrayOutputStream os = new ByteArrayOutputStream();             ImageIO.write(bim, "jpg", os);             byte[] datas = os.toByteArray(); //            InputStream is = new ByteArrayInputStream(datas);             //jpg文件转出路径             FileUtil.writeBytes(datas, new File("d:/jpg/" + i + ".jpg"));         }         long end = System.currentTimeMillis();         long time = (end - start) / 1000;         System.out.println(StrUtil.format("pdf转jpg耗时: {}s", time));     }

icepdf: pdfתjpg

Document document = new Document(); document.setUrl(new URL(pdfUrl)); int pageNum = document.getNumberOfPages(); for (int i = 0; i < pageNum; i++) {     // 目前仅支持1对1的pdf->jpg     if (i != 0) {         continue;     }     // 3、pdf -> jpg     BufferedImage bim = (BufferedImage) document.getPageImage(i,             GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX,             rotation, scale);     os = new ByteArrayOutputStream();     ImageIO.write(bim, "jpg", os);     // 4、jpg -> fdfs     byte[] datas = os.toByteArray();     InputStream is = new ByteArrayInputStream(datas);
文章来源: Java pdf和jpg互转
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!