精华内容
下载资源
问答
  • java 将pdf多页转换成一张图片,支持指定页数 可以将pdf中前n页转换成一张图片,竖向合并

    代码:

    /**
     * 将pdf中的maxPage页,转换成一张图片
     * 
     * @param pdfFile
     *            pdf的路径
     * @param outpath
     *            输出的图片的路径[包括名称]
     * @param maxPage
     *            pdf的页数
     *            【比如Pdf有3页,如果maxPage=2,则将pdf中的前2页转成图片,如果超过pdf实际页数,则按实际页数转换】
     */
    private static void pdf2multiImage(String pdfFile, String outpath, int maxPage) {
    	try {
    		InputStream is = new FileInputStream(pdfFile);
    		PDDocument pdf = PDDocument.load(is, true);
    		List<PDPage> pages = pdf.getDocumentCatalog().getAllPages();
    		List<BufferedImage> piclist = new ArrayList<BufferedImage>();
    		int actSize = pages.size(); // pdf中实际的页数
    		if (actSize < maxPage) maxPage = actSize;
    		for (int i = 0; i < maxPage; i++) {
    			piclist.add(pages.get(i).convertToImage());
    		}
    		yPic(piclist, outpath);
    		is.close();
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    /**
     * 将宽度相同的图片,竖向追加在一起 ##注意:宽度必须相同
     * 
     * @param piclist
     *            文件流数组
     * @param outPath
     *            输出路径
     */
    public static void yPic(List<BufferedImage> piclist, String outPath) {// 纵向处理图片
    	if (piclist == null || piclist.size() <= 0) {
    		System.out.println("图片数组为空!");
    		return;
    	}
    	try {
    		int height = 0, // 总高度
    		width = 0, // 总宽度
    		_height = 0, // 临时的高度 , 或保存偏移高度
    		__height = 0, // 临时的高度,主要保存每个高度
    		picNum = piclist.size();// 图片的数量
    		File fileImg = null; // 保存读取出的图片
    		int[] heightArray = new int[picNum]; // 保存每个文件的高度
    		BufferedImage buffer = null; // 保存图片流
    		List<int[]> imgRGB = new ArrayList<int[]>(); // 保存所有的图片的RGB
    		int[] _imgRGB; // 保存一张图片中的RGB数据
    		for (int i = 0; i < picNum; i++) {
    			buffer = piclist.get(i);
    			heightArray[i] = _height = buffer.getHeight();// 图片高度
    			if (i == 0) {
    				width = buffer.getWidth();// 图片宽度
    			}
    			height += _height; // 获取总高度
    			_imgRGB = new int[width * _height];// 从图片中读取RGB
    			_imgRGB = buffer.getRGB(0, 0, width, _height, _imgRGB, 0, width);
    			imgRGB.add(_imgRGB);
    		}
    		_height = 0; // 设置偏移高度为0
    		// 生成新图片
    		BufferedImage imageResult = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    		for (int i = 0; i < picNum; i++) {
    			__height = heightArray[i];
    			if (i != 0) _height += __height; // 计算偏移高度
    			imageResult.setRGB(0, _height, width, __height, imgRGB.get(i), 0, width); // 写入流中
    		}
    		File outFile = new File(outPath);
    		ImageIO.write(imageResult, "jpg", outFile);// 写图片
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
    }


    调用:

    public static void main(String[] args) {
    	pdf2multiImage("f:/bak/aa.pdf", "f:/bak/bbbbb.jpg", 4);
    }

    转换图片,需要两个jar包:
    展开全文
  • 1:icepdf的jar包下载地址 ... 2:所需jar包 ...3,多页pdf转一张图代码如下,转换的图片会带有官方的水印。去水印的方法可以查看另一篇文章:icepdf去水印方法 package com.java.pdf; import java.awt.i

    1:icepdf的jar包下载地址

    http://www.icesoft.org/java/downloads/icepdf-downloads.jsf


    2:所需jar包



    3,多页pdf转一张图代码如下,转换的图片会带有官方的水印。去水印的方法可以查看另一篇文章:icepdf去水印方法

    package com.java.pdf;
    
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.imageio.ImageIO;
    
    import org.icepdf.core.pobjects.Document;
    import org.icepdf.core.pobjects.Page;
    import org.icepdf.core.util.GraphicsRenderingHints;
    
    
    public class PdfToJpg {
        
        
        public static void main(String[] args) {
            String pdfFile = "E:\\pdf\\aa.pdf";
            String outpath = "E:\\pdf\\aa.jpg";
            pdf2multiImage(pdfFile,outpath,1000);
        }
    
        private static void pdf2multiImage(String pdfFile, String outpath, int maxPage) {  
            try {  
                InputStream is = new FileInputStream(pdfFile);  
                List<BufferedImage> piclist = new ArrayList<BufferedImage>();  
                Document document = new Document();  
                try {  
                    document.setFile(pdfFile);  
                    } catch (Exception ex) {  
                }  
                float scale = 2.5f;  //缩放比例
                float rotation = 0f;  //旋转角度
                for (int i = 0; i < document.getNumberOfPages(); i++) {  
                    BufferedImage image = (BufferedImage)  
                    document.getPageImage(i,GraphicsRenderingHints.SCREEN,Page.BOUNDARY_CROPBOX, rotation, scale);  
                    piclist.add(image);
                }  
                document.dispose(); 
                yPic(piclist, outpath);  
                is.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
        
        
        public static void yPic(List<BufferedImage> piclist, String outPath) {// 纵向处理图片  
            if (piclist == null || piclist.size() <= 0) {  
                System.out.println("图片数组为空!");  
                return;  
            }  
            try {  
                int height = 0, // 总高度  
                width = 0, // 总宽度  
                _height = 0, // 临时的高度 , 或保存偏移高度  
                __height = 0, // 临时的高度,主要保存每个高度  
                picNum = piclist.size();// 图片的数量  
                File fileImg = null; // 保存读取出的图片  
                int[] heightArray = new int[picNum]; // 保存每个文件的高度  
                BufferedImage buffer = null; // 保存图片流  
                List<int[]> imgRGB = new ArrayList<int[]>(); // 保存所有的图片的RGB  
                int[] _imgRGB; // 保存一张图片中的RGB数据  
                for (int i = 0; i < picNum; i++) {  
                    buffer = piclist.get(i);  
                    heightArray[i] = _height = buffer.getHeight();// 图片高度  
                    if (i == 0) {  
                        width = buffer.getWidth();// 图片宽度  
                    }  
                    height += _height; // 获取总高度  
                    _imgRGB = new int[width * _height];// 从图片中读取RGB  
                    _imgRGB = buffer.getRGB(0, 0, width, _height, _imgRGB, 0, width);  
                    imgRGB.add(_imgRGB);  
                }  
                _height = 0; // 设置偏移高度为0  
                // 生成新图片  
                BufferedImage imageResult = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);  
                for (int i = 0; i < picNum; i++) {  
                    __height = heightArray[i];  
                    if (i != 0) _height += __height; // 计算偏移高度  
                    imageResult.setRGB(0, _height, width, __height, imgRGB.get(i), 0, width); // 写入流中  
                }  
                File outFile = new File(outPath);  
                ImageIO.write(imageResult, "jpg", outFile);// 写图片  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
        
    }


    4:多页pdf转多页图片代码如下

    public static void main(String[] args) {
            String filePath = "E:\\pdf\\C20170613004001.pdf";  
            Document document = new Document();  
            try {  
                document.setFile(filePath);  
                } catch (Exception ex) {  
            }  
            float scale = 2.5f;  
            float rotation = 0f;  
            for (int i = 0; i < document.getNumberOfPages(); i++) {  
                BufferedImage image = (BufferedImage)  
                document.getPageImage(i,GraphicsRenderingHints.SCREEN,Page.BOUNDARY_CROPBOX, rotation, scale);  
                RenderedImage rendImage = image;  
                try {  
                    File file = new File("E:\\pdf\\imageCapture1_" + i + ".png");  
                    ImageIO.write(rendImage, "png", file);  
                    } catch (IOException e) {  
                    e.printStackTrace();  
                }  
                image.flush();  
            }  
            document.dispose();  
        }



    展开全文
  • 话不说,直接上代码 public class PDF2IMAGE { public static void main(String[] args) { if(args!=null && args.length>=4) { String pdfPath = args[0]; String imgPath = args[1]; int dp

    话不多说,直接上代码


    public class PDF2IMAGE {
    	public static void main(String[] args) { 
        	if(args!=null && args.length>=4) {
        		String pdfPath = args[0];
        		String imgPath = args[1];
        		int dpi = Integer.parseInt(args[2]);
        		int flag = Integer.parseInt(args[3]);
        		File file = new File(pdfPath);
        		if(file.isFile()&&file.exists()) { 
        			pdf2Image(pdfPath, imgPath, dpi,flag);
        		}
            
        	}
        	//pdf2Image("D:/hvdGBFLoo.pdf", "D:/pdf", 300,2); 
        }  
      
        /*** 
         * PDF文件转PNG图片 
         * @param PdfFilePath pdf完整路径 
         * @param imgFilePath 图片存放的文件夹 
         * @param dpi dpi越大转换后越清晰,相对转换速度越慢 
         * @param flag 页数 为0则转换全部页数
         * @return 
         */  
        public static void pdf2Image(String PdfFilePath, String dstImgFolder, int dpi,int flag) {  
            File file = new File(PdfFilePath);   
            PDDocument pdDocument;   
            try {  
                String imgPDFPath = file.getParent();  
                int dot = file.getName().lastIndexOf('.');  
                String imagePDFName = file.getName().substring(0, dot); 
                String imgFolderPath = null;  
                if (dstImgFolder.equals("")) {  
                    imgFolderPath = imgPDFPath ;
                } else {  
                    imgFolderPath = dstImgFolder;  
                }  
      
                if (createDirectory(imgFolderPath)) {  
                    pdDocument = PDDocument.load(file);
    				
                    PDFRenderer renderer = new PDFRenderer(pdDocument); 
                    int pages = pdDocument.getNumberOfPages();
                    if(flag > 0) {//大于0则打印具体页数
                        if(flag<pages) {
                        	pages = flag;
                        }
                    }
                   
                    StringBuffer imgFilePath = null;  
                    for (int i = 0; i < pages; i++) {  
                        String imgFilePathPrefix = imgFolderPath+File.separator + imagePDFName;  
                        imgFilePath = new StringBuffer();  
                        imgFilePath.append(imgFilePathPrefix);  
                        imgFilePath.append("-");  
                        imgFilePath.append(String.valueOf(i + 1));  
                        imgFilePath.append(".png");  
                        File dstFile = new File(imgFilePath.toString());  
                        BufferedImage image = renderer.renderImageWithDPI(i, dpi);  
                        ImageIO.write(image, "png", dstFile);  
                    }
                    System.out.println("success");  
                } else {  
                    System.out.println("error:" + "creat" + imgFolderPath + "wrong");  
                }  
      
            } catch (Exception e) { 
    	    System.out.println("Exception");		
                e.printStackTrace();  
            }  
        }  
      
        private static boolean createDirectory(String folder) {  
            File dir = new File(folder);  
            if (dir.exists()) {  
                return true;  
            } else {  
                return dir.mkdirs();  
            }  
        } 
      
    }
    本方案使用的是PDFbox jar包,使用的是JDK1.8。

    编译好的可运行jar包已上传。


    展开全文
  • 可以将PDF文档转换成图片,每页转成一张图
  • 经常会有小伙伴问我,如何将页面的PDF文件拆分成一个个的PDF文件?例如有5个页面的PDF文件,一次性拆分导出生成5个单页面的PDF文件?...今天为大家详细介绍如何将页面pdf分割成一页PDF文件。...

        经常会有小伙伴问我,如何将多页面的PDF文件拆分成一个个的PDF文件?例如有5个页面的PDF文件,一次性拆分导出生成5个单页面的PDF文件?

        PDF文件是我们日常工作学习中经常要用到的,有时候PDF文件篇幅过长,页面过多的时候,如果我们只需要文件中某一个页面时,这时候就需要对文件进行拆分,可以说PDF拆分应该是日常工作中经常要做的事情。那么现在问题来了,如何拆分PDF文件呢?有没有什么工具能够一次性的批量拆分呢?更能提高效率。今天为大家详细介绍如何将多页面pdf分割成一页一页的PDF文件。

    使用工具:迅米PDF转换器软件

    下载地址https://www.xmisoft.com/pdf.html

    步骤1、下载迅米PDF转换器并安装,可通过上文中的下载链接下载,也可以在百度中搜索“迅米PDF转换器”进行下载,软件安全无毒,请放心安装。

    步骤2、打开迅米PDF转换器软件,找到并点击“PDF的其他操作-PDF分割”,再点击右侧功能区添加文件,主要可以同时添加多个PDF文件,支持同时拆分,提高效率

    步骤3、添加完文件后,在软件右上角处设置文件拆分后的保存路径。然后点击右下角“开始转换”按钮,开启PDF拆分操作。

    步骤4、当状态栏中的进度条变成100%时,说明PDF文件拆分完毕。

    步骤5、点击右侧输出按钮,就可以看到分割好的PDF文件,如下图所示,小编颜色的PDF源文件有两页,拆分成了两个PDF文件。

       以上就是多页面pdf分割成一页一页PDF文件的具体操作步骤,简单实用,效率也很nice。迅米PDF转换器是款非常实用的软件,不仅分割PDF文件相当简单,也可以用此工具进行PDF文件合并;转换成Word,Excel,PPT等格式。

     

    展开全文
  • PDF页面合并器是一款Windows系统下...通过PDF页面合并器,您可以方便的输出双页PDF文件,四页页面或者更多页来创建杂志或者刊物的印刷版式。而且PDF页面合并器合并页面速度非常快,通常几秒钟就可以合并完上百个页面。
  • 方法1:最简单的方法就是新建一个Word文档后,将单多张图片批量插入到Word文档中;接着将WordPDF就可以了。点击左上角文件选项卡中的导出,然后选择PDF文档导出就可以了,或者另存为将格式选择为PDF均可。...
  • 编按:日常办公过程中,将Word文档转为图片的情况虽然不常见,但若遇到了总是会难倒一大批人。...在我们日常工作中,有时可能会需要将Word中的每一均生成一张张图片,以防止别人篡改文档内容;或是为...
  • package com.pdf; import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.PdfCopy;...
  • 怎么把多张图片转成一PDF文档

    千次阅读 2014-11-05 10:56:47
    提到JPG图像怎么转换成PDF文件的问题,很办公人士总是不知所措,其实用JPG转换成PDF转换器就可以帮助我们迅速实现两者的转换,转换完成之后,一张JPG格式图片就成为一篇PDF格式的文档,美观又整洁,保证了转换...
  • pdfbox将多页pdf转成多图片

    千次阅读 2018-11-03 15:02:31
    (pdfbox将pdf图片(jpg或者png)首先需要说明的几点事情功能由来引入jar包下面贴上代码关于产生2种报错信息的...本文是借鉴将多页pdf转成1图片的方法修改 功能由来 最近项目要求能够实现office(word, e...
  • 有没有不限制图片张数,几百张也能直接一次转换成PDF,而且还能免费转换的方法呢? 目前市面上的这种转换工具很,不过下载和安装相对比较复杂,如果使用次数不,或者是手机里的图片转换,那在线网页转换就会更...
  •  * 将pdf文件成HDjpg图片  * @param filePath  * @param path  */  public static void pdfToHDjpg(String filePath,String path){  try {  Document document = new Document();  document.setFile...
  • Ireport个报表整合成一张pdf

    千次阅读 2018-09-14 15:40:15
    此时就很尴尬了,因为一般我们做都是引入一个数据源,来制作一个报表,=,现要求个数据源生成多张报表,这该如何是好? 现有两种解决方案: 第一种: 因为可以拿到每个月的数据,for循环同步请求生成pdf,...
  • 包含icepdf-core-4.3.3.jar包及后端代码,将多张PDF转为一张图片,水印、图章无法出,更改代码中文件路径,加入JAR包运行即可。
  • 多页pdf怎样合并成一页?

    千次阅读 2018-06-07 16:20:00
    电脑下载解压后的PDF文件都是多页的,多页PDF怎样合并成一页?工作中我们经常会遇到,所以学会一种方法很重要,接下来就分享我的方法。 1在百度中去搜索关键词迅捷pdf在线转换器,然后进入首页操作 2进入后,在7...
  • 怎么样用PHOTOSHOP把两扫描图片合并在一起 结合我的情况,改良了下过程, 1、将Word文档pdf文档 2、用PS打开pdf文档,选取需要转换的页面(比如p1、p2) 3、在PS新建一个文件,大小取max(p1,p2)
  • ​ 如何将图片合并转换成一PDF文件?如果你是一名上班族,相信很多人都遇到过这个难题,比如你需要将公司的图片宣传册发送给客户,但是公司宣传册是一图片文件,这时候怎么办呢,就是将这些图片统一...
  • PDF格式在我们生活和工作中非常常见,经常用于合同、电子书和出版等方面。有些朋友可能会遇到需要把单页PDF变成双页的...它可将2个或个选定的PDF页面合并在一页PDF页面上并生成一个新的PDF文档。 老规矩,先上图:
  • 职场的弄潮儿都知道怎么将ppt转换成视频、ppt转换成pdf,相信也是为此在工作上受益良,那么今天,小编再给大家带来另一种技巧,那就是怎么将ppt批量转换成图片,并且是一张幻灯片转换成一张图片的。...
  • 电脑上零散的PDF文件也越来越,经常有一些同一类型的文件分成好几个PDF文件,大家都想将相同的文件整理成一PDF文件,这样不仅不会丢失某一部分文件,也方便文件的查找,那么如何把PDF合并成一PDF呢?...
  • PDF合并成一PDF

    2019-05-09 13:57:14
    现如今在办公中使用较的文件格式都为PDF格式,但是在日常操作中,通常会需要将两个文件合并到一起去,但PDF文件又是不可编辑的,不能像别的文件那样复制粘贴,今天小编来给大家讲讲是如何将PDF文件合并在一起的。...
  • 今天我们就一起来康康如何快速将PDF合并成一PDF吧!首先,我们需要一个PDF阅读器,这个阅读器可以是Foxit PDF Editor,也可以是Adobe Acrobat 9 Pro。强推后面一个阅读器,除可以阅读各位喜欢的PDF文档之外,...
  • PDF文档方便阅读、不可直接编辑等特性相信大家都有所了解,但在工作和学习中不可避免的需要将PDF合并成一PDF文档,今天就来分享一下如何免费将PDF合并成一PDF文档吧。1、使用福昕PDF阅读器领鲜版打开...
  • PDF拼接成一页

    2018-08-25 09:57:05
    利用ITextSharp实现PDF页面拼接,实现将两页PDF页面横向拼接成一
  • 提到图片处理,很小伙伴的第一反应都是PS软件。然而也会有人吐槽,PS安装特别麻烦,并不好用!有没有不装PS就搞定各种图片的方法呢?三顿之前给大家分享过PPT中强大的图片处理功能。其实还有更方便的!向你推荐18...
  • 多张图片想要合并成一PDF文档要怎么操作呢?是不是先将图片分别转换成一个个PDF文档,然后再合并?不不不,其实我们可以一次性批量将图片合并成一PDF哦~ 不收费!不收费!不收费! 手把手简易教程来啦!首先...
  • 我们经常会在晚上下载一些资料,根据实际情况需要将个下载后的PDF合并成一个,有哪些方法可以实现PDF合并呢? 方法一: 首先直接双击极速PDF编辑器的快捷方式并运行软件,点击软件右上角“文件”选项卡中的“合并...
  • 扫描的图片如何转换成一PDF文件

    万次阅读 2016-07-06 11:45:40
    在扫描一些文件资料的时候会生成很图片,在整理这些图片时都会按照顺序将图片合成一个文件,一般是需要将这些图片转换成一个文档格式的,如果是需要发送给他人查看一般都会转为PDF文件格式,那么如何将这些扫描...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,950
精华内容 2,780
关键字:

多页pdf转成一张图片