首页
学习
活动
专区
圈层
工具
发布

解决Android的WebView无法打开PDF的方案

背景 最近自家产品开发使用中收到反馈,安卓内嵌网页无法打开PDF,而IOS可以打开。...其实安卓无法打开分以下几种情况:有.pdf后缀但是文档比较小的——可以打开有.pdf后缀但是文档比较大的——无法打开无.pdf后缀的——都打不开原因分析 Android的内置WebView引擎 主要用于显示网页内容和基本的文本渲染...所以IOS的WebView可以打开带有.pdf后缀的文件,并提供内置的PDF查看器,使用户可以直接再应用中查看PDF文件。...这里我主要针对无.pdf后缀的,H5利用Canvas和PDF.js,给一下我开发时的解决方法。不过我也会将我收集到的安卓的方案写这里,不过我不是安卓开发工程师,欢迎补充。...这些库可以在WebView中渲染和打开PDF文件。使用其他应用程序:(通过使用Inteynt机制?),可以调用系统中预装的PDF阅读器应用程序或其他支持PDF的应用程序来打开和预览PDF文件。

5.8K40

office xls 文件已损坏 无法打开 word在试图打开文件时遇到错误

转自:http://windyli.blog.51cto.com/1300305/326491 故障现象:Office 2010,当打开从其他来源的Office文档时,会出现“(受保护的视图)遇到问题需要关闭...其他来源: 1.邮件中的附件:别人通过邮件发给我的附件,由于不是由本机创建的文档,所以Office 2010会以受保护视图打开。...临时方案:一时找不到解决方案,并且经过仔细观察发现是进入到“受保护视图”时出现的问题,而正常打开、编辑本机创建的文档都没有问题。...“受保护视图”是Office 2010中新推入的安全措施,以阻止恶意文档对本机的破坏。如果让Office以正常模式打开文件应该就可以了。...右键单击文档,在弹出的快捷菜单中选择“属性”,在打开的“属性”对话框的“常规”标签中,单击“解除锁定”按钮,这时再打开文档就不会再出错了。 彻底解决方法1:修改uxtheme.dll文件权限。

