PDF 获取与展示

利用pdfplumber提取pdf文档内容 介绍 pdf是一种便携式文档格式,由Adobe公司设计。因为不受平台限制,且方便保存和传输,所以pdf非常受欢迎。目前市场上有很多pdf工具,大部分是阅读类,也有支持对pdf的修改、转换等功能,但这部分工具不少是收费的。这里介绍一个开源python工具库-pdfplumber,可以方便地获取pdf的各种信息,包括文本、表格、图表、尺寸等。 利用pdfplumber提取pdf中表格数据 利用.extract_tables( )可以输出pdf中的多有表格 ... 阅读详情

如何在APP中展示PDF,PPT等文件

最近项目需要展示PDF PPT 等文件,对于这方面压根是毫无头绪。。 google 百度 翻墙 各种查找,把查找到的资料 拆分试验终于成功!!!!


接下来讲解下我的心得

1.如果你的pdf文件是在项目中的话使用下面的方法。

这里写图片描述

下面是从项目的获取pdf文件

 NSURL *URL = [[NSBundle mainBundle] URLForResource:@"sample" withExtension:@"pdf"];

首先执行代理方法

@interface MTViewController ()<UIDocumentInteractionControllerDelegate>

//把它设置成属性比较方便
@property (strong, nonatomic) UIDocumentInteractionController *documentInteractionController;

方法一

直接使用UIDocumentInteractionController功能直接展示

// Initialize Document Interaction Controller
        self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];

        // Configure Document Interaction Controller
        [self.documentInteractionController setDelegate:self];

        // Preview PDF
        [self.documentInteractionController presentPreviewAnimated:YES];

方法二

弹出视图选择使用系统安装的应用查看

// Initialize Document Interaction Controller
        self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:URL];

        // Configure Document Interaction Controller
        [self.documentInteractionController setDelegate:self];

        // Preview PDF
         [self.documentInteractionController presentOpenInMenuFromRect:self.view.bounds inView:self.view animated:YES];

遵守协议

#pragma mark Document Interaction Controller Delegate Methods
- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller {
    return self;
}

2.如果你的pdf文件是从服务器获取的话。

比如说你获取到fileUrl

//File Url
    NSString* fileUrl = @"http://bmob-cdn-342.b0.upaiyun.com/2016/05/20/f1a18cb2445642dc922de1702e36f23f.pdf";

首先把该pdf下载存储到沙盒中

    //设置下载文件保存的目录
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString* _filePath = [paths objectAtIndex:0];
  //Encode Url 如果Url 中含有空格,一定要先 Encode
    fileUrl = [fileUrl stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

使用AFNetwork 下载

 //创建 Request
    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL URLWithString:fileUrl]];
    NSString* fileName = @"down_form.pdf";
    NSString* filePath = [_filePath stringByAppendingPathComponent:fileName];

    //下载进行中的事件
    AFURLConnectionOperation *operation =   [[AFHTTPRequestOperation alloc] initWithRequest:request];
    operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO];

    [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
        //下载的进度,如 0.53,就是 53%
        //        float progress =   (float)totalBytesRead / totalBytesExpectedToRead;

        //下载完成
        //该方法会在下载完成后立即执行
        //        if (progress == 1.0) {
        //            [downloadsTableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]  withRowAnimation:UITableViewRowAnimationAutomatic];
        //        }
    }];

    //下载完成的事件
    //该方法会在下载完成后 延迟 2秒左右执行
    //根据完成后需要处理的及时性不高,可以采用该方法
    [operation setCompletionBlock:^{

    }];

    [operation start];

下载完毕后便可以展示了跟方法一是一样的

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
    NSString* filePath = [paths objectAtIndex:0];

    NSString* fileName = @"down_form.pdf";
    NSString *path = [filePath stringByAppendingPathComponent:fileName];

    NSString * ss = [path stringByRemovingPercentEncoding];
    NSURL *url = [NSURL fileURLWithPath:ss];
    self.documentInteractionController = [UIDocumentInteractionController interactionControllerWithURL:url];

    // Configure Document Interaction Controller
    [self.documentInteractionController setDelegate:self];

    // Preview PDF
    [self.documentInteractionController presentPreviewAnimated:YES];

希望看了我这篇后能实现你所需要的功能!!!!

写了个Demo
github地址:https://github.com/shiyonghui/Download_PDF.git

