精华内容
下载资源
问答
  • pdf转图片

    2020-12-22 15:54:36
    pdf转图片

    最近,一直在研究PDF转图片,了解到流行的大约有4种方案,三叔实验了其中3种,现和大家分享。

    背景

    PDF一般有两种格式,一种是扫描版,鼠标点不进去,一种是可编辑版,鼠标能够点进去复制里面文字,我手头上有2000+个PDF文件,大约有700个是扫描版,1300+个是可编辑版,为了后续工作,我需要将其统一转为图片,然后再OCR工作进行光学文字识别提取。

    设计思路

    • 访问PDF文件所在路径,找出所有PDF文件名形成一个PDF文件名列表;
    • 对PDF文件名列表循环,调用pdf2pic函数,将PDF分割成一张一张图片,存入临时文件夹下,并记录图片数目;
    • 利用PIL模块将同一个PDF产生的图片拼接起来形成一张长图;

    fitz方案

    # -*- coding: utf-8 -*-
    """
    Project_name:pdf2pic
    Description:
    Created on Tue Dec  8 08:59:21 2020
    @author: 帅帅de三叔
    """
    import os
    import os.path
    import fitz
    from PIL import Image
    
    pdfpath = r"D:\项目\pdf提取信息\pdf转图片" #原pdf文件路径
    temp_imagepath = r"D:\项目\pdf提取信息\pdf转图片\临时图片" #用来存放临时图片路径
    imagepath = r"D:\项目\pdf提取信息\pdf转图片\转化后的图片" #用来存放转化后的图片路径
    
    def mergePic(m, temp_imagepath): #合并分割后的png图片形成一张长图
        img_list = [] #用来存放png图片名称
        for parent, dirname, filenames in os.walk(temp_imagepath):
           for filename in filenames:
               if ".png" in filename:
                   img_list.append(filename) 
        print(img_list[0:m])
    
        if img_list:
            img_name = img_list[0]
            color_mod = 'RGBA' if img_name.endswith('.png') else 'RGB'  # jpeg格式不支持RGBA
            first_img = Image.open(temp_imagepath+os.sep+img_list[0])
            height_size = first_img.size[1]
            total_width = first_img.size[0]
            total_height = height_size * m
            left = 0
            right = height_size
            target = Image.new(color_mod, (total_width, total_height))  # 最终拼接的图像的大小
            for img in img_list[0:m]:
                target.paste(Image.open(temp_imagepath+os.sep+img), (0, left, total_width, right))
                left += height_size
                right += height_size
            target.save(imagepath + os.sep + pdfname[:-4] + '_fitz.png', quality=100)
            return img_name
    
    def pdf2pic(): #将pdf一页一页切割转为一页一页的png图片
        pdf = fitz.open(pdfpath+os.sep+pdfname) #打开pdf文件
        for pg in range(0, pdf.pageCount):  
            page = pdf[pg] # 获得每一页的对象
            trans = fitz.Matrix(3.0, 3.0).preRotate(0)
            pm = page.getPixmap(matrix=trans, alpha=False) # 获得每一页的流对象
            pm.writePNG(temp_imagepath + os.sep + '{:0>3d}.png'.format(pg + 1))  # 保存到临时图片文件夹下
        pagecount = pdf.pageCount #pdf总页数
        pdf.close() #关闭pdf文件
        return pagecount
    
    if __name__=="__main__":
        pdfnames = [] # 用来存放pdf源文件名称
        for parent, dirname, filenames in os.walk(pdfpath):
           for filename in filenames:
               if ".pdf" in filename:
                   pdfnames.append(filename)
        for idx, pdfname in enumerate(pdfnames): 
            print("正在处理第 %d(5)  张名为 %s 文件"%(idx, pdfname))
            pagecount = pdf2pic()
            mergePic(pagecount, temp_imagepath)
    

    pdf2image

    # -*- coding: utf-8 -*-
    """
    Project_name:pdf2image
    Description: 利用pdf2image库转pdf为图片
    Created on Tue Dec  8 13:19:09 2020
    @author: 帅帅de三叔
    """
    import os
    import os.path
    from PIL import Image
    from pdf2image import convert_from_path
    pdfpath = r"D:\项目\pdf提取信息\pdf转图片" #原pdf文件路径
    temp_imagepath = r"D:\项目\pdf提取信息\pdf转图片\临时图片" #用来存放临时图片路径
    imagepath = r"D:\项目\pdf提取信息\pdf转图片\转化后的图片" #用来存放转化后的图片路径
    
    
    def pdf2image(): #将pdf一页一页切割转为一页一页的png图片
        images = convert_from_path(pdfpath+os.sep+pdfname, dpi = 300)
        for i, image in enumerate(images):
            image.save(temp_imagepath+os.sep+'{:0>3d}.png'.format(i+1), "PNG")   
        pagecount = len(images) #pdf总页数
        return pagecount
    
    def mergePic(m, temp_imagepath): #合并分割后的png图片形成一张长图
        img_list = [] #用来存放png图片名称
        for parent, dirname, filenames in os.walk(temp_imagepath):
           for filename in filenames:
               if ".png" in filename:
                   img_list.append(filename) 
        print(img_list[0:m])
    
        if img_list:
            img_name = img_list[0]
            color_mod = 'RGBA' if img_name.endswith('.png') else 'RGB'  # jpeg格式不支持RGBA
            first_img = Image.open(temp_imagepath+os.sep+img_list[0])
            height_size = first_img.size[1]
            total_width = first_img.size[0]
            total_height = height_size * m
            left = 0
            right = height_size
            target = Image.new(color_mod, (total_width, total_height))  # 最终拼接的图像的大小
            for img in img_list[0:m]:
                target.paste(Image.open(temp_imagepath+os.sep+img), (0, left, total_width, right))
                left += height_size
                right += height_size
            target.save(imagepath + os.sep + pdfname[:-4] + '_images.png', quality=100)
            return img_name
    
    
    pdfnames = [] # 用来存放pdf源文件名称
    for parent, dirname, filenames in os.walk(pdfpath):
       for filename in filenames:
           if ".pdf" in filename:
               pdfnames.append(filename)
                   
    for idx, pdfname in enumerate(pdfnames): 
        print("正在处理第 %d(5)  张 %s 文件"%(idx, pdfname))
        pagecount = pdf2image()
        mergePic(pagecount, temp_imagepath)
        
    

    wand方案

    # -*- coding: utf-8 -*-
    """
    Project_name:pdf2imageghosts
    Description: wind方法将pdf转图片
    Created on Tue Dec  8 17:16:00 2020
    @author: 帅帅de三叔
    """
    import os
    import os.path
    from PIL import Image as PILImage
    from wand.image import Image
    pdfpath = r"D:\项目\pdf提取信息\pdf转图片" #原pdf文件路径
    temp_imagepath = r"D:\项目\pdf提取信息\pdf转图片\临时图片" #用来存放临时图片路径
    if not os.path.exists(temp_imagepath):
        os.mkdir(temp_imagepath)
    imagepath = r"D:\项目\pdf提取信息\pdf转图片\转化后的图片" #用来存放转化后的图片路径
    if not os.path.exists(temp_imagepath):
        os.mkdir(temp_imagepath)
    
    
    
    def mergePic(m, temp_imagepath): #合并分割后的png图片形成一张长图
        img_list = [] #用来存放png图片名称
        for parent, dirname, filenames in os.walk(temp_imagepath):
           for filename in filenames:
               if ".jpeg" in filename:
                   img_list.append(filename) 
        print(img_list[0:m])
    
        if img_list:
            img_name = img_list[0]
            color_mod = 'RGBA' if img_name.endswith('.png') else 'RGB'  # jpeg格式不支持RGBA
            first_img = PILImage.open(temp_imagepath+os.sep+img_list[0])
            height_size = first_img.size[1]
            total_width = first_img.size[0]
            total_height = height_size * m
            left = 0
            right = height_size
            target = PILImage.new(color_mod, (total_width, total_height))  # 最终拼接的图像的大小
            for img in img_list[0:m]:
                target.paste(PILImage.open(temp_imagepath+os.sep+img), (0, left, total_width, right))
                left += height_size
                right += height_size
            target.save(imagepath + os.sep + pdfname[:-4] + '_winds.png', quality=100)
            return img_name
    
    def wind_imagemagick_ghostscript(pdf_path, imgs_dir):
        # 将pdf文件转为jpg图片文件
        # ./PDF_FILE_NAME 为pdf文件路径和名称
        # image_pdf = Image(filename='./demo1.pdf', resolution=300)
        image_pdf = Image(filename=pdf_path, resolution =300)
        image_jpeg = image_pdf.convert('png')
    
        # wand已经将PDF中所有的独立页面都转成了独立的二进制图像对象。我们可以遍历这个大对象,并把它们加入到req_image序列中去。
        req_image = []
        for img in image_jpeg.sequence:
            img_page = Image(image=img)
            req_image.append(img_page.make_blob('jpeg'))
    
        # 遍历req_image,保存为图片文件
        i = 0
        for img in req_image:
            ff = open(imgs_dir + '\\' + str(i) + '.jpeg', 'wb')
            ff.write(img)
            ff.close()
            i += 1
        #print(len(req_image))
        return len(req_image)
    
    
    if __name__ == '__main__':
        pdfnames = [] # 用来存放pdf源文件名称
        for parent, dirname, filenames in os.walk(pdfpath):
           for filename in filenames:
               if ".pdf" in filename:
                   pdfnames.append(filename)
                   
        for idx, pdfname in enumerate(pdfnames): 
            print("正在处理第 %d(5)  张 %s 文件"%(idx, pdfname))
            pdf_path = pdfpath + os.sep +pdfname
            print(pdf_path)
            imgs_dir = temp_imagepath
            req_image = wind_imagemagick_ghostscript(pdf_path, imgs_dir)
            mergePic(req_image, temp_imagepath)
    
    

    结论

    fitz方案简单高效,pdf2image最后出来的图片灰度有点大,wand方案出来的图片对比度比较高,适合这种文书类的,但是wand方案前期准备工作略微复杂,建议使用fitz方案;

    参考文献
    1,https://pypi.org/project/pdf2image/;https://www.cnblogs.com/justaman/p/12213353.html

    2,https://blog.csdn.net/weixin_42081389/article/details/103712181?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-6.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-6.nonecas
    在这里插入图片描述

    展开全文
  • PDF 图片

    2017-12-05 13:20:35
    使用aspose.pdf实现PDF转图片,压缩包自带aspose.pdf破解版。方法简单实用。
  • PDF转图片

    2017-08-07 11:39:40
    PDF转图片

    PDF转图片

    需求:电子保单系统返回pdf下载文件的url。访问url,将返回的pdf文件流转换成图片保存在本地

    需要引入jar包 :pdfbox-2.0.0.jar, fontbox-2.0.0.jar

    package test;
    
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    
    import javax.imageio.ImageIO;
    
    
    import org.apache.commons.lang.StringUtils;
    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.rendering.PDFRenderer;
    
    
    import bjca.org.apache.log4j.Logger;
    
    
    /**
     * pdf文件转换成png图片
     * @author lijc
     *
     */
    public class Pdf2Pic {
    	Logger log = Logger.getLogger(getClass());
    
    
    	/**
    	 * 获取url返回的pdf,转换成图片保存到本地
    	 * 
    	 * @param url 
    	 * @param plyseq 
    	 * @return
    	 */
    	private void pdfToPng(String urlStr, String plyseq) {
    		// File file = new File("D:\\test.pdf");
    		// 暂时测试使用的url 后改成库中取得
    		// String urlStr =
    		// "http://58.251.33.182:18080/elec/netSaleQueryElecPlyServlet?c_ply_no=1M1084920171004735&idCard=411722197202132411";
    		PDDocument pdDocument = null;
    		if (StringUtils.isNotEmpty(urlStr)) {
    			try {
    				// 获取电子保单url文件输入流
    				InputStream input = getPdfInputStream(urlStr);
    				// 加载pdf文件
    				pdDocument = PDDocument.load(input);
    				PDFRenderer pdfRenderer = new PDFRenderer(pdDocument);
    				int pageCount = pdDocument.getNumberOfPages();
    				String pdfImgPath = "webapps" + File.separator + "pdfImg" + File.separator + plyseq + ".png";
    				for (int i = 0; i < pageCount; i++) {
    					BufferedImage image = pdfRenderer.renderImageWithDPI(i, 296);
    					ImageIO.write(image, "PNG", new File(pdfImgPath));
    				}
    				input.close();
    				log.info("流水号:" + plyseq + " pdf文件转换png图片成功!");
    			} catch (IOException ex) {
    				ex.printStackTrace();
    				log.error("pdf文件转换png图片失败!");
    			} finally {
    				if (pdDocument != null) {
    					try {
    						pdDocument.close();
    					} catch (IOException ex) {
    						ex.printStackTrace();
    					}
    				}
    			}
    		} else {
    			log.error("流水号:" + plyseq + "电子保单url地址为空!");
    		}
    
    
    	}
    
    
    	/**
    	 * 获取pdf文件 inputstream流 by 电子保单url
    	 * 
    	 * @param url
    	 * @return
    	 */
    	private static InputStream getPdfInputStream(String urlStr) {
    		URL url = null;
    		try {
    			url = new URL(urlStr);
    			HttpURLConnection httpConnect = (HttpURLConnection) url.openConnection();
    			// 设置连接超时时间
    			httpConnect.setConnectTimeout(30000);
    			// 设置读取数据超时时间
    			httpConnect.setReadTimeout(60000);
    			httpConnect.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
    			httpConnect.setRequestProperty("User-Agent",
    					"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36");
    			return httpConnect.getInputStream();
    		} catch (IOException ex) {
    			ex.printStackTrace();
    		}
    		return null;
    	}
    	
    	public static void main(String[] args) {
    		String plyseq = "123456";
    		String urlStr = "http://localhost:18080/elec/netSaleQueryElecPlyServlet?c_ply_no=1M1084920171004735&idCard=411722197202132411";
    		new Pdf2Pic().pdfToPng(urlStr, plyseq);
    	}
    }


    
    

    展开全文
  • PDF转图片PDF转图片

    2012-10-15 07:22:32
    PDF转图片
  • pdf 图片

    2017-06-09 15:36:30
    pdf img  org.sejda sejda-icepdf 1.0.0.RELEASE org.icepdf.os icepdf-core 6.1.2 org.icepdf.os icepdf-viewer 6.1.2 org.apache.pdfbox fontbox 2.0.3 or

    pdf 转图片

    借鉴了别人的实现,但是,原文没有贴出import代码,导致使用的人,无法很清晰的知道需要导入的包。


    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.rendering.PDFRenderer;
    import org.icepdf.core.exceptions.PDFException;
    import org.icepdf.core.exceptions.PDFSecurityException;
    import org.icepdf.core.pobjects.Document;
    import org.icepdf.core.util.GraphicsRenderingHints;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.awt.image.RenderedImage;
    import java.io.File;
    import java.io.IOException;
    
    /**
     * Created by Cheng Jinquan on 2017/6/9.
     */
    public class Pdf2Img {
    
    
        public static void main(String[] args) {
            new Thread(
                    new Runnable() {
                        @Override
                        public void run() {
                            Pdf2Img.pdf2Img_icepdf("E:\\test\\pdf\\test.pdf", "E:\\test\\pdf\\icepdf");
                        }
                    }
            ).start();
    
            new Thread(
                    new Runnable() {
                        @Override
                        public void run() {
                            Pdf2Img.pdf2Img_pdfbox("E:\\test\\pdf\\test.pdf", "E:\\test\\pdf\\pdfbox");
                        }
                    }
            ).start();
    
            try {
                Thread.sleep(120000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    
    
        public static void pdf2Img_icepdf(String pdfPath, String imgPath) {
            System.out.println("icepdf start...");
            long time = System.currentTimeMillis();
            Document document = new Document();
            try {
                document.setFile(pdfPath);
            } catch (PDFException e) {
                e.printStackTrace();
            } catch (PDFSecurityException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            float scale = 2.5f;//缩放比例
            float rotation = 0f;//旋转角度
            long timeTmp = System.currentTimeMillis();
            for (int i = 0; i < document.getNumberOfPages(); i++) {
                BufferedImage image = (BufferedImage)document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);
                RenderedImage rendImage = image;
                try {
                    File file = new File(imgPath+"\\iecPDF_" + i + ".png");
                    ImageIO.write(rendImage, "png", file);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                image.flush();
                long time2 = System.currentTimeMillis();
                System.out.println("icepdf "+(time2-timeTmp));
                timeTmp = time2;
            }
            document.dispose();
            System.out.println("icepdf over..."+(System.currentTimeMillis()-time));
        }
    
        /**
         * rederImageWithDPI的第二个参数为dpi分辨率单位,可根据需求调节大小,代码第八行提供了架包里另一种转图片的方法,第二个参数为缩放比。
         * @param pdfPath
         * @param imgPath
         */
        public static void pdf2Img_pdfbox(String pdfPath, String imgPath) {
            System.out.println("icepdf start...");
            long time = System.currentTimeMillis();
            File file = new File(pdfPath);
            try {
                PDDocument doc = PDDocument.load(file);
                PDFRenderer renderer = new PDFRenderer(doc);
                int pageCount = doc.getNumberOfPages();
                long timeTmp = System.currentTimeMillis();
                for (int i = 0; i < pageCount; i++) {
                    BufferedImage image = renderer.renderImageWithDPI(i, 144);
                    //BufferedImage image = renderer.renderImage(i, 2.5f);
                    ImageIO.write(image, "PNG", new File(imgPath+"\\pdfbox_image"+i+".png"));
                    long time2 = System.currentTimeMillis();
                    System.out.println("icepdf " + (time2 - timeTmp));
                    timeTmp = time2;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("icepdf over..."+(System.currentTimeMillis()-time));
        }
    
        public void pdf2Img_jpedal() {
            /*PdfDecoder decode_pdf = new PdfDecoder(true);
            try {
                decode_pdf.openPdfFile("c:\\test.pdf"); //file
    //       decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file
    //      decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF
    //      decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false);
    //      decode_pdf.openPdfFileFromInputStream(in, false);
    
                int start = 1, end = decode_pdf.getPageCount();
                for (int i = start; i < end + 1; i++) {
                    BufferedImage img = decode_pdf.getPageAsImage(i);
                    try {
                        ImageIO.write(img, "png", new File("C:\\jpedal_image.png"));
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                decode_pdf.closePdfFile();
            } catch (PdfException e) {
                e.printStackTrace();
            }*/
        }
    }
    



    <!-- icepdf start -->
    <dependency>
    	<groupId>org.sejda</groupId>
    	<artifactId>sejda-icepdf</artifactId>
    	<version>1.0.0.RELEASE</version>
    </dependency>
    <dependency>
    	<groupId>org.icepdf.os</groupId>
    	<artifactId>icepdf-core</artifactId>
    	<version>6.1.2</version>
    </dependency>
    <dependency>
    	<groupId>org.icepdf.os</groupId>
    	<artifactId>icepdf-viewer</artifactId>
    	<version>6.1.2</version>
    </dependency>
    <!-- icepdf end -->
    <!-- pdfbox start -->
    <dependency>
    	<groupId>org.apache.pdfbox</groupId>
    	<artifactId>fontbox</artifactId>
    	<version>2.0.3</version>
    </dependency>
    <dependency>
    	<groupId>org.apache.pdfbox</groupId>
    	<artifactId>pdfbox</artifactId>
    	<version>2.0.3</version>
    </dependency>
    <!-- pdfbox end -->
    <!-- jpedal pdf start -->
    <dependency>
    	<groupId>org.jpedal</groupId>
    	<artifactId>OpenViewerFX</artifactId>
    	<version>7.2.30</version>
    </dependency>
    <!-- jpedal pdf end -->        


    借鉴链接   http://www.cnblogs.com/pcheng/p/5704470.html



    import org.apache.pdfbox.pdmodel.PDDocument;
    import org.apache.pdfbox.rendering.PDFRenderer;
    import org.icepdf.core.exceptions.PDFException;
    import org.icepdf.core.exceptions.PDFSecurityException;
    import org.icepdf.core.pobjects.Document;
    import org.icepdf.core.util.GraphicsRenderingHints;
    
    import javax.imageio.ImageIO;
    import java.awt.image.BufferedImage;
    import java.awt.image.RenderedImage;
    import java.io.File;
    import java.io.IOException;
    
    /**
     * Created by Cheng Jinquan on 2017/6/9.
     */
    public class Pdf2Img {
    
    
        public static void main(String[] args) {
            new Thread(
                    new Runnable() {
                        @Override
                        public void run() {
                            Pdf2Img.pdf2Img_icepdf("E:\\test\\pdf\\test.pdf", "E:\\test\\pdf\\icepdf");
                        }
                    }
            ).start();
    
            new Thread(
                    new Runnable() {
                        @Override
                        public void run() {
                            Pdf2Img.pdf2Img_pdfbox("E:\\test\\pdf\\test.pdf", "E:\\test\\pdf\\pdfbox");
                        }
                    }
            ).start();
    
            try {
                Thread.sleep(120000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    
    
        public static void pdf2Img_icepdf(String pdfPath, String imgPath) {
            System.out.println("icepdf start...");
            long time = System.currentTimeMillis();
            Document document = new Document();
            try {
                document.setFile(pdfPath);
            } catch (PDFException e) {
                e.printStackTrace();
            } catch (PDFSecurityException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            float scale = 2.5f;//缩放比例
            float rotation = 0f;//旋转角度
            long timeTmp = System.currentTimeMillis();
            for (int i = 0; i < document.getNumberOfPages(); i++) {
                BufferedImage image = (BufferedImage)document.getPageImage(i, GraphicsRenderingHints.SCREEN, org.icepdf.core.pobjects.Page.BOUNDARY_CROPBOX, rotation, scale);
                RenderedImage rendImage = image;
                try {
                    File file = new File(imgPath+"\\iecPDF_" + i + ".jpg");
                    ImageIO.write(rendImage, "png", file);
                } catch (IOException e) {
                    e.printStackTrace();
                }
                image.flush();
                long time2 = System.currentTimeMillis();
                System.out.println("icepdf "+(time2-timeTmp));
                timeTmp = time2;
            }
            document.dispose();
            System.out.println("icepdf over..."+(System.currentTimeMillis()-time));
        }
    
        /**
         * rederImageWithDPI的第二个参数为dpi分辨率单位,可根据需求调节大小,代码第八行提供了架包里另一种转图片的方法,第二个参数为缩放比。
         * @param pdfPath
         * @param imgPath
         */
        public static void pdf2Img_pdfbox(String pdfPath, String imgPath) {
            System.out.println("icepdf start...");
            long time = System.currentTimeMillis();
            File file = new File(pdfPath);
            try {
                PDDocument doc = PDDocument.load(file);
                PDFRenderer renderer = new PDFRenderer(doc);
                int pageCount = doc.getNumberOfPages();
                long timeTmp = System.currentTimeMillis();
                for (int i = 0; i < pageCount; i++) {
                    BufferedImage image = renderer.renderImageWithDPI(i, 144);
                    //BufferedImage image = renderer.renderImage(i, 2.5f);
                    ImageIO.write(image, "PNG", new File(imgPath+"\\pdfbox_image"+i+".png"));
                    long time2 = System.currentTimeMillis();
                    System.out.println("icepdf " + (time2 - timeTmp));
                    timeTmp = time2;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("icepdf over..."+(System.currentTimeMillis()-time));
        }
    
        public void pdf2Img_jpedal() {
            /*PdfDecoder decode_pdf = new PdfDecoder(true);
            try {
                decode_pdf.openPdfFile("c:\\test.pdf"); //file
    //       decode_pdf.openPdfFile("C:/jpedalPDF.pdf", "password"); //encrypted file
    //      decode_pdf.openPdfArray(bytes); //bytes is byte[] array with PDF
    //      decode_pdf.openPdfFileFromURL("http://www.mysite.com/jpedalPDF.pdf",false);
    //      decode_pdf.openPdfFileFromInputStream(in, false);
    
                int start = 1, end = decode_pdf.getPageCount();
                for (int i = start; i < end + 1; i++) {
                    BufferedImage img = decode_pdf.getPageAsImage(i);
                    try {
                        ImageIO.write(img, "png", new File("C:\\jpedal_image.png"));
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                decode_pdf.closePdfFile();
            } catch (PdfException e) {
                e.printStackTrace();
            }*/
        }
    }
    

    展开全文
  • 图片转pdf pdf 转图片

    热门讨论 2014-03-04 09:20:04
    pdf 转图片 图片转pdf 内置方法 ,可以读到 pdf 几页,可以 向 向pdf 写入数据
  • PDF转word文档 PDF转图片 ,word文档转PDF, 下载后免费试用
  • 怎么把PDF转图片?PDF文件的兼容性很强,基本上可以在任何一台电脑打开,所以很多人喜欢把一些文档都转为PDF文件,方便查看和阅读,但是有时候需要在手机查看的话还是会比较麻烦,我们会想把PDF转图片,这样在手机上...

    怎么把PDF转图片?PDF文件的兼容性很强,基本上可以在任何一台电脑打开,所以很多人喜欢把一些文档都转为PDF文件,方便查看和阅读,但是有时候需要在手机查看的话还是会比较麻烦,我们会想把PDF转图片,这样在手机上也可以很方便查看了。今天小编就来给大家分享下PDF转图片的方法!

    186ccbcbe303138441b660a8f1e4a54e.png

    PDF转图片方法一:用ps软件转换

    大多数人都觉得ps这个软件是专门处理图片的,其实也可以用来PDF转图片,操作很简单,打开ps软件,打开PDF文件,导入需要转换的页面,然后点击左上角【文件】,选择存储为,然后在存储界面设置好文件名、保存位置和文件格式,比如我们选择存储为JPEG格式,然后确定保存,PDF文件就被存为图片格式啦~

    5967663ab12a7f2559fd98f0fc15e484.png

    小编提示:但是这种方法一次只能转换一页PDF,如果要PDF转图片的数量比较多可以用专业的PDF转换工具!

    PDF转图片方法二:使用PDF转换工具

    在这里小编为大家推荐一款PDF转换器软件,我们轻松拖拽即可实现批量转换,支持图文混排和表格。它采用业内先进技术,即使是加密文件也可轻松实现PDF格式转换!

    我们直接在百度就可以找到,或者到嗨格式PDF转换器官网下载软件。运行软件后点击第一个功能版块【PDF转文件】进入。

    b05f792d658f22570342ba5123f0d33b.png

    然后选择页面顶部的PDF转图片功能,再点击右上方添加文件,找到需要转图片的PDF文件添加进来,最后点击开始转换,等待几秒就可以将PDF转图片啦!

    39f522586f31fa0338e8191ff08c502a.png

    怎么把PDF转图片?上面两种方法你学会了吗,快试试吧!另外这款软件还有PDF转Word、PDF转PPT、PDF转Excel等多种强大的格式转换功能,是一款不容错过的办公神器哦!

    展开全文
  • 1.Pdf转word、 2.PDF转图片(png,jpg,bmp) 3.Word转PDf、Word转Xps 4.Excel转Pdf
  • PDF转图片.exe

    2019-02-18 11:24:44
    PDF转图片
  • PDF转图片怎么转?在传输图片之前,很多朋友会选择先将图片转换成PDF文件,这样可以保证图片的分辨率、色彩等内容在传输过程中不会发生变化。图片转PDF这个大家都会,但是如果要将PDF再转成图片,很多人就不知道怎么...
  • PDF转图片怎么转?办公人群对PDF应该都很熟悉,它是一种文件格式,就像Word、PPT、Excel这些。在使用PDF文件的过程中,我们也经常需要对PDF进行转换,就比如PDF转图片。接下来我就给大家分享PDF转图片的方法。第一个...
  • PDF转图片怎么转?相信很多经常接触电脑的人对PDF文件都很熟悉,在职场办公中,我们总会遇到文件格式转换的问题,这也难倒了很多人。当这个时候你会怎么做呢?接下来,小编就给大家介绍三种PDF转图片的方法。方法一...
  • PDF转图片怎么转?图片是我们生活中最常见的一种文件格式,很多小伙伴也会选择将自己的PDF文件转换成图片。大家要是也有这样的转换需求,你知道该怎么去完成吗?为了帮助大家,小编整理了两个简单的PDF转图片方法,...
  • Pdf转图片

    千次阅读 2014-06-03 17:31:16
    由于项目需要将Pdf转化为jpg,所以花了一点时间研究了一下,主要采用一下两种
  • 利用pdfbox,jacob,实现。pdf转图片并合成一张图片输出,图片转pdf,word转html,word转pdf
  • Word转PDF,PDF转图片,图片转PDF,需要安装openoffice,解决了失真的问题,暂时没有发现乱码,有问题可以邮件我51170526@163.com
  • 怎么将PDF文件转换成图片?...这两种不同的文件格式,想要实现转换其实很简单,今天就跟着小编一起看下PDF转图片的具体方法。方法一:利用PDF转换工具利用PDF转换工具可以完成PDF转图片文件。这个方法比较简单,大体...
  • 在日常工作中,我们经常...接下来,小编就给大家介绍两种PDF转图片的方法。方法一:将PDF导出为图片此方法比较适合将很多图片直接导出,打开目标PDF文件,在【文件】下拉菜单中,选择【导出】,点选【导出为图像】...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,040
精华内容 3,616
关键字:

pdf转图片