在浏览器中检测本机或第三方PDF插件

我不

我们正在编写一个小的工具,以查看从我们的网站生成的PDF并让浏览器打开它们。我们的情况是我们希望PDF 100%的时间在浏览器中显示。我们不希望浏览器将PDF自动保存到其downloads文件夹(出于HIPAA的原因)。(如果用户自己下载它,那很好。他们发起的保存是一个非常重要的区别。)

我想找到一个在浏览器和额外需求之间折衷的解决方案。我的攻击计划是:

  1. 检测本机浏览器插件,例如Google Chrome和Firefox。
  2. 如果没有可用的本机浏览器插件,请检查第三方插件,例如Adobe或FoxIt。
  3. 如果没有第三方插件可用,请使用PDF.js或其他Javascript解决方案进行渲染。

我不确定如何执行第1步。我发现第2步有一些成功之处,但我想使第1步正常工作,因为这是主要用例。任何帮助,将不胜感激。

提前致谢。

托佩罗

如果要以编程方式从服务器渲染pdf文件,则需要在标题中添加mime类型:

PhP示例:

<?php
  $file = 'path/to/PDF/file.pdf';
  $filename = 'filename.pdf';
  header('Content-type: application/pdf');
  header('Content-Disposition: inline; filename="' . $filename . '"');
  header('Content-Transfer-Encoding: binary');
  header('Accept-Ranges: bytes');
  @readfile($file);
?>

C#示例:

Response.AppendHeader("Content-Disposition", "inline; filename=something.pdf")
Return File(output, "application/pdf", "something.pdf")

或者,如果您想使用JavaScript检测pdf查看器,则可以为您提供帮助:Javascript检测是否已安装Adobe Reader

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何访问第三方浏览器控件,如chrome在android中?

是否可以在浏览器中拦截第三方 POST 请求?

Nativescript 插件 - 与第三方本机库通信

浏览器扩展-如何在background.js文件中包含第三方库

全屏截图,不带第三方扩展程序(Chrome浏览器)

利用第三方JS的浏览器缓存

如何通过浏览器DevTools在第三方站点触发输入表单验证?

第三方Cookie,以检查浏览器是否默认将其阻止

在Flutter中编辑第三方插件

例外:不支持该浏览器,或者第三方Cookie和数据可能被禁用

如何在JSF中使用诸如Font Awesome之类的第三方CSS库?浏览器找不到CSS文件中引用的字体文件

改变从Woocommerce第三方插件文本

如何调试第三方Flutter插件

如何安装第三方Rhythmbox插件?

ImageJ:如何使用第三方插件API?

ReactJs 添加第三方 Javascript 插件

如何从第三方共享库中查找导致Android本机崩溃的指令?

在ExtJs 5中包含第三方图表插件

如何在Angular 2中封装第三方插件逻辑?

在Ionic 2中使用带有TypeScript的第三方cordova插件

如何在不使用第三方浏览器扩展的情况下使用用户样式表自定义某些网站的样式?

如何防止第三方程序安装在未经许可的情况下更改浏览器设置

我的电报网站登录小部件停止工作。如何为最近更新的浏览器设置第三方Cookie?

当我访问其他网页时,为什么浏览器会连接到未知的第三方网站?

在Java上从第三方HTML生成PDF

资产文件夹中的Pdf文件无法在第三方应用中打开

如何将本机ios第三方库集成到React本机应用程序中?

覆盖第三方模块的记录器?

如何删除第三方选择器?