IE不能直接顯示PDF的原因分析和解決方法

>>>>>問題<<<<<
因為有系統用iframe顯示PDF,但PDF有時卻并不能順利地在流覽器中顯示,而是跳出下載對話框,要求下載,給user帶來很多困擾,
也給我們系統維護人員帶來了麻煩,用了兩天,查找IE打開PDF的一些規則,和大家分享一下


>>>>>分析<<<<<
一.測試環境
win7 32bit
IE9
foxit reader(version 3.2.1.0401,直接將以前安裝好的目錄Foxit Software打包,然後解壓在電腦上直接執行)
adobe reader x(version 10.0.0,安裝包文件名:AdbeRdr1000_zh_TW.exe)

二.原理說明
以下註冊表鍵值,決定IE是否直接打開PDF
HKEY_CLASSES_ROOT\MIME\DataBase\Content Type\application/pdf\CLSID
1.如果CLSID中是個錯的值,即在HKCR\CLSID中不存在(如隨便一個xxxxx),
如果pdf的預設打開程式是foxit reader,那會根據foxit reader的設定,在流覽器中還是在外面開啟
如果pdf的預設打開程式是adobe reader x,則不論設定如何,都會彈出下載對話框,在流覽器外面開啟

2.如果CLSID值存在于HKCR\CLSID中,但是不是正確的foxit reader和adobe reader x的CLSID值
(測試過這兩個CLSID:{0000002F-0000-0000-C000-000000000046}:clsid中的第一個,{22D6F312-B0F6-11D0-94AB-0080C74C7E95}:Windows Media Player)
則會彈出下載對話框,當用戶選擇【打開】時,
不管pdf的默認程序是foxit reader,還是adobe reader x,都會在流覽器外面打開,而不管其是否有設定在流覽器中顯示PDF

三.adobe reader x在流覽器中打開PDF的設定
adobe reader x的CLSID:
{CA8A9780-280D-11CF-A24D-444553540000}

以下鍵值不存在則會在流覽器中顯示(默認),存在則不會在流覽器中顯示,
HKCU\Software\Adobe\Acrobat Reader\10.0\Originals\bBrowserIntegration

PS:adobe reader x在流覽器有時PDF顯示不出來,這時可以通過【說明】/【修復adobe reader安裝】后, 重新開啟流覽器或重啟系統試一下。

{CA8A9780-280D-11CF-A24D-444553540000}內容
---------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}]
@="Adobe PDF Reader"
"AppID"="{BBAA0E44-3862-490C-8E63-AC2D2D6EF733}"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\Control]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\DocObject]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\EnableFullPage]

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\EnableFullPage\.fdf]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\EnableFullPage\.pdf]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\EnableFullPage\.xdp]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\EnableFullPage\.xfd]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\EnableFullPage\.xfdf]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\Implemented Categories]

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\InprocServer32]
"ThreadingModel"="Apartment"
@="C:\\Program Files\\Common Files\\Adobe\\Acrobat\\ActiveX\\AcroPDF.dll"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\MiscStatus]
@="0"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\MiscStatus\1]
@="131473"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\ProgID]
@="AcroPDF.PDF.1"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\Programmable]
@=""

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\ToolboxBitmap32]
@="C:\\PROGRA~1\\COMMON~1\\Adobe\\Acrobat\\ActiveX\\AcroPDF.dll, 102"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\TypeLib]
@="{05BFD3F1-6319-4F30-B752-C7A22889BCC4}"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\Version]
@="1.0"

[HKEY_CLASSES_ROOT\CLSID\{CA8A9780-280D-11CF-A24D-444553540000}\VersionIndependentProgID]
@="AcroPDF.PDF"
---------------------------------------------------------------------------------------------

關鍵是ProgID @="AcroPDF.PDF.1"
---------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AcroPDF.PDF.1]
@="Adobe PDF Reader"
"EditFlags"=hex:00,00,01,00

[HKEY_CLASSES_ROOT\AcroPDF.PDF.1\CLSID]
@="{CA8A9780-280D-11CF-A24D-444553540000}"

[HKEY_CLASSES_ROOT\AcroPDF.PDF.1\DocObject]
@=""
---------------------------------------------------------------------------------------------


四.foxit reader在流覽器中打開PDF的設定
foxit reader的CLSID:
{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}

下面這些鍵值存在,則會在流覽器中打開,反之則會在流覽器外打開
---------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}]
@="PDF Document"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\AuxUserType]

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\AuxUserType\2]
@="PDF"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\AuxUserType\3]
@="Foxit Reader"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\DefaultExtension]
@=".pdf, PDF Files(*.pdf)"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\DefaultIcon]
@="C:\\Users\\C036503220A\\Downloads\\foxit\\Foxit Software\\Foxit Reader\\Foxit Reader.exe,1"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\DocObject]
@="0"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\InprocHandler]
@="ole2.dll"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\InprocHandler32]
@="ole32.dll"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\Insertable]
@=""

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\LocalServer]
@="C:\\Users\\C036503220A\\Downloads\\foxit\\Foxit Software\\Foxit Reader\\Foxit Reader.exe"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\LocalServer32]
@="C:\\Users\\C036503220A\\Downloads\\foxit\\Foxit Software\\Foxit Reader\\Foxit Reader.exe"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\MiscStatus]
@="32"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\Printable]
@=""

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\ProgID]
@="FoxitReader.Document"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\Verb]

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\Verb\0]
@="&Edit,0,2"