实现pdf.js在线PDF预览的完整指南 PDF.js是Mozilla基金会推出的一个开源项目,旨在通过HTML5技术实现无需任何第三方插件的PDF文件在浏览器中的直接查看。它不仅反映了开源社区对于跨平台、安全和无障碍访问的追求,也展示了在Web开发领域不断革新的技术潮流。当需要将PDF.js集成到一个已有的网站或应用中时,不可避免地需要对PDF.js的默认样式和行为进行一些调整,以适应整体的设计和用户交互需求。为了实现这一点,你可以直接通过CSS覆盖默认样式,或者通过JavaScript改变默认行为。 阅读详情

相关推荐

学习记录(十一)--Pattern Recognition投稿记录

上一周特别忽然通知统计建模要答辩,确定是否晋级国赛,一直在准备答辩的事情,所以上一周没有总结周汇报,深刻检讨!!!不过结果是好的,我们组第二名晋级哦。这周主要是跟大家分享一下我投稿PR(Pattern Recognition)的一个时间线,以及投稿后的工作。一、PR从投稿到接收的时间线2025.4.3 Major Revision(ddl4.23) 当时正在弄比赛和另一个着急推进的文章2025.5.30 Minor Revision 这次小修基本上只有一些格式和简单一点点问题。

qq_54949944的博客 1917

探索 CFPPPTView:一款强大的 iOS PPT 展示框架

探索 CFPPPTView:一款强大的 iOS PPT 展示框架 项目简介 在移动应用开发中,有时我们需要在 iOS 设备上展示 PowerPoint 格式的文件。 是一个由 nsdictionary 开发并维护的开源项目,专门用于在 iOS 应用中流畅地展示 PPT 文件。它基于 CoreText 和 Quartz2D 技术,实现了对 PPT 内容的高度解析和渲染。 技术分析 核心功能 PPT...

gitblog_00038的博客 678

先楫HPM6E00EVK EtherCAT从站配置与CIA402 8轴运动控制实战解析

本文详细解析了先楫HPM6E00EVK开发板的EtherCAT从站配置与CIA402 8轴运动控制实战。从环境准备、XML文件配置、代码移植到TwinCAT工程设置,提供了完整的移植指南,帮助开发者实现高效的多轴同步运动控制。

o5p6q的博客 415

iOS上---预览本地ppt,word ,excel,pdf文件

在项目开发过程中,要求能够在自己的程序中实现在线预览ppt,word,excel,pdf 等文件的功能,所以进行了一些学习研究,iOS提供从IOS4.0后,apple推出新的文件预览控件:QLPreveiewController,已经支持pdf等格式文件的在线阅读功能。 一,首先需要导入系统库文件 #import 二,创建QLPreveiewController对象 QLPr

青春路上的小羔羊 8650

GD32F303调试小记(一)之USART(接收中断、接收空闲中断+DMA、发送DMA)

前言 之前写了GD32F103调试小记(二)之USART(接收中断、接收空闲中断+DMA、发送DMA)一文。这次我们来看看GD32F303的USART是如何配置的,结合这两篇文章,相信大家GD32的USART配置流程会十分熟悉。 DMA 能大大减轻CPU负荷的东西,建议场景合适的情况下,都去用DMA功能。 USART 一种串行通信协议, ...

欢喜6666的博客 3万+

Anaconda安装教程傻瓜教程

网上好多教程找的我心好累,为了方便新手安装,我这边整理了大致详细的教程,参考了好几个大佬的教程,废话不多说,直接开始~ **前言:**有人纠结先安装python还是安装anaconda,这边的建议是装anaconda,就不需要单独装python了。 其次,有小伙伴的Anaconda的安装分两种情况: 情况一:电脑现在没有装python或者现在装的可以卸载掉(装Anaconda时先卸python); 情况二:电脑目前装了python,但想保留它;

zlc2351951436的博客 5万+

HTML转PDF需要的依赖

之前写过maven依赖下的HTML转PDF方案。采用的是flying-saucer。 当时的maven依赖如下 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.xhtmlrenderer&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;flying-saucer-pdf&amp;lt;/artifactId&amp

weixin_39389850的博客 1115

ubuntu20.04开机黑屏卡在/dev/sda1:clean,***files,***blocks,解决心得记录

