是否有PDF查看器可以嵌入到我的HTML中,我可以根据需要进行样式设计。
实际上我需要显示一些PDF文件页面并自定义我自己的UI(几个按钮来翻页和评论)。
如果有任何Ruby解决方案(实际上并不是关于编程,据我所知),它会很棒。
我想显示pdf,因为:
所以我不希望将其显示为图像或转换后的文本。但我想用简单的设计来展示页面。没有Flex或其他什么。
答案 0 :(得分:13)
是的,有可能,HTML5!
https://github.com/mozilla/pdf.js/
这是一个纯JavaScript库,它使用HTML5函数打开PDF文件并在页面中呈现它。 我在以下浏览器中成功测试了该库:
<强>用法强>
在HTML文件中包含javascript库并添加-element(是HTML5元素,因此它仅适用于HTML5浏览器):
<body>
<canvas id="the-canvas" style="border:1px solid black;"/>
</body>
使用与此类似的javascript调用在此画布中呈现PDF:
PDFJS.getDocument('your-file-goes-here.pdf').then(function(pdf) {
pdf.getPage(1).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
答案 1 :(得分:4)
除了一些内置PDF查看器的浏览器(Chrome会想到),PDF显示由外部插件处理,您无法控制。除了通过iframe之外,您无法将PDF嵌入到页面中,即使这样,它也是来自浏览器的完全外部应用程序,并且不受CSS样式规则的限制。
我没有看到Ruby与此有什么关系,因为那是一个服务器端操作,而你正在谈论客户端准备。您可以使用Ruby(或大多数其他语言)来提取PDF的文本,但您明确表示您不想这样做。
答案 2 :(得分:3)
与你问的最接近的是Google Doc Viewer。它至少不需要JavaScript。
答案 3 :(得分:2)
您也可以将PDF转换为HTML5并使用IDRSolutions的PDF2HTML5产品显示这些页面。输出可以放在您自己的CMS中,您可以添加自己的GUI,也可以使用现有选项。您可以查看free converter上的潜在输出并根据需要对其进行试用,它是一个100%的Java库,尽管这可能是也可能不是问题。
注意:为了透明起见,值得一提的是我目前是该产品的开发人员,所以我非常熟悉它的功能。
值得注意的是,pdf.js并不总是与实际的pdf完全匹配,但很难获得完全匹配并且仍然保留一些您想要的关键功能。但是在大多数情况下它确实做得很好。
答案 4 :(得分:1)
我所知道的唯一可以帮助你做到这一点的是Adobe Flashpaper(可能有开源替代品吗?不确定)。
这里的例子:
答案 5 :(得分:1)
考虑到兼容性,最好使用真正的adobe软件来渲染pdf。第三方渲染器大部分时间都在工作,但偶尔会遇到格式化方面的问题。您可以从adobe网站下载pdf阅读器,在Web浏览器上进行简单设置,并让浏览器使用正版pdf渲染器打开pdf文件。至少在Firefox上,你可以做到这一点。
如果要在不使用Web浏览器的情况下逐步显示pdf文件,则意味着您需要一个可与pdf渲染器配合使用的GUI工具包。我所知道的是 ruby / gnome2 上的 poppler 。我曾经能够将它与ruby 1.8一起使用,但由于我已经转移到ruby 1.9,我还没有尝试过。其他用于ruby的标准GUI工具包是 wxruby , fxruby , ruby / qt ,鞋等,但我是不确定哪一个有pdf渲染器。
对不起,如果没有帮助。
答案 6 :(得分:0)
无需外部库。许多浏览器都支持多种方式来查看pdfs。喜欢对象,iframe,嵌入。你可以使用一个带有iframe后备的对象,这个对象可以在下载时回退:
<object data="/pdf/sample-3pp.pdf#page=2" type="application/pdf" height="100%" width="100%">
<iframe src="/pdf/sample-3pp.pdf#page=2" style="border: none;" height="100%" width="100%">
This browser does not support PDFs. Please download the PDF to view it: <a href="/pdf/sample-3pp.pdf">Download PDF</a>
</iframe>
</object>