PDF.js 如何取到PDF的目录页码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDF.js 如何取到PDF的目录页码相关的知识,希望对你有一定的参考价值。
我现在已经通过getOutline().then(function(outline) )取得类似的目录信息了,就是不知道如何取得页码,我觉得关键就是dest[]数组里面的num和count是什么意思?求大神解析!
问题我自己解决了,百度知道添垃圾了 不好意思。
是提取PDF文件页面吧,可以提取的
用工具打开PDF文件,在最近编辑的地方可以打开
在点击进去提取PDF文件页面,可以提取奇数页或者偶数页
提取后可以直接使用,这个没有什么难的
参考技术A 在Adobe Acrobat 8 Professional插入页码,在“页码和日期格式”里面改起始页码就可以了。
但这仅是在AB里面加入页码,
如果你原来有页码,那就只有一页一页的改或者删除再重新加页码了。追问
可能我们说的不是同一个东西把,我是在做web开发的,要在页面上做个目录功能,还有我是才采用pdf.js库的,可能你没有用过把。
参考技术B 所以你是怎么解决的呢? 参考技术C 请问你是怎么解决的?我也有这个需求如何使用 pdf.js [关闭]
【中文标题】如何使用 pdf.js [关闭]【英文标题】:How to Use pdf.js [closed] 【发布时间】:2012-03-08 20:53:38 【问题描述】:我正在考虑使用pdf.js(一种允许在网页中嵌入 pdf 的开源工具)。没有任何关于如何使用它的文档。
我假设我所做的是使用标题中引用的脚本制作一个 html 页面,然后在正文中,我使用文件名和位置数组进行某种函数调用。有谁能帮帮我吗?
【问题讨论】:
### Github 文章我刚刚在 GitHub 上的项目 wiki 上开始了一篇文章 Setup PDF.js in a website。 ### 完成请求如果您有一些经验,请完成文章。 像viewerjs.org 这样更高级的东西可能是你想要的。 我想从PDF中提取嵌入的xml文件,有什么办法吗? 【参考方案1】:试试谷歌pdf.js documentation
/* create the PDF document */
var doc = new pdf();
doc.text(20, 20, 'hello, I am PDF.');
doc.text(20, 30, 'i was created in the browser using javascript.');
doc.text(20, 40, 'i can also be created from node.js');
/* Optional - set properties on the document */
doc.setProperties(
title: 'A sample document created by pdf.js',
subject: 'PDFs are kinda cool, i guess',
author: 'Marak Squires',
keywords: 'pdf.js, javascript, Marak, Marak Squires',
creator: 'pdf.js'
);
doc.addPage();
doc.setFontSize(22);
doc.text(20, 20, 'This is a title');
doc.setFontSize(16);
doc.text(20, 30, 'This is some normal sized text underneath.');
var fileName = "testFile"+new Date().getSeconds()+".pdf";
var pdfAsDataURI = doc.output('datauri', "fileName":fileName);
注意:此处提到的“pdf.js”项目是 https://github.com/Marak/pdf.js,自发布此答案以来已被弃用。 @Treffynnon 的回答是关于大多数搜索者正在寻找的仍然活跃的 Mozilla 项目 (https://github.com/mozilla/pdf.js)。
【讨论】:
我看到了,但我对 var=filename 上面的内容感到困惑。我是否需要任何 doc.addPage() 到 doc.text,以及上面的三倍 doc.texts? 另一个问题是我必须改变什么。我假设我必须更改最后一行的第一个“文件名”和文档属性。是这样吗? 这不是一个不同的pdf.js吗? @Swiss,这是从 2 月开始的,带有赞成票,并标记为答案。我想说这就是 OP 想要的。 是的,这就是它如此令人困惑的原因。该操作似乎是指将 pdf 显示为 html 的 mozilla 项目,但您链接到的博客中提到的项目是使用 javascript 创建 pdf 文件的不同项目。【参考方案2】:在他们的github readme 上有可用的文档。 他们引用following example code:
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
//
// See README for overview
//
'use strict';
//
// Fetch the PDF document from the URL using promises
//
PDFJS.getDocument('helloworld.pdf').then(function(pdf)
// Using promise to fetch the page
pdf.getPage(1).then(function(page)
var scale = 1.5;
var viewport = page.getViewport(scale);
//
// Prepare canvas using PDF page dimensions
//
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
//
// Render PDF page into canvas context
//
var renderContext =
canvasContext: context,
viewport: viewport
;
page.render(renderContext);
);
);
【讨论】:
没有很好的文档记录,但是您提取了 pdf.js zip 并保持其目录结构不变。然后要查看 pdf,您只需导航到 viewer.html 文件(通过浏览器),并将文件附加到末尾。前任。 yoursite.com/directory_that_viewer_._html_is_in/viewer.html?file=somepdfthatyouhave.pdf pdf 位置只是作为 GET 变量传递给 viewer.html 文件。 来自github wiki:“但是,我们确实询问您是否打算将查看器嵌入到您自己的站点中,它不仅仅是未修改的版本。请重新皮肤或建立在它之上。” - 鉴于他们可怕地不存在api documentation,这个项目确保你跳过足够多的箍来保持身材:\以上是关于PDF.js 如何取到PDF的目录页码的主要内容,如果未能解决你的问题,请参考以下文章