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

    千次阅读 2018-10-12 13:56:43
    pdf转png,可以用php的一个扩展imagick,我使用过程中,老是导致cpu占100%,所以,我又尝试开发了另一种方法,就是有Ghostscript,这种方法也能实现pdf转图片,并可以设置图片类型为png等。下面着重介绍这种方法: ...

        pdf转png,可以用php的一个扩展imagick,我使用过程中,老是导致cpu占100%,所以,我又尝试开发了另一种方法,就是有Ghostscript,这种方法也能实现pdf转图片,并可以设置图片类型为png等。下面着重介绍这种方法:

    在windows上实现如下:

    Pdf2PngforWindows

    这是一个nodejs库,运行环境是Windows,如果你想运行在Linux上,
    请参考:https://github.com/sanpangzi/Pdf2PngforLinux
    本库在windows下,可以把一个多页的pdf转成多个png图片

    怎么使用这个库?

    1. 首先下载到本地任意文件夹,使用之前,确保已安装npm,nodejs
    2. 进入下载后的文件夹,比如:D:\appweb\pdftopngforWindows
      进入之后,运行: npm install
      这个命令,会安装所需的两个模块tmp及filesource
    3. 安装完以上两个模块,就可以运行测试了,测试命令如下:
      node convert.js
      不出意外的话,你会看到test文件夹下,有4张图片,分别是1.png 2.png 3.png 4.png

    说明

    本代码是借助Ghostscript实现的,这个Ghostscript可以像本文一样,直接放入文件夹内,也可以删除本文的executables文件夹,
    自己安装Ghostscript,设置环境变量,在path里加入你的安装路径,如果你安装的是64位的Ghostscript,
    要把D:\appweb\pdftopngforWindows\lib\pdf2png.js里的gs改为gswin64;
    之后,把D:\appweb\pdftopngforWindows\lib\pdfPageCount.js里的gs改为gswin64

    在Linux上实现如下:

    Pdf2PngforLinux

    这是一个nodejs库,运行环境是linux,如果你想运行在windows上,
    请参考:https://github.com/sanpangzi/Pdf2PngforWindows
    本库在Linux下,可以把一个多页的pdf转成多页png图片

    怎么使用这个库?

    1. 首先下载到本地任意文件夹,使用之前,确保已安装npm,nodejs
    2. 进入下载后的文件夹,比如:/usr/local/pdftopngforLinux
      进入之后,运行: npm install
      这个命令,会安装所需的两个模块tmp及filesource
    3. 本代码是借助Ghostscript实现的,这个Ghostscript需要预先安装,安装方法如下:
      sudo apt-get update
      sudo apt-get install ghostscript
    4. 安装完以上两个模块,就可以运行测试了,测试命令如下:
      node convert.js
      不出意外的话,你会看到test文件夹下,有4张图片,分别是1.png 2.png 3.png 4.png

     

    展开全文
  • PDF转png

    2019-12-03 09:59:03
    链接: 迅捷PDF转换器
    展开全文
  • PDF转png.rar

    2020-04-27 10:27:55
    pdf转png图片 源码,用的是mupdf库。附带着另外一个文件有传一个mupdf的库 vs2015版本。可以编译运行。
  • java pdf转png

    2019-12-27 10:44:54
    由于icepdf转png时,如果pdf中存在中文有可能会出现乱码问题,引文pdf转png时,使用pdf中的字体,所以需要使用pdf阅读器查看当前使用的pdf使用的所有字体,尤其是中文字体,务必保证pdf中使用的字体全部安装到服务器...

    方案一 icepdf转png

    入坑指南

    由于icepdf转png时,如果pdf中存在中文有可能会出现乱码问题,引文pdf转png时,使用pdf中的字体,所以需要使用pdf阅读器查看当前使用的pdf使用的所有字体,尤其是中文字体,务必保证pdf中使用的字体全部安装到服务器,有条件的话尽量提前在正式服务器上验证是否会出现乱码,具体查看pdf中使用的全部字体,方法参考:点击查看

    本人不建议使用icepdf这个三方工具类,因为我遇到了服务器上由于字体问题导致乱码问题,解决起来,很麻烦。推荐使用方案二

    使用指南

    项目添加依赖:
    <!-- https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core -->

    <dependency>
        <groupId>org.icepdf.os</groupId>
        <artifactId>icepdf-core</artifactId>
        <version>6.2.2</version>
        <exclusions>
            <exclusion>
                <groupId>javax.media</groupId>
                <artifactId>jai_core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    具体使用的代码:
    /**
     * 根据pdfurl转png图片
     * @param url pdfurl
     * @return 转成本地png文件地址集合,使用后需要删除
     * @throws InterruptedException
     */
    public static List<String> pdf2Image(String url) throws InterruptedException {
        // pdf转成本地png结果集合
        List<String> localPathPngList = Lists.newArrayList();
        Document document = new Document();
        try{
            // 此处会进行url地址的链接解析、流转换
            document.setUrl(new URL(url));
            // 缩放比例
            float scale = 2.0f;
            // 旋转角度
            float rotation = 0f;
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            String toLocalDir = "/Users/wucj/Desktop/pdfToPng/";
            toLocalDir = toLocalDir + uuid+"/";
            Stopwatch stopwatch = Stopwatch.createStarted();
            String toLocalPngPathName = "";
            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 {
                    toLocalPngPathName = toLocalDir+i+".png";
                    File file = new File(toLocalPngPathName);
                    File dirParentFile = new File(file.getParent());
                    if(!dirParentFile.exists()){
                        dirParentFile.mkdirs();
                    }
                    ImageIO.write(rendImage, "png", file);
                    log.info("给定pdf的url转png,url:{},操作成功",url);
                    localPathPngList.add(toLocalPngPathName);
                } catch (IOException e) {
                    log.error("url转png,url:{},异常:{}",url,e);
                }finally {
                    if(null!=image){
                        image.flush();
                    }
                }
            }
            log.info("pdf转png响应耗时:{}毫秒",stopwatch.elapsed(TimeUnit.MICROSECONDS));
            return localPathPngList;
        }catch (Exception e){
            log.error("给定pdf的url:{}链接建立异常:{}",url,e);
            return Lists.newArrayList();
        }finally {
            if(null!=document){
                document.dispose();
            }
        }
    }

    方案二 pdfbox转png 

    <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>fontbox</artifactId>
                <version>2.0.15</version>
            </dependency>
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>2.0.15</version>
            </dependency>
    @Slf4j
    public class PdfBoxToPngUtils {
    
        private static final String toLocalDir = "/data/logs";
    
        /**
         * pdf url地址转图片
         * @param pdfUrl pdf url
         * @return List<String>
         */
        public static List<String> pdfToPngAndUpload(String pdfUrl){
            List<String> localFilePathList = pdfUrlToLocalPdf(pdfUrl);
            if(CollectionUtils.isEmpty(localFilePathList)){
               return Lists.newArrayList();
            }
            // 文件名称
            String localFileName = "";
            // png文件的后缀
            String pngSuffix = ".png";
            // 转换成功之后的png url
            String pngUrl = "";
            List<String> pngUrlList = Lists.newArrayList();
            for (String localFilePath : localFilePathList) {
                String[] localFilePathArr = localFilePath.split("\\/");
                if(localFilePathArr.length>1){
                    localFileName = localFilePathArr[localFilePathArr.length-1];
                }
                try{
                    if(!StringUtils.isBlank(localFileName)&&localFileName.contains(pngSuffix)){
                        pngUrl = CloudUtil.uploadFile(UcloudConfig.BUCKET_DEVELOP, localFilePath, localFileName);
                        if(!StringUtils.isBlank(pngUrl)){
                            pngUrlList.add(pngUrl);
                        }
                    }else{
                        log.info("本地临时文件:{},上传至ucloud地址:{}",localFilePath,pngUrl);
                    }
                }catch (Exception e){
                    log.error("本地临时文件:{}上传至ucloud异常:{}",localFilePath,e);
                }finally {
                    // 本地文件上传至服务器之后,删除本地缓存
                    log.info("删除本地文件,{}", localFilePath);
                    com.mryx.fms.invoice.common.util.FileUtils.deleteFile(localFilePath);
                }
            }
            return pngUrlList;
        }
    
    
        /**
         * 网络pdf url文件转图片
         * @param url pdf网络文件
         * @return 集合
         */
        public static List<String> pdfUrlToLocalPdf(String url){
            String filePath = toLocalDir+"/"+ UUIDUtil.create() +".pdf";
            try{
                org.apache.commons.io.FileUtils.copyURLToFile(new URL(url),new File(filePath),1000*60,1000*60);
            }catch (Exception e){
                log.error("pdfbox转png异常:{}",e);
                return Lists.newArrayList();
            }
            try{
                return pdfToImagePath(filePath);
            }catch (Exception e){
                log.error("pdfbox转png异常:{}",e);
                return Lists.newArrayList();
            }finally {
                // 删除本地保存的临时文件
                FileUtils.deleteQuietly(new File(filePath));
            }
        }
    
        /**
         * 将PDF按页数每页转换成一个jpg图片
         * @param pdfFilePath 本地pdf文件路径
         * @return 转换后的图片本地地址集合
         */
        public static List<String> pdfToImagePath(String pdfFilePath){
            List<String> list = new ArrayList<>(16);
            String imagePath;
            File file = new File(pdfFilePath);
            PDDocument doc = null;
            try {
                File f = new File(toLocalDir);
                if(!f.exists()){
                    f.mkdir();
                }
                doc = PDDocument.load(file);
                PDFRenderer renderer = new PDFRenderer(doc);
                int pageCount = doc.getNumberOfPages();
                for(int i=0; i<pageCount; i++){
                    /**
                     * 方式1,第二个参数是设置缩放比(即像素) renderImageWithDPI(i, 296);
                     * 方式2,第二个参数是设置缩放比(即像素) 第二个参数越大生成图片分辨率越高,转换时间也就越长
                     */
                    BufferedImage image = renderer.renderImage(i, 1.25f);
                    imagePath = toLocalDir + "/"+UUIDUtil.create() + ".png";
                    ImageIO.write(image, "PNG", new File(imagePath));
                    list.add(imagePath);
                }
            } catch (IOException e) {
                log.error("pdfbox转图片异常:{}",e);
            }finally {
                if(null!=doc){
                    try {
                        // 关闭文件,不然该pdf文件会一直被占用。
                        doc.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return list;
        }
    
    }

     

    展开全文
  • 生成方法 和jar包
  • PDF转PNG或者BMP格式的工具,可以直接转成BMP格式的图片,单色,彩都可以
  • icepdf-core-6.3.2pojie.jar pdf转png无水印
  • python中PDF转png图片

    2019-12-17 16:41:03
    python中PDF转png图片: 调用第三方文件 :mutool 官方文档:https://mupdf.com/docs/manual-mutool-draw.html def convert_pdf_to_png(request_id, pdf_data,image_saving_path): # pdf_data pdf文件流。image_...

    python中PDF转png图片:

    调用第三方文件 :mutool

    官方文档:https://mupdf.com/docs/manual-mutool-draw.html

     
        # mutool command usage "mutool draw -r resolution -o output pdfsource [page 1,5,10-15]"
        command = '%s draw -r 200 -o %s/out%%d.png %s' % (mutool, root_path, pdf_file_path)   # 转换为png %d会默认对应pdf的页数
        
        
    
    
    展开全文
  • PDF转换png.zip

    2019-07-30 09:38:02
    可以将PDF文件转换为PNG图片格式保存在指定的文件夹内
  • PDF转PNG图片

    2017-08-03 16:18:12
    提供PDF格式的图片成单色或者多色的PNG图片。因代码量大,无法全部上传。可以留邮箱私发。
  • PDF转PNG小工具.exe

    2020-09-02 16:29:48
    1.将程序放到PDF文件堆里 2.点击按钮后可将PDF转换为PNG 3.转换完成后程序自动关闭并删除pdf文件
  • 如何在Java中将PDF转换为PNG或JPG对于以dcopy 和digitally形式共享文档,PDF文件格式是首选。 由于PDF格式具有高度的多功能性和不同操作系统之间的兼容性,因此用户可以创建,编辑,加密和锁定重要文档,以便在任何...
  • 轻松实现各种文档格式转换,doc转pdf、doc转png图片、pdf转png图片,可以实现Windows、Linux、MacOS平台上部署,可以通过命令行、shell脚本、python等方式调用。 实现效果:已经可以通过一个函数方法进行调用实现...
  • 关于 php pdf转png的解决方案。

    千次阅读 2017-08-31 17:02:37
    忙忙碌碌了俩天的时间,终于把项目pdf转png所遇到的一些问题搞的差不多了, 趁空闲时间把自己遇到的一些坑和大家分享下。网上关于php pdf转png的解决方案有的很简单的就说了下 用ImageMagic 读入pdf,然后传入参数...
  • java pdf png_java pdf转png

    2021-02-12 22:44:34
    import org.apache.pdfbox.pdmodel....import org.apache.pdfbox.rendering.PDFRenderer;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.imageio.ImageIO;import java.awt.image.Buf...
  • 将各种各样的pdf转成图片,是比较普遍的需求,不过目前的各种转换器,不是收费,就是限制转换数量,要不就是强制加水印,很烦。 这里我们使用PS打开PDF,然后使用PS的宏,一键将图片保存到本地 一、使用PS打开...
  • 自己写了一个PPT/PPTX/PDF转PNG的程序,用POI转PPT和PPTX,用PDFBOX转PDF 基本解字体不识别的问题(比如有些lunix系统不能识别个别字体).如果还有字体问题,可以把所有字体设置成宋体
  • 使用icepdf 5.0.4做的pdf转png 转html的demo 5.0.4 pro性能比之前的都好,内存占用更少,字库更全面。 试过网络上4.3.2去水印版 ,在文件较大时候都会内存溢出,而且有些pdf的中文乱码(也有些可以)。 demo里...
  • pdf转png-分割pdf合并pdf

    2020-02-17 22:01:46
    PDF文件转换成多种图片格式工具 v4.1 绿色免费版 https://www.cr173.com/soft/36079.html http://dx.198424.com/soft3/ap_pdf_to_image.zip PDF文件合并分割工具 pojie版 ...
  • PHP pdf png

    2020-07-02 15:07:38
    $s = pdf2png($pdf,DIR_STORAGE.'/rma_excel/'); 6.注意点 这东西坑的很,本质上调的是ImageMagick Display的接口 特别要注意php版本和ImageMagick的匹配,phpinfo中会给出需要安装的软件版本 一旦遇到readImage的...
  • 针对python的pdf转png的一些问题总结 参考大神的方法,原文:https://blog.csdn.net/sweeper_freedoman/article/details/53000145 直接copy了代码过来发现了一些问题,很初级,但对于初学python和使用命令行...
  • Java中word转pdf转png

    2021-04-13 15:35:54
    --word转pdf--> <dependency> <groupId>com.documents4j</groupId> <artifactId>documents4j-local</artifactId> <version>1.0.3</version> </depend.
  • Python的PDF转PNG图片

    2020-06-29 22:19:52
    下面的代码为PDF转PNG图片的代码,upload_house_image()函数 def upload_house_image(request): from datetime import datetime import fitz url_list = [] # 因为PDF是多页图片,所以要用list类型将这些图片...
  • 本文将介绍如何使用Java程序来将PDF文档转换为PNG图片、HTML、Word、SVG及XPS格式。一、使用工具及环境创建环境创建:方法1:首先,通过官网下载获取Free Spire.PDF for Java;其次,解压后找到lib文件夹下的Spire....
  • PDF PNG JPG 操作

    2018-11-12 10:58:00
    gs -dSAFER -dBATCH -dNOPAUSE -r300 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sDEVICE=pnggray -sOutputFile=test.png -dFirstPage=1 -dLastPage=1 OUT.pdf gs -dSAFER -dBATCH -dNOPAUSE -r300 -...
  • 因为有好几种方法,但大都有问题,试用pdfbox转换的时候PDF竖线都很粗 ![图片说明](https://img-ask.csdn.net/upload/201807/10/1531211655_380731.png) 因不知什么原因导致,试用了第二种方法icepdf转换,但都是...
  • python中pdf转png图片

    2021-02-25 10:40:01
    pdf按照图片保存。 代码 pdf_dir = [] chdir(Address) # 填文件地址 # 找pdf文件 docunames =listdir() # 读取该地址下的文件 if docunames == False: print("无文件") for docuname in docunames: # 遍历文件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,811
精华内容 724
关键字:

pdf转png