4.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    打开PDF时阅读器显示的标题与PDF文件名称不一致的解决方法

    本文介绍打开PDF文件时,PDF阅读器所显示的文件名称与文件实际名称不一致的解决办法。   ...就在刚刚准备一篇空间三维建模相关的博客时,偶然发现了如下一个问题:   在打开这个图中名称为空间三维建模_操作.pdf的PDF文件后,在PDF阅读器中其题目却变成了另一个名称:   没错,由原有的PDF...那么问题就清楚了:我用了Office 2019 Word自带的PDF转换,其默认保留了原有的Word文件“标题”信息;而对于部分PDF阅读器(例如本文中我用的是Foxit),其在显示PDF文件的名称时,...尤其需要注意的是,似乎有的PDF阅读器不会用原有Word文件的标题作为PDF打开后显示的名称——比如之前我一直用金山的PDF阅读器,就似乎一直没有发现这个问题,从而说明有可能其和现在我用的Foxit在显示...,但是结果面试官装的是别的PDF软件,在面试官电脑打开显示的却是清新淡雅职场简历模板这种名字,就很尴尬的。

    2.2K10

    关于Windows Terminal无法在Win+X菜单和Win+R中通过wt.exe打开的问题

    原因分析、解决方案 # 原因分析 前置条件 1:之前偷懒用 Microsoft Store 安装 python 时,遇到了奇怪的权限问题(通过微软商店安装的 app 文件夹会有特殊权限限制,实测可以删除文件...,但无法新建 / 重命名文件),测试的时候不小心修改了 Program Files\WindowsApps 文件夹的权限面板 前置条件 2:通过 Win+X 菜单和 Win+R 运行 wt.exe...都无法运行(打开后进程自动退出,且无 UI 提示),但是可以通过开始菜单和其他 terminal 中输入 wt.exe 运行 可以通过 terminal 中输入 wt.exe 运行就说明并非是应用损坏...,日志记录如下: 发现两个 wt.exe 的路径竟然不一样,位于 \AppData\Local\Microsoft\WindowsApps\ 的 wt.exe 似乎是一个软链接,神奇的是资源管理器中显示这个文件是一个...wt.exe 效果同 Win+R 打开(无反应),而打开软链接的 wt.exe 就可以正常运行 那么现在有两个问题: 同一个 wt.exe 命令,为什么 Win+R(Win+X 菜单实际上执行的也是

    6.6K52

    【黄啊码】vue-pdf预览时无法显示印章和中文字体或者乱码(简单粗暴)

    pdf第一页的情况,这时候你可以看下官网的说明 官网链接www.npmjs.com/package/vue… 解决印章不显示: 找到我们安装好的 vue-pdf 安装包里的 pdf.worker.js ...util.AnnotationFlag.HIDDEN) 如下放代码  将这行注释:this.setFlags(_util.AnnotationFlag.HIDDEN); 解决中文不展示: 原因:正常情况,不会显示中文的问题...解决乱码: 如果遇到乱码的情况,额,写那么多我感觉只会误导你们,把vue-pdf/src/pdfjsWrapper.js中的这个文件给我改了,直接抄,不用给它面子 import { PDFLinkService...PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0 ], viewport: viewport, intent:...pendingOperation.then(function() { var getAnnotationsOperation = pdfPage.getAnnotations({ intent

    3K10

    android中WebView附件问题解决

    现在的很多app项目中都有嵌入html的需求,这么设计产品有很多好处,一个html可以同时在很多平台上跑(android,ios,web端)。...webview的好处我们其实都清楚:1.可以直接显示和渲染web页面 2.直接显示网页webview可以直接用html文件(网络上或本地assets中)作布局 3.可以和JavaScript交互调用 但是同时...ios是可以直接解析加载出这些文件的,估计这个是ios浏览器内核强大的原因,但是android 默认是无法解析显示出这种附件的。...android的 webview只是一个对浏览器内核的封装,本身不具备打开word,excel,ppt,pdf文件的功能,即使可以打开,也必须借助第三方的专用插件或者poi库。...ios的效果是默认在当前界面可以直接打开附件的文件,产品认为这个android肯定也可以做到(无法和产品解释,解释太多就是自己菜)。

    1.7K20

    Android deeplink漏洞

    Android 应用程序链接是通过添加使用 URL 打开应用程序内容的意图过滤器并验证是否允许应用程序打开这些网站 URL 来设置的。...通过在以下位置托管数字资产链接JSON 文件来声明网站和意图过滤器之间的关系:https://domain.name/.well-known/assetlinks.json 如果系统成功验证允许应用程序打开某个...android:host="myapp.link" /> intent-filter> 在WebView中打开任意URL 如果应用程序根据deep link中的参数在 WebView...中打开 URL,您可以尝试绕过 URL 验证并打开任意 URL。...例如,假设应用程序通过以下流程打开基于 http/https URL 的本地文件: 用户发送链接https://website.com/file.pdf 应用程序解析 URL 并检索 URL 路径:file.pdf

    1.9K40

    【Android基础】Android中的Intent详解

    因为每一个Acticity的任务不一样,所以经常互在各个Activity之间进行跳转,在Android中这个动作是靠Intent来完成的。...,显示一个地理位置在地图中。...想要了解更多的action可以查看Intent源码或者api,在Intent中定义了很多action,除了在Android framework中,在别处也定义了很多action,比如在Settings应用中...当创建一个intent时,除了要指定数据的URI之外,指定数据的类型(MIME type)也很重要,比如,一个activity能够显示照片但是无法播放视频,虽然启动Activity时URI格式很相似。...比如你用百度云盘下载了一个pdf文档,你在点击打开这个文档的时候百度云盘是无法打开的,但是也许你系统上安装有其他的能打开pdf文档的阅读器,这个时候就会弹出一个对话框,列举了可以打开pdf文档的应用程序

    2.2K70

    【Android基础】Android利用Intent与其他应用交互

    前言: 上一篇博客给大家聊了Intent的定义,分类、属性和功能,相信大家对于Intent在Android中的作用已经清楚,这一篇博客将会给大家聊Intent的用法。...比如你的应用程序需要给用户显示一个地理位置在地图上,你不必在你的应用程序中实现地图功能,而是创建一个显示这个地理位置的Intent,发送出去,Android系统会启动那些可以处理这个请求的应用程序。...还比如:你用百度云盘下载了一个pdf文档,你在点击打开这个文档的时候百度云盘是无法打开的,但是也许你系统上安装有其他的能打开pdf文档的阅读器,这个时候就会弹出一个对话框,列举了可以打开pdf文档的应用程序...Intent数据是有数据类型的,这个数据类型叫做MIME类型,默认情况下系统通过数据中包含的Uri数据来确定数据的MIME类型,如果数据中不包含Uri,那么你需要调用setType()设置Intent数据的...在Android中通过文件的MIME类型来判断有哪些应用程序可以处理这些文件,并使用其中的某一个应用程序(如果有多个可选的应用程序,则用户必须指定一个)处理之。

    1.2K100

    Android | 作用域存储适配

    以前我们访问内存卡中的文件时可以通过 Uri.fromFile ,将 File 转换成 Uri 对象,这个 uri 对象表示这本地真实路径。...拍照完成后,拿到对应的 uri 如果要直接显示图片,则通过 uri 可直接加载 如果图片要上传,则需要将 uri 处理为一个 file 对象 ​ 在 10.0 中,只能访问沙箱文件和共享文件夹...打开相册 1,直接通过 intent 打开相册 2,拿到 返回的 uri 地址 3,如果是10.0,则需要进行和 “打开相机” 中 3,4,同样的操作。...到此时,文件以及被复制到了沙箱中,你可以对他进行任意处理,但是如果要打开这个文件,则需要使用其他应用来打开,这个时候文件存储在沙箱下面就不行了,因为其他 app 无法获取当前 app 沙箱下的文件。...所以,在这里需要将文件复制到共享目录下面,然后生成对应的 uri,在通过别的 app 打开即可 //打开文件 data.fileData?.file?.

    1.1K20

    安卓手机如何打开.pdf(1)文件_手机pdf格式怎么使用查找功能

    PDF和纸质发票,刚开始使用的文件管理器搜索手机内的PDF文件,在4.4系统上面打开文件管理器可以过滤掉非.pdf格式文件,在6.0及以上系统没有过滤掉,用的是intent打开url的方式打开文件管理器...,在返回的结果中根据URL转化为文件,然后上传。...1.先上效果图,无图无真相,图能说明一切: 2.Intent方式打开pdf格式文件: Intent intent = new Intent(Intent.ACTION_GET_CONTENT);...格式的文件,但是在小米手机上有个最近文件记录打开时返回报错,由于时间和项目着急上线,所以没有适配6.0及以上系统的手机,采用了第2种方式—-通过ContentProvider搜索手机内的.pdf格式文件...3.通过ContentProvider搜索pdf格式文件核心代码如下: 博主中搜索的是.pdf格式的文件,如果想搜索其他格式文件方法类似,改后缀名比如.txt,.doc,.png等等,小伙伴们可以自行尝试下

    4.3K20

    Android 允许其他应用启动您的Activity

    > 这里乍一看好像都认识,又好像不认识,下面说明一下: 我们在微信、QQ、钉钉中通过其他应用打开文件,是不是就是Activity与Activity之间的交互呢?...android.intent.action.VIEW,用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。 category 表示类别。...三、只打开指定文件类型   这里还有一个问题,我现在的app可以打开任何文件,但是这并不是最优的解决方法,因为我的文件类型是自定义的,mimeType无法匹配到,因此我们需要先打开所有文件格式类型,然后通过匹配符只打开指定的文件格式...四、获取文件的路径   当我们通过这种方式打开自己App的时候,在Activity中是会收到一个Uri的,我们可以通过Uir拿到文件的路径。...ContentResolver就可以访问其他应用数据,这个是系统的,然后通过Uri的到此文件在微信应用中的路径和文件的名称。

    1.8K50

    android intent打开各种格式文档方法

    我们开发的时候经常碰到打开各种文档,目前的应用处理方式 基本都是依赖于三方软件打开 ,而不是在应用内打开,因为文件格式有很多,倘若都在应用内打开的话,肯定要增加很大的开发时间和开发成本,而且实现效果没有一些三方的...Intent打开各种类型文件((PDF、word、excel、ppt、chm) */ public class IntentDocumentView { // android获取一个用于打开PPT...); } return intent; } // android获取一个用于打开PDF文件的intent public static Intent getPdfFileIntent(String...(uri, "application/pdf"); return intent; } // android获取一个用于打开图片文件的intent public static Intent getPicturefFileIntent...(uri, "image/*"); return intent; } // android获取一个用于打开压缩包的intent (手机需安装能打开压缩文件的相关软件) public static

    1.2K20

    Android 10(Q)11(R) 分区存储适配

    为此,Google 终于下定决心在 Android 10 中引入了分区存储,对权限进行场景的细分,按需索取,并在 Android 11 中进行了进一步的调整。...Android 存储分区情况 Android 中存储可以分为两大类:私有存储和共享存储 私有存储 (Private Storage) : 每个应用在都拥有自己的私有目录,其它应用看不到,彼此也无法访问到该目录...Android 10(Q) Android 10 中主要对共享目录进行了权限详细的划分,不再能通过绝对路径访问。 受影响的接口: ?...应用可通过执行以下操作向用户请求名为所有文件访问权限的特殊应用访问权限: 在清单中声明 MANAGE_EXTERNAL_STORAGE 权限。...Android 11 中无法访问 Downloads fun openDirectory(pickerInitialUri: Uri) { // Choose a directory using

    2.8K30

    android默认打开方式修改_setcontenttype方法

    我们可以通过intent的setDataAndType方法实现,这里列举出更多的打开方式: 我的具体代码实现片段是: Intent intent = new Intent(Intent.ACTION_VIEW...uri要换为你要打开的文件绝对路径,类型是”android.net.Uri“ 参考博主:Android 文件打开方式_关中一叶的专栏-CSDN博客_android 打开文件 1.打开所有文件类型 Intent.../vnd.android.package-archive"); 3.打开Video文件 Intent intent = new Intent("android.intent.action.VIEW")...); intent.setDataAndType(uri1, "text/plain"); 12.打开PDF文件 Intent intent = new Intent("android.intent.action.VIEW...); intent.setDataAndType(uri, "application/pdf"); 有关Intent的知识请移步博客:基础总结篇之九:Intent应用详解_LiuHe-CSDN博客 版权声明

    1.5K20

    Kotlin 第二弹:Android 中 PDF 创建与渲染实践

    而本文的主要目的是介绍在 Android 如何创建 PDF 文件。而在实现的过程中,大家可以见识到一些常见的 Kotlin 用法,特别的地方我会稍微讲解一下。...注意布局中的那个按钮,当点击按钮后将生成 PDF 文件,由于生成 PDF 比较耗时,所以在生成过程中会弹出一个进度对话框,生成成功后将消失,然后打开生成的 PDF 文件。...它提供了一个基本的 async 函数用于在其它线程执行代码,也可以选择通过调用 uiThread 的方式回到主线程。在子线程中执行请求。就这么简单。...当 PDF 文件生成后,申请打开这个文件,当然本文的后半部就是自己用代码实现 PDF 文件的渲染。...主要核心思想就是通过 PdfRenderer 将每个 Page 的内容渲染在一个 Bitmap 上,有了这个 Bitmap 那么我们肯定能够在 Android 设备上显示了。

    2.7K10
    领券