2015-07-20 57 views
2

我只需要在流星的客户端使用pdf.js。我一直在努力工作。所以这篇文章不会让你更好地理解我到目前为止所做的事情。将Mozila Pdf.js与Meteor集成

我开始使用流星包pascoual:pdfjs。经过这个包中给出的例子,我得到了<canvas>里面只有一个页面,如Hello Worldexample in pdf.js.但我想要pdf.js给出demo。经过一番研究和发布堆栈溢出没有得出结论,如何做到这一点与此包相同。

pdf.js推荐的另一个软件包是peerlibrary:pdf.js。我没有使用它bcoz它是为客户端和服务器端。我只想在客户端查看提供url的pdf文件。

然后我开始如何在我的项目中手动设置PDF.js。我遵循Setup PDF.js in a website。从pdf.js下载了gh-pages分支,正如所讲的那样。复制buildweb目录并放入我的流星项目。我自定义文件作为每流星,项目结构如下:

.meteor/ 
client/ 
    |- build/ 
    | |- pdf.js 
    | |- pdf.worker.js 
    |- cmaps/           -- contains all .bcmap files 
    |- stylesheets/ 
    | |- viewer.css 
    |- web/ 
    | |- compatibility.js 
    | |- debugger.js 
    | |- l10n.js 
    | |- viewer.html 
    | |- viewer.js 
lib/ 
    |- locale/ 
public/ 
    |- compressed.tracemonkey-pldi-09.pdf    -- default pdf 
    |- /* all images present in image directory*/ 

错误运行工程后:

  1. 客户端/网络/ viewer.html:1:无法设置DOCTYPE这里。 (流星为你设置)。

    • 删除<!DOCTYPE html>形式viewer.html
  2. 客户端/网络/ viewer.html:23:坏格式的HTML模板

    • 查看器中删除<html><head>。 html。只保留身体。

万岁!现在黑色的观众来了。但是默认的PDF没有加载... :(

后很长一段时间,我发现东西在构建\ pdf.js

enter image description here

我改变了这里(不知道它会在未来影响或者没有)!

PDFJS.disableWorker = true; 

再次Hurrey默认pdf文件加载正确&工具栏也工作正常

Viewer.html包含<body>标记。所以,它在第一次着陆时在浏览器中加载。如果我删除<body>,如果它给bad formatting in HTML template,那么我们必须将其作为模板。

现在我的问题是:

  • 我怎么可以路线viewer.html,如果它不是一个模板?
  • 如果我制作viewer.html作为模板,那么我该如何保持viewer.js代码?
  • 最后但并非最不重要的是,我会朝正确的方向吗?有没有其他的方式...?

请分享您的宝贵意见。等待一个健康的讨论...

回答

1
  • 哪能路线viewer.html如果它不是一个模板?

您将需要使用模板,这就是流星路线是如何工作的

  • 如果我做viewer.html为模板的话,我怎么能保持viewer.js代码?

你需要将它包装成模板rendered功能:

Template.YourTemplate.rendered = function() { 
    //do your stuff 
}; 
  • 最后但并非最不重要的,我该怎么正确的方向?有没有其他的方式...?

没有达到你想要的东西没有明显的方式并没有其他几种方法,你确定你自己。我想正确的做法是(至少)起作用的。试试模板方法,看看how to use iron-router

但是,如果您难以按照自己的方式展示PDF,我建议您尝试peerlibrary:pdf.js。它在服务器上也能正常工作的事实不应该成为阻碍,它不会在性能上产生重大影响,它最终可能会用于实现您尚未考虑的功能。

1

使用iframe来加载URL这样

<iframe src="pathof/web/viewer.html?file=url of pdf file"></iframe> 

这为我工作。

0

你可以在iframe中使用谷歌文档查看器:

<iframe src="http://docs.google.com/gview?url={{url}}&embedded=true" frameborder="0"></iframe> 

的网址写要打开PDF您的网址。