这个问题如果你百度,会发现目前有很多种解决方法。 有更新显卡驱动的,有卸载上一次安装软件的,还有各种奇奇怪怪的故障原因。 如果你是属于上述情况,那么按照百度和论坛的各种指引操作一般都能解决。 但我这里主要说一种特殊情况,就是我什么也没有操作,我什么也没干。就是正常使用系统关了机突然就报错了。 这也是自己亲自遇到的问题,做个小记录方便以后自己回顾。 上一次出现这种情况我重装系统了,这次用了两个月又出现了,重装成本太高,我接受不了,于是找到解决办法。 首先找个终端进入,进入终端的方法很多,用安装u盘

qq_41517017的博客 2万+

页面PDF预览控件pdf.js使用总结

一、插件下载 下载地址:http://mozilla.github.io/pdf.js/ 内含demo页面,打开后显示效果如图所示: 二、使用方法 将控件的相应文件引入 <link rel="stylesheet" href="../../js/plug/pdfjs/web/viewer.css"> <link rel="resource" type="appli...

Sagitarioo的博客 4970

pikachu靶场: 暴力破解第四关(token防爆破)

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个 Token 同时将此 Token 返回给客户端。此外,Token 是有时效的,一段时间之后或下一次请求时用户需要重新验证。

X_shiguang的博客 1720

从 SAP GUI 到 API 自动化,为什么 SAP 团队必须把 API 拉到路线图中央

摘要: SAP项目正从传统手工操作转向API驱动,以应对业务敏捷性需求。API不仅是技术接口,更是核心业务能力的标准化封装,助力自动化、低代码、AI集成和系统升级。通过SAP Business Accelerator Hub等工具,企业可复用标准API替代定制开发,减少技术债。API还赋能自动化平台、实时集成和AI Agent执行,确保安全治理与审计追踪。未来,API将成为企业系统与AI交互的核心桥梁,缺乏API将迫使业务依赖脆弱的UI自动化方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 302

python读取pdf文档书签 bookmark_Python利用PyPDF2库获取PDF文件总页码实例

