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

时间:2015-04-05 18:05:23

标签: javascript html

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

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

  1. 检测本机浏览器插件,例如谷歌Chrome和Firefox。
  2. 如果没有可用的原生浏览器插件,请检查第三方插件,例如对于Adobe或FoxIt。
  3. 如果没有第三方插件可用,请使用PDF.js或其他一些Javascript解决方案进行渲染。
  4. 我不确定如何进行第1步。我已经为第2步找到了一些点击,但我想让第1步工作,因为这是主要的用例。任何帮助将不胜感激。

    提前致谢。

1 个答案:

答案 0 :(得分: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 Detect if Adobe Reader is installed