[HKEY_CLASSES_ROOT\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}\Verb\1]
@="&Open,0,2"
---------------------------------------------------------------------------------------------

至于
HKCU\Software\Foxit Software\Foxit Reader\MainFrame\DisplayInBrowser
值為1,則foxit reader設定對話框中的【是否在流覽器中顯示】checkbox會勾上,
值為0,則不勾上
這個設定不影響foxit reader如何在IE中打開PDF


五.其它
HKEY_CLASSES_ROOT\.pdf鍵,雖然在IE處理PDF時不起直接作用,但最好還是設定正確
adobe reader x的設定
---------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.pdf]
"Content Type"="application/pdf"
@="AcroExch.Document"
---------------------------------------------------------------------------------------------

foxit reader的設定
---------------------------------------------------------------------------------------------
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.pdf]
@="FoxitReader.Document"
"Content Type"="application/pdf"
---------------------------------------------------------------------------------------------


>>>>>結論<<<<<
IE中一直彈出下載對話框,即使在adobe或foxit中已經有設定相關選項,但還是不能在流覽器中直接顯示。
最直接的原因,可能就是HKEY_CLASSES_ROOT\MIME\DataBase\Content Type\application/pdf\CLSID設定錯誤
將這個值設定為adobe或foxit正確的clsid,應該就可以解決這個問題了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 程序图标设置/winform 图标

一、目的、实际情况 1.编写一个winform 程序&#xff0c;发现有一个图标非常有意义。区分其他程序&#xff0c;以及感觉在做产品而不是写代码。 2.添加图标图片发现&#xff0c;需要用ico格式。在线转换&#xff08;某度搜索&#xff09;还是不靠谱。要微信登陆&#xff0c;登…

数字化转型,究竟在“转”什么?

这是头哥侃码的第265篇原创「头哥唠B唠」这个栏目已经持续了几个月了&#xff0c;没想到还在继续进行&#xff0c;并收获了很多朋友们的喜爱。非常感谢大家的支持&#xff01;在上次的直播中&#xff0c;我找来了我的老熟人们。一个是右军老师&#xff0c;之前 APISIX 的很多内…

C++ Primer 第Ⅲ部分笔记——类设计者的工具

1.对象移动 1.1右值引用 右值引用区别于普通引用&#xff0c;用两个&表示 返回左值引用的函数&#xff0c;连同赋值、下标、解引用和前置递增递减运算符返回左值 返回非引用的函数&#xff0c;连同算术、关系、位以及后置递增递减运算符都生成右值 我们不能将左值引用绑定到…

Crash 的文明世界

题目描述 给一棵树&#xff0c;求以每个点为根时下列式子的值。 题解 当k1时这就是一个经典的换根dp问题。 所以这道题还是要用换根dp解决。 部分分做法&#xff1a; 考虑转移时是这样的一个形式(图是抄的)。 用二项式定理展开就可以nk2做了。 观察到结果是一个xk的形式。 然后…

wampServer配置WWW根目录遇到的坑

直接在官网下载之后开始安装&#xff0c;一切正常 打开使用&#xff0c;一切正常 设置WWW目录。坑了一波 按照的都是百度上的教程&#xff0c;设置httpd.conf 这里配置之后网页访问127.0.0.1 还是localhost都还是原始的www目录 后来 我发现了这里 是配置虚拟URL的地方。以上是正…

windows安装程序创建_如何在Windows上创建已安装程序的列表

windows安装程序创建Reinstalling Windows is a good way to fix serious problems with your computer, or just to get a fresh slate. But before you reinstall Windows, you should make a list of programs you currently have installed on your PC so you know what yo…

实现一个更新所有 dotnet tool 的 dotnet tool

实现一个更新所有 dotnet tool 的 dotnet toolIntrodotnet tool 是从 .NET Core 2.1 开始支持的命令行工具&#xff0c;在使用 dotnet tool 比较多了的时候&#xff0c;想要更新所有的 dotnet tool 就比较麻烦&#xff0c;而目前 .NET SDK 还不支持&#xff0c;也有一些人希望能…

C# 普通权限运行程序\非管理员运行\降低权限运行

一、目的与实际 1.VS设置管理员权限运行程序后&#xff0c;发现调用powershell命令或程序需要普通权限即可&#xff0c;Administrator权限反而错。 2.网上搜索关键字&#xff0c;大部分都是怎么使用管理员权限运行。 3.bing搜索意外发现有相关资料&#xff0c;记录分享。 二…

