pdfjs_viewer-rails, PDF.js 查看器打包为 Rails 引擎

分享于 

5分钟阅读

GitHub

  繁體 雙語
PDF.js viewer packaged as a Rails engine.
  • 源代码名称:pdfjs_viewer-rails
  • 源代码网址:http://www.github.com/senny/pdfjs_viewer-rails
  • pdfjs_viewer-rails源代码文档
  • pdfjs_viewer-rails源代码下载
  • Git URL:
    git://www.github.com/senny/pdfjs_viewer-rails.git
    Git Clone代码到本地:
    git clone http://www.github.com/senny/pdfjs_viewer-rails
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/senny/pdfjs_viewer-rails
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    pdfjs_viewer-rails

    Build Status

    安装

    将此行添加到你的应用程序的Gemfile中:

    gem 'pdfjs_viewer-rails'

    注意:仍在早期开发中。 如果你在路上遇到任何问题,请报告。

    查看器样式

    这里 gem 附带三个查看器样式:

    full style

    reduced style

    最小

    minimal style

    用法

    使用可以挂载引擎

    可以挂载引擎使将 PDF.js 查看器集成到应用程序中变得非常简单:

    配置/路由。rb

    mount PdfjsViewer::Rails::Engine => "/pdfjs", as:'pdfjs'

    现在你可以在模板中使用链接来打开查看器:

    <%= link_to "display using the full viewer", pdfjs.full_path(file:"/sample.pdf") %><%= link_to "display using the minimal viewer", pdfjs.minimal_path(file:"/sample.pdf") %>

    使用 helper

    如果集成场景更加复杂,你可能需要考虑使用 pdfjs_viewer helper。 这允许你将查看器嵌入到容器中,如 iframe。

    <%= pdfjs_viewer pdf_url:"/sample.pdf", style::full%><%= pdfjs_viewer pdf_url:"/sample.pdf", style::minimal%>

    注:helper 将呈现完整的HTML文档,不应在布局中使用。

    PDF.js的详细程度

    可以通过以下方式设置 PDF.js的详细程度:

    
    $ export PDFJS_VIEWER_VERBOSITY=warnings
    
    
    
    

    详细级别:

    • 错误( 默认)
    • 警告
    • 信息

    自定义查看器

    如果你不满意pdfjs_viewer-rails发送的3种不同样式,你可以通过创建一个文件来进行自己的调整。 app/views/pdfjs_viewer/viewer/_extra_head.html.erb 这里文件将附加到查看器标记的<head>

    例如如果你想隐藏打印 icon:

    <!-- app/views/pdfjs_viewer/viewer/_extra_head.html.erb --><style>#print { display: none; }</style>

    注:你可以使用传递给 pdfjs_viewer ( 如果你正在使用 helper )的参数:

    <!-- Somewhere in a view in your project --><%= pdfjs_viewer style:"reduced", something:"sick!"%>

    然后访问它们:

    <!-- app/views/pdfjs_viewer/viewer/_extra_head.html.erb --><%= tag.meta name:"something", content: something %>

    设置 CORS

    从 PDF.js 查看器的另一个域加载pdf时,可能需要设置交叉源资源共享策略,以允许读取你所在域的pdf。 如果你正直接从AmazonS3服务( 比如 )。 bucket.s3-us-west-1.amazonaws.com ),你需要将一个CORS策略添加到 S3 bucket。 CORS配置已经在S3上进行了测试:

    <?xml version="1.0" encoding="UTF-8"?>
    <CORSConfigurationxmlns="http://s3.amazonaws.com/doc/2006-03-01">
     <CORSRule>
     <AllowedOrigin>*</AllowedOrigin>
     <AllowedMethod>GET</AllowedMethod>
     <AllowedMethod>HEAD</AllowedMethod>
     <MaxAgeSeconds>3000</MaxAgeSeconds>
     <AllowedHeader>Range</AllowedHeader>
     <AllowedHeader>Authorization</AllowedHeader>
     <ExposeHeader>Accept-Ranges</ExposeHeader>
     <ExposeHeader>Content-Encoding</ExposeHeader>
     <ExposeHeader>Content-Length</ExposeHeader>
     <ExposeHeader>Content-Range</ExposeHeader>
     </CORSRule>
    </CORSConfiguration>

    插件开发

    可以通过以下方式执行测试:

    
    $ bundle exec rake
    
    
    
    

    这将使用phantomjs呈现 sample.pdf 并将屏幕截图保存到 test/sandbox 中。

    许可证

    pdfjs_viewer-rails是在 MIT许可协议下发布的。


    VIEW  PAC  PACK  rails  PDF  Viewer  
    相关文章