Python中可以利用PyPDF2库来获取该pdf文件的总页码,可以根据下面的方法一步步进行下去:1、首先,要安装PyPDF2库,利用以下命令即可:pip install PyPDF22、接着,就是直接编写代码了,其中我新建了一个py文件,名为file_utils.py,代码如下:from PyPDF2 import PdfFileReaderdef get_num_pages(file_path...

weixin_39928648的博客 822

别再只会复制Haar级联代码了!OpenCV人脸检测全方案深度解析,从原理到工业级落地

通用预训练模型在你的业务场景效果不好时,用自己的业务数据集训练专属的级联器,是提升精度的终极方案,OpenCV自带和工具,支持自定义Haar/LBP级联器训练。场景首选方案次选方案新手入门学习Haar级联分类器LBP级联分类器嵌入式轻量固定场景LBP级联分类器YuNet轻量版工业级落地项目(99%场景)DNN+YuNetMTCNN多人脸+小目标复杂场景DNN+YuNet自定义微调模型同时做人脸+其他目标检测。

2601_94871597的博客 379

pdf展示 后端返回pdf二进制流 前端打开新页面展示或者直接下载

/ axios 调用接口。

2301_78103145的博客 309

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

vue-pdf插件不翻页预览

<pdf v-for=“i in numPages” :key=“i” :page=“i” :src=“pdfUrl” style=“width: 100%; height: auto;” @num-pages=“pageCount=$event”> </pdf> data() { return { pageCount:0, src:’’,//文件路径 numPages:0, } }, mounted(){ this.loadPdfHandler() }, methods: { a

lff980111的博客 1772

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

aspnetcore框架揭秘pdf下载_web页面实现PDF读取显示

什么是PDF.jsPDF.js是一个用于构建在HTML5中Portable Document Format (PDF)浏览插件。重点:1)使用在HTML5中,那么一些比较老的不支持HTML5的浏览器,就不能使用PDF.js。因为HTML5跨平台的好处,PDF.js不仅可以在 PC端使用,也支持移动端使用。2)PDF浏览插件,本质上就是读取、显示PDF文件的库,这个库用JavaScript编写。使用...

weixin_39830012的博客 1076

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Elasticsearch:使用 Playground 与你的 PDF 聊天

了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。Elasticsearch 8.16 具有一项新功能,可让你将 PDF 文件直接上传到 Kibana 并使用 Playground 进行分析。在本文中,我们将了解如何通过上传 PDF 格式的简历然后使用 Playground 与其交互来使用此功能。是一个托管在 Kibana 中的低代码平台,可让你创建。

Elastic 中国社区官方博客 1536

uniapp、vue 实现手写签名后合并到pdf文件

操作pdf文件使用的是pdf-lib依赖(此依赖库和vite有兼容性问题,解决办法采用了CDN引入使用)后续还有一部分代码本来是要用于重新渲染展示签名后的PDF的,但是需求暂定不需要,根据需求可选。插件作者已经实现了原pdf的预览渲染及签名功能,接下来说一下签名合并的功能。通过监听pdf文件的渲染预览完成可以获取到PDF的总页码等数据后续会用到。然后将已经完成签名的图片base64格式合并到pdf指定位置。实现,增加了签名合并到pdf的功能。获取新生成合并后pdf文件的数据。先获取原始PDF数据。

m0_60746035的博客 1091

.NET 使用 DocNET 库快速高效的操作 PDF 文档

当然这里不仅仅只有C#/.NET/.NET Core还有前端、云原生(Docker,K8s)、分布式,微服务、实用工具、学习书籍、AIGC、AI赋能、求职和招聘资讯、热点资讯等多个领域,我们致力于构建一个积极向上、和谐友善的.NET技术交流、学习平台。该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。PDF 文档,作为日常工作中不可或缺的文档格式,广泛应用于各类场景。

dotNET跨平台 183

Vue中实现pdf文件预览功能

实现的功能就是点击预览按钮,弹出对话框在线预览pdf文件 实现此功能的前提是需要在Vue项目中安装组件vue-pdf,在终端命令行输入运行如下语句:

zyy2045的博客 2万+

Python处理pdf文件

环境python 3.8PyPDF2 2.1.0前言PyPDF2 是一个开源的、免费的、纯 python 语言编写的库,主要用来处理 pdf 文件,包括了常见的分离、合并、裁剪、转换、加密、解密等功能。安装使用 pip 安装,执行命令pipinstallPyPDF2使用示例下面来看看几个常见的 pdf 文件操作示例获取基本信息主要是利用 PdfReaderfromP...

2282

java语言html转pdf(html,pdf样式)

需求:今天遇到一个需求,要求页面是一个报表文件之类,然后有公司盖章,但要求这个东西得安全(就是这个章不能随便就能让他们得到,图片有另存为呀,将来人家把数据都弄下来,自己单独盖一个章,这不造假吗) 第一反应用js在页面去控制类似复制,粘贴,右键之类,试了一些之后发现,如果稍微懂一些代码的话,页面还有好多的漏洞,比如debug,之类,里面的代码一览无余。(稍后把一些常用的js附上) 这就开始了第二

7030

pdf_to_world

import os from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import * from pdfminer.pdfinterp import PDFTextExtra.

邹小驴 230

c# pdf文件文本读取

PdfDocument document = new PdfDocument(); document.LoadFromFile(pdfPathFileName); //实例化一个StringBuilder 对象 StringBuilder content = new StringBuilder(); //提取PDF所有页面的文本 foreach ...

weixin_38172370的博客 3548

PDF-Parser-1.0与Vue前端集成:实时文档解析展示

本文介绍了如何在星图GPU平台上自动化部署PDF-Parser-1.0文档理解模型,实现高效的PDF文档解析与处理。该模型能够自动提取文本、表格和公式等结构化数据,可广泛应用于企业文档数字化、合同信息抽取和学术论文解析等场景,显著提升文档处理效率。

weixin_28922227的博客 139

[IOS]PDF阅读

[IOS]PDF阅读 Demo地址:http://download.youkuaiyun.com/detail/u012881779/9053759 内容:将一个PDF文件分页阅读,页面结构分两部分,覆盖全页的正文部分和页面下方的导航栏部分,并且正文与导航关联了一个对应关系。个人比较懒,就不描述细节了,清晰的PDF文件一般都比较大,若有下载Demo便自己替换reading.pdf文件看看效果。 若没

Gamin 782
上一篇: 无证书真机调试出现Unable to add App ID because the '10' App ID limit in '7' days has been exceeded.
下一篇: 如何搭建IPv6测试你的APP
style_施
博客等级 码龄11年 11粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值