am335x PDK3.0 设置为单网口配置记录

原来的配置是双网口的&#xff0c;现在要配置为单网口。一直以为这个配置是在 make menuconfig 里面&#xff0c; 没想到是在设备树里面。修改设备树// vim arch/arm/boot/dts/am335x-sbc7109.dts722 &mac {723 pinctrl-names "default", "sleep"…

[AHOI2009]飞行棋 BZOJ1800

题目描述 给出圆周上的若干个点&#xff0c;已知点与点之间的弧长&#xff0c;其值均为正整数&#xff0c;并依圆周顺序排列。 请找出这些点中有没有可以围成矩形的&#xff0c;并希望在最短时间内找出所有不重复矩形。 输入输出格式 输入格式&#xff1a;第一行为正整数N&…

webapi+Quartz.NET解决若干定时程序同时运行的问题

项目现状&#xff1a; 有若干定时程序需要自启动运行&#xff0c;为了简便程序部署等问题&#xff0c;采取这种办法把定时程序集中管理到webapi中跟随api发布 代码架构介绍&#xff1a; 新建一个类库&#xff0c;类库引用Quartz&#xff08;Quartz.2.3.2&#xff09;&#xff0…

mac恢复iphone_免费下载:旧Mac和iPhone壁纸的令人震惊的完整档案

mac恢复iphoneLove or hate Apple, you’ve got to admit: their background images are consistently stunning. Now you can download all of them. 爱或恨苹果&#xff0c;您必须承认&#xff1a;它们的背景图像始终令人赞叹。 现在&#xff0c;您可以下载所有这些文件。 A …

Django01-1: request 方法

#POST request.method #返回全大写字符穿&#xff0c;<class str> POST/GETrequest.POST #用户提交数据&#xff0c;不包含文件 #<QueryDict>request.POST.get(hobby) #拿列表最后一个 request.POST.getList(hobby) #拿多个&#xff0c;列表全部#GET 获取url &a…

Magicodes.IE 2.7.1发布

2.7.12022.12.01Magicodes.IE.EPPlus默认添加SkiaSharp.NativeAssets.Linux.NoDependencies包&#xff0c;以便于在Linux环境下使用导入验证支持将错误数据通过Stream的方式返回&#xff0c;感谢sampsonye &#xff08;见pr#466&#xff09;2.7.02022.11.07添加SkiaSharp移除Si…

Oracle监听的静态注册和动态注册

静态注册&#xff1a;通过解析listene.ora文件 动态注册&#xff1a;由PMON进程动态注册至监听中 在没有listener.ora配置文件的情况下&#xff0c;如果启动监听&#xff0c;则监听为动态注册。用图形化netca创建的监听&#xff0c;默认也为动态注册 1.静态注册 listener.ora文…

AKOJ-1695-找素数

题意&#xff1a; 给定区间L&#xff0c;R。 计算区间中素数个数。 2 < L,R < 2147483647, R-L < 1000000。 思路&#xff1a; 素数区间筛 先筛(2-sqrt(r))。 再用(2-sqrt(r))中的素数筛(l-r)。 代码: 1.自己写的区间筛&#xff0c;将筛2-sqrt&#xff08;r) 分开了。…

Spring 环境与profile(一)——超简用例

什么是profile,为什么需要profile? 在开发时&#xff0c;不同环境&#xff08;开发、联调、预发、正式等&#xff09;所需的配置不同导致&#xff0c;如果每改变一个环境就更改配置不但麻烦&#xff08;修改代码、重新构建&#xff09;而且容易出错。Spring提供了解决方案。 方…

Django04-1: ORM增删改查

ORM 增删改查 一、字段增加 #终端输入 1.model里添加字段&#xff0c; 2.执行迁移命令。 3.终端里输入默认值&#xff0c;继续执行迁移命令。 #允许为空 再nulltrue&#xff0c;终端不需要输入默认值 #设置默认值 defalult‘xxxx‘ 二、字段修改 1.直接修改代码&…

Comcast以纯文本泄露客户Wi-Fi登录信息,立即更改密码

A Comcast Xfinity website was leaking Wi-Fi names and passwords, meaning now is a good time to change your Wi-Fi passcode. Comcast Xfinity网站泄漏了Wi-Fi名称和密码&#xff0c;这意味着现在是更改Wi-Fi密码的好时机。 The site, intended to help new customers se…

SpringBoot详解(一)-快速入门

SpringBoot详解系列文章&#xff1a;SpringBoot详解&#xff08;一&#xff09;-快速入门SpringBoot详解&#xff08;二&#xff09;-Spring Boot的核心SpringBoot详解&#xff08;三&#xff09;-Spring Boot的web开发SpringBoot详解&#xff08;四&#xff09;-优雅地处理日志…