精华内容
下载资源
问答
  • XZ_iOS 之将WKWebView转成PDF然后再生成图片保存到相册
    2020-08-07 15:22:10

    web页中有个'下载'按钮,需求想让点击'下载'的时候把图片下载到相册,查看web页发现,需要保存到相册的内容是PDF,不是图片,因为这个web页面是银行的,不是我们自己的,而且没法直接拿到这个PDF的下载地址进行文件下载;

    想着就先把web页内容转换成PDF,然后把PDF文件转成图片保存到相册中,以下是实现的代码:

    1、将WKWebView转成PDF

    import UIKit
    
    class PDFRender: UIPrintPageRenderer {
        // A4纸大小 595*842
        let pageFrame:CGRect = CGRect(x: 0.0, y: 0.0, width: 595.2, height: 841.8) 
        
        override init() {
            super.init()
            
            // 设置打印纸的尺寸大小
            self.setValue(pageFrame, forKey: "paperRect")
            // 设置内容区域大小
            self.setValue(pageFrame, forKey: "printableRect")
        }
        /// 绘制PDF并生成NSData
        func drawPDF() -> NSData! {
            
            let data:NSMutableData = NSMutableData()
            // 小心!第二个参数如果设置为CGRect.zero,PDF尺寸就会是默认的 612*792
            UIGraphicsBeginPDFContextToData(data, pageFrame, nil)
            self.prepare(forDrawingPages: NSRange.init(location: 0, length: self.numberOfPages))
            
            let bounds:CGRect = pageFrame
            for i in 0..<self.numberOfPages{
                UIGraphicsBeginPDFPage()
                self.drawPage(at: i, in: bounds)
            }
            UIGraphicsEndPDFContext()
            return data
        }
    }
    
    // 调用方法
    private func PDFRenderToImage() {
            DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.5, execute: {
                // 创建打印渲染
                let printPageRenderer: PDFRender = PDFRender()
                // 获取渲染格式
                let viewFormatter: UIViewPrintFormatter = self.webView.viewPrintFormatter()
                // 设置渲染格式
                printPageRenderer.addPrintFormatter(viewFormatter, startingAtPageAt: 0)
                // 将HTML渲染为PDF
                let pdfData: NSData = printPageRenderer.drawPDF()
                // 输出文件
                let pdfFilename: String = "\(NSHomeDirectory())/Documents/test\(NSDate()).pdf"
                // 保存
                pdfData.write(toFile: pdfFilename, atomically: true)
                //                // 获取文件的保存位置
                //                let url = URL.init(fileURLWithPath: pdfFilename)
                print("-------文件的保存位置", pdfFilename)
                let handler = XZPDFToImage()
                handler.getUIImage(fromPDFPage: 1, filePath: pdfFilename) { (isSuccess) in
                    
                    self.hiddenAnimation()
                    
                    if isSuccess {
                        self.showMessage(msg: "保存成功!")
                    }else {
                        self.showMessage(msg: "保存失败!")
                    }
                }
            })
            
        }

    2、PDF转图片保存到相册

    .h
    typedef void(^saveCompletion)(BOOL isSuccess);
    @property (copy, nonatomic) saveCompletion saveCompletion;
    /// 将web页转换成html
    - (void)getUIImageFromPDFPage: (int)page_number filePath: (NSString*)pdfPath completion: (saveCompletion)completion;
    
    .m
    - (void)getUIImageFromPDFPage: (int)page_number filePath:(NSString*)pdfPath completion: (saveCompletion) completion {
        self.saveCompletion = completion;
        NSURL *filePath = [NSURL fileURLWithPath: pdfPath];
        //读取PDF原文件的大小
        CGPDFDocumentRef doc = CGPDFDocumentCreateWithURL((__bridge CFURLRef)filePath);
        CGPDFPageRef page =CGPDFDocumentGetPage(doc,1);
        CGRect pageRect = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);
        pageRect.origin = CGPointZero;
        pageRect.size.height = pageRect.size.height*2;
        pageRect.size.width = pageRect.size.width*2;
        //开启图片绘制 上下文
        UIGraphicsBeginImageContext(pageRect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        // 设置白色背景
        CGContextSetRGBFillColor(context,1.0,1.0,1.0,1.0);
        CGContextFillRect(context,pageRect);
        CGContextSaveGState(context);
        // 进行翻转
        CGContextTranslateCTM(context, -pageRect.size.width/2, pageRect.size.height*1.5);
        CGContextScaleCTM(context,2, -2);
        CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
        CGContextSetRenderingIntent(context, kCGRenderingIntentDefault);
        CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, pageRect,0,true));
        CGContextDrawPDFPage(context,page);
        CGContextRestoreGState(context);
        UIImage *pdfImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        [self saveImage:pdfImage];
    }
    
    - (void)saveImage:(UIImage*)image { UIImageWriteToSavedPhotosAlbum(image,self,@selector(image:didFinishSavingWithError:contextInfo:), (__bridge void*)self);
    }
    
    - (void)image:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo {
        if(!error) {
            if (self.saveCompletion) {
                self.saveCompletion(YES);
            }
        }else{
            if (self.saveCompletion) {
                self.saveCompletion(NO);
            }
            NSLog(@"失败");
        }
    }

     

    更多相关内容
  • Spire.PdfPDF成图片

    2020-08-26 11:06:54
    Spire.Pdf.dll,可以把PDF成图片,实测.net core可以,压缩包里包含Spire.Pdf.dll和Spire.License.dll
  • 需求是一个导出pdf的功能,多方奔走终于实现了,走了不少弯路,而且怀疑现在这个方法仍是弯的。 有个jsPDF 插件可以在前端直接生成pdf,很简便,但不支持IE。... // 生成base64图片数据 var dataUrl = canvas.toData
  • 实现一键选择PDF,自动将PDF转换为图片,并分页插入图片到Word当前行,每个图后有一个分页符。支持Word2013-2016,C#Net4.0开发。
  • 可将PDF文件多页面转换jpg高质量图片,方便后期调整打印。
  • pip3 install pdfminer.six pip3 install pdf2image pdf_decompose.py #!/usr/bin/python3 # -*- coding: utf-8 -*- import io import os import sys import time from pdfminer.pdfparser import PDFParser from ...
  • 通过Aspose.Pdf.dll来获取pdf中嵌入的图片,包括pdf各页面中的图片和占全页面的图片
  • pdf文件保存图片, 每页pdf转换为一张png格式的图片; 使用Python语言编写,需安装PyMuPDF模块
  • 保存网页,图片生成pdf,抓取网页生成pdf,研究这个好几天,终于搞定了分享给大家;可以设置你想抓取的网页,保存图片后再生产pdf
  • .NET 将PDF转换为图片Demo 亲测可用 使用Magick.NET,使用...注:本Demo 是将PDF按页数转换为多张图片(可转换其中某页,最后一页或者第一页需要自己更改代码),不是转换成一张图片(此类需求的勿浪费资源下载,谢谢)
  • 开发工具为VS2013, 本案例是引用O2S.Components.PDFRender4NET.dll,并且该DLL进行了PJ 去除了水印部分。文件导入、图片清晰度调解等功能目前比较完善,编译后可以直接使用。
  • C#图片转换二进制流并且保存到sql server数据库.pdf
  • PDF转换成图片(JPG,PNG)使用ICEPDF并且去掉自带水印
  • 1.将页面html转换成图片 npm install html2canvas --save 2.在需要导出的页面引入 import html2canvas from 'html2canvas'; 在 methods 中添加方法 dataURLToBlob(dataurl) {//ie 图片转格式 var arr = dataurl...
  • 如何将PDF文件保存成高清的图片

    千次阅读 2021-05-25 13:02:47
    很多小伙伴会采用截图的方法将PDF文件变成图片形式,就是打开PDF文件后,利用QQ或者微信截图的方法进行截图,然后保存成png或者jpg图片,这种方法也好用,但是截图生成的图片不是高清而且效率不高,如果PDF文件较多...

        Pdf格式的文件在我们的工作中是非常常使用的一种文件格式,尤其在传输阅读打印这方面,使用起来比其他的文件形式更方便好用。在日常工作中我们经常需要将PDF文件保存成一张一张的高清图片文件,方便我们在工作中使用,这就设计到PDF文件的转换问题了。

        很多小伙伴会采用截图的方法将PDF文件变成图片形式,就是打开PDF文件后,利用QQ或者微信截图的方法进行截图,然后保存成png或者jpg图片,这种方法也好用,但是截图生成的图片不是高清而且效率不高,如果PDF文件较多就不好用这个方法了。今天在这里教大家一个快速简单的转换方法。如何将PDF文件保存成高清的图片?

    使用软件:迅米PDF转换器

    软件下载:https://www.xmisoft.com/download/XMPDF6.6.0.exe

    据图步骤详解:

    步骤1,安装迅米PDF转换器后打开,软件左侧列表区域为功能列表,我们找到并点击【文件转图片】功能,然后进入下一步操作。

    步骤2,接下来我们就需要将PDF文件添加导入到软件中去,我们只需要点击两个“添加文件”中的任意一个,就可以添加PDF文件了。 可以同时添加多个PDF文件批量转换成图片哦。

    步骤3,如下图所示点击“开始转换”按钮,开启转换操作,我们只需要等待软件转换成功即可。

    步骤4,当软件中的转换进度条变成100%的时候,说明PDF文件成功的保存成了高清的图片,点击右边的“输出”图标按钮,就可以打开查看转换成的图片文件了。

        以上就是关于如何将PDF文件保存成高清的图片的解决方法了,是不是很简单呢,即使你的PDF文件有很多页面,也能轻松快捷的保存成图片,希望这个方法对您有所帮助!

     

    展开全文
  • 将视频文件按帧保存成图片知识.pdf
  • 移动端预览PDF及转成图片保存

    千次阅读 2021-06-02 15:13:45
    移动端预览PDF及转化为图片保存一、iframe标签预览pdf二、vue-pdf 预览pdf(可自行封装弹出等效果)1.下载依赖包2.1上下滑动式2.3分页式三、pdf.js(可预览可下载) 将pdf--->canvas--->图片 由于微信中苹果限制,...

    欢迎点击: 个人官网博客

    由于微信中苹果限制,是无法保存下载pdf文件的(除非后端处理),安卓可以(会自动跳转到系统自带浏览器下载)。但是为了让用户能保存pdf,就只有改需求将其转化为图片,图片在微信是不受限制可以保存的。


    一、iframe标签预览pdf

    <iframe src="/index.pdf" width="100%" height="100%">
         This browser does not support PDFs. Please download the PDF to view it: 
    </iframe>
    

    缺点:
    1.在移动端上显示时不能全部展示完全
    2.iframe在iPhone上宽度被撑开
    3.iframe在iPhone上滚动条失效
    …等等一系列问题(不推荐)

    二、vue-pdf 预览pdf(可自行封装弹出等效果)

    1.下载依赖包

    npm install --sava vue-pdf
    

    2.组件封装

    2.1上下滑动式

    预览:
    在这里插入图片描述

    当pdf文件比较大的时候,加载比较慢,可以适当加loading或骨架屏增加用户体验

    <template>
      <div class="m-area">
         <p class="u-title">电子合同签署</p>
          <pdf v-for="index in numPages" :key="index" :src="pdfUrl" :page="index" />
          <button type="button" class="u-button" >同意签署</button>
      </div>
    </template>
    	<script>
    import pdf from "vue-pdf"; // 引入pdf组件
    export default {
      components: { pdf }, // 引入pdf组件
      data() {
        return {
          loaded: false,
          numPages: "",
          pdfUrl:''//pdf文件路径,记住如果是本地pdf文件,pdf放在public文件夹下,否则路径报错
        };
      },
    
      created() {
        document.body.style.background = "#FFFFFF";
        document.body.style.margin = 0;
        // 同时设置html和body元素,禁用其横向滚动条
        // docEl.style.overflowX = 'hidden'
        document.body.style.overflowX = 'hidden'
        this.loadPdf();
      },
    
      methods: {
        // 上下滚动pdf加载
        loadPdf() {
          this.pdfUrl = pdf.createLoadingTask(this.pdfUrl);
          this.pdfUrl.promise.then((pdf) => {
            this.$nextTick(() => {
              this.numPages = pdf.numPages; // pdf总页数
              this.loaded = true;
            });
          });
        },
      },
    };
    </script>
    

    2.2分页式

    组件代码比较长:可自行下载查看
    demo代码
    在这里插入图片描述

    三、pdf.js(可预览可下载) 将pdf—>canvas—>图片

    在这里插入图片描述
    在这里插入图片描述

    核心文件为pdf.min.js,pdf.worker.min.js,一个负责API解析,一个负责核心解析。

      <script src="https://cdn.bootcdn.net/ajax/libs/pdf.js/2.0.95/pdf.min.js"></script>
      <script src="https://cdn.bootcdn.net/ajax/libs/pdf.js/2.0.95/pdf.worker.min.js"></script>
    

    html:

    <div id="imgDiv" style="display: none;"></div>
    <img style="width: 100%;" v-bind:src="imgUrl" ref='aaa' alt="">
    

    js:

                     urlToBlob() {
                            let that=this
                            let file_url ='./a.pdf'
                            let xhr = new XMLHttpRequest();
                            xhr.open("get", file_url, true);
                            xhr.responseType = "blob";
                            xhr.onload = function () {
                                if (this.status == 200) {
                                    that.file=this.response
                                    that.showPdf(that.file)
                                }
                            };
                            xhr.send();
                        },
                        openPage(pdfFile, pageNumber, context) {
                            var scale = 2;
                            let that=this
                            pdfFile.getPage(pageNumber).then(function (page) {
                                viewport = page.getViewport(scale); // reference canvas via context
                                var canvas = context.canvas;
                                canvas.width = viewport.width;
                                canvas.height = viewport.height;
                                // 记录当前canvas的width,height
                                window.wi = canvas.width;
                                window.he = canvas.height;
                                canvas.style.width = "100%";
                                canvas.style.height = "100%";
                                var renderContext = {
                                    canvasContext: context,
                                    viewport: viewport
                                };
                                page.render(renderContext);
                                //setTimeout(()=>{
                                   // that.imgUrl=canvas.toDataURL("image/png");
                               // },500)
                            });
                            return;
                        },
                        showPdf(files) {
                            /*pdf.js无法直接打开本地文件,所以利用FileReader转换*/
                            var reader = new FileReader();
                            reader.readAsArrayBuffer(files);
                            let that=this
                            reader.onload = function (e) {
                                var myData = new Uint8Array(e.target.result)
                                var docInitParams = {
                                    data: myData
                                };
                                var typedarray = new Uint8Array(this.result);
                                PDFJS.cMapUrl = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.288/cmaps/';
                                PDFJS.cMapPacked = true;
                                PDFJS.getDocument(typedarray).then(function (pdf) { //PDF转换为canvas
                                    $("#imgDiv").css("border", "0"); //清除文本、边框
                                    if (pdf) {
                                        window.pageNum = pdf.numPages;
                                        $("#pagesText").text(pageNum);
    
                                        for (var i = 1; i <= pageNum; i++) {
                                            var canvas = document.createElement('canvas');
                                            canvas.id = "pageNum" + i;
                                            $("#imgDiv").append(canvas);
                                            var context = canvas.getContext('2d');
                                            that.openPage(pdf, i, context);
                                        }
                                    }
                                });
                            };
                        },```
    
    
    展开全文
  • 将当前文件夹下的图片保存到一个pdf中,支持选择pdf大小等 如果有需要可以遍历它下面的所有文件夹 简单的来说完全满足我将漫画转成pdf格式的需求了。 碰到了一些问题,这里记录下: 一、中文路径: 这个实在是略蛋疼...
  • ASP.NET PDF图片

    2019-03-06 16:01:37
    ASP.NET PDF图片,并且在线预览,使用VS2015开发的一个小DEMO程序源码,通过FileUpload将PDF文件上传至服务器,再将PDF转换为Image进行保存 直接下载运行就可以看到效果
  • 1. 本程序为.net4.0开发的,...2. 程序功能为导出html网页内容到pdf文件和图片格式文件,pdf文件导出主要是以itextsharp.dll和itextsharp.xmlworker.dll相关功能实现;文件包含源代码和生成的exe文件,有需要的请下载。
  • html渲染页面转换为pdf并设置页眉,页码,水印,目录,二维码
  • 最近一直研究PDF图片,发现一篇挺好的文章,登记起来,方便使用 1、【O2S.Components.PDFRender4NET.dll】,第三方DLL,可以实现PDF图片,支持32位系统、64位系统(部分第三方dll在64位系统下运行报错)。 ...
    

    最近一直研究PDF转图片,发现一篇挺好的文章,登记起来,方便使用

    1、【O2S.Components.PDFRender4NET.dll】,第三方DLL,可以实现PDF转图片,支持32位系统、64位系统(部分第三方dll在64位系统下运行报错)。

    官方试用版的dll左上角会有一排红色水印,下面这个是破解版的没有水印,这个使用2年的,出现问题是部分PDF文档转换后会自动缩小比率

    DLL 下载地址:http://download.csdn.net/detail/shi0090/4066107
    测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068558

     

    2、【Acrobat.dll】,Adobe官方提供的接口,可以实现PDF转图片。这个方法需要安装Adobe Acrobat X Pro,从安装文件找到Acrobat.dll引用到项目中。

    毕竟是Adobe官方提供的接口,其转换效率要比其他的DLL要快多了,而且应该更可靠一些,但是在IIS下运行会比较麻烦

    如果对转换速度、图片质量要求很高的童鞋,可以参考此方案,但是实现过程太麻烦,大家自己权衡。

    测试工程 下载地址: http://download.csdn.net/detail/shi0090/4068502

    参考地址:http://www.codeproject.com/Articles/5887/Generate-Thumbnail-Images-from-PDF-Documents


    3、【PDFLibNet.dll】,第三方DLL,只支持32位系统,可以实现PDF转图片,下面这个版本没有水印。

    DLL 下载地址:http://download.csdn.net/detail/shi0090/4066096

    测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068522

     

    4、【SautinSoft.PdfFocus.dll】,第三方DLL,可以实现PDF转图片,但转出来的图片左上角有一排红色水印。

    DLL 下载地址:http://download.csdn.net/detail/shi0090/4066111
    测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068561

     

    5、【TallComponents.PDF.Rasterizer.dll】,第三方DLL,可以实现PDF转图片,但转出来的图片有个较大的水印。

    DLL 下载地址:http://download.csdn.net/detail/shi0090/4066112

    测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068563

     

    6、【Apitron.PDF.Rasterizer.dll】,第三方DLL,可以实现PDF转图片,但转出来的图片有个较大的红色水印。

    DLL 下载地址:http://download.csdn.net/detail/shi0090/5814803

    测试工程 下载地址:http://download.csdn.net/detail/shi0090/5814857

     

    7、【XpdfRasterizer.dll】,第三方DLL,可以实现PDF转图片。

    DLL 下载地址:http://download.csdn.net/detail/shi0090/4066115
    测试工程 下载地址:这个弄不见了,如果使用要使用这个的话,一定要注意Regsvr32注册,要不然转换会失败的。

     

    8、【abcpdf.dll】,第三方DLL,可以实现PDF转图片,但是需要安装abcpdf,所以使用起来不算太放方便。

    DLL 下载地址:http://download.csdn.net/detail/shi0090/4066144
    测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068564

     

    9、【Ghostscript】,第三方DLL,可以实现PDF转图片,只支持32位系统,貌似网上很多人都会采用这个方法(据说功能强大)

    DLL  下载地址:http://download.csdn.net/detail/shi0090/4066005
    测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068486
    参考地址:http://www.codeproject.com/Articles/317700/Convert-a-PDF-into-a-series-of-images-using-Csharp.aspx
    参考地址:http://www.codeproject.com/Articles/32274/How-To-Convert-PDF-to-Image-Using-Ghostscript-API

     

    10、【ImageMagick】,C语言开源PDF处理工具,可以将实现PDF转换图片

    DLL和源码 下载地址:http://download.csdn.net/detail/shi0090/4066040

     

    11、【iTextSharp.dll】,C# 开源PDF处理工具,可以任意操作PDF,并可以提取PDF中的文字和图片,但不能直接将PDF转换成图片。
    DLL和源码 下载地址:
    http://download.csdn.net/detail/shi0090/4065982
    中文帮助文档 下载地址:http://download.csdn.net/detail/shi0090/4065986
    提取文字测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068429
    提取图片测试工程 下载地址:http://download.csdn.net/detail/shi0090/4068428
    官方网站:http://itextpdf.com/

     

    12、【PdfSharp.dll】,C# 开源PDF处理工具,可以任意操作PDF,也可以实现从PDF提取图片,但不能直接将PDF转换成图片。
    DLL和源码 下载地址:
    http://download.csdn.net/detail/shi0090/4066060 
    提取图片测试工程 下载地址:
    http://download.csdn.net/detail/shi0090/4068448 

    以上两个开源C#工具都可以很好处理PDF文档,但不满足我的要求直接把PDF转成IMAGE。

     

    13、QQ群里有人推荐【PDFToX.dll】速度和质量都不错,就是不太稳定,有兴趣的朋友可以自行研究一下~

    官方网站:http://www.ycanpdf.cn/

    官方下载:http://www.ycanpdf.cn/software/PDFtoX.rar

    展开全文
  • PDF转为图片

    2015-07-18 21:09:39
    使用C++实现的PDF转为图片格式,可以把PDF文件按页转换成图片保存
  • 图像处理工具可用来处理PDF文件时进行主要是图像处理!本人通过Python调用它进行PDF转换图片使用!工具地址:https://gitee.com/lmay/pdf_transform
  • matlab中的图片保存技巧第二种方式是用copy 命令 copy metafile 格式(通过copy option 项选定)到剪切板上,然后直接粘贴到word 文件中,双击图片,选择’填充‘项为无,即可对图片中的任意曲线编辑,也可以在...
  • 使用Python将PDF转换成图片

    万次阅读 2022-04-07 13:02:32
    在Windows环境下搭建环境 1.1 安装Python库   需要安装的库是pdf2image,可通过命令进行安装: pip install pdf2image   需要注意的是,如果下载速度过慢,如产生异常信息为:pip._vendor.urllib3.exceptions....
  • savePDF 是一个简单的函数,可以很好地裁剪 MatLAB 图形并将其保存PDF 到指定目录。 如果该目录不存在,则创建一个。 plot_name = 图形的名称(例如,'My_Figure') plot_path = 要保存PDF 的文件夹(例如,'...
  • python将图像保存pdf图片

    千次阅读 2021-01-29 17:17:48
    #加一个文件夹import time ,os #获取日期time1=time.strftime('%Y-%m-%d')sv_path='pre_data/'+time1os.makedirs(sv_path,exist_ok=True)plt.savefig(f'{sv_path}/predict%d.pdf'%i)#保存文件在指定文件夹下很方便...
  • 网页保存图片pdf

    2018-08-21 17:09:40
    利用wkhtmltox库将网页保存图片pdf的demo,本人在VS2010下测试没有问题可以运行。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,271
精华内容 24,508
关键字:

pdf怎么保存成图片