标签:html pdf-js javascript pdf
我正在尝试解析PDF文档,这很顺利. PDF是在Adobe FormCentral中创建的,包含单个表单元素(日期字段).
头:
<script type="text/javascript" charset="utf-8" src="jquery.js"></script>
<script type="text/javascript" charset="utf-8" src="common.js"></script>
<script type="text/javascript" charset="utf-8" src="pdfjs/build/pdf.js"></script>
<script type="text/javascript" charset="utf-8" src="mscripts.js"></script>
<script type="text/javascript">
$(document).ready(function() {
loadPDFJS();
});
</script>
身体:
<div id="viewer"></div>
JS:
function loadPDFJS(){
var canvasContainer = document.getElementById('viewer');
PDFJS.workerSrc = 'build/pdf.worker.js';
PDFJS.getDocument('mpdf.pdf').then(function(pdf) {
pdf.getPage(1).then(renderPage);
function renderPage(page) {
console.log(page);
var xyz = window.getComputedStyle(canvasContainer);
var w = parseInt(xyz.width.replace("px", ""));
var viewport = page.getViewport(1);
var scale = w / viewport.width;
var scaledViewport = page.getViewport(scale);
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.height = scaledViewport.height;
canvas.width = scaledViewport.width;
var renderContext = {
canvasContext: context,
viewport: scaledViewport
};
page.render(renderContext).then(function () {
document.getElementById('viewer').appendChild(canvas);
});
}
});
}
而这段代码确实呈现了PDF.但问题来了.我需要知道元素的尺寸和位置(在这种情况下,只有一个).我查看了PDF.js github页面上的Demo,并记录了页面对象.在包含文本的PDF文档中,我注意到记录的PDFPage包含文本(但是我无法提取任何维度),但表单元素似乎无法解析.也许他们是背景的一部分?
我只能找到一个用于访问AcroForm字段的Java库,here,但我宁愿只关注一个库(最好是PDF.js)
问题:如何使用PDF.js检索PDF文档的所有表单元素的位置和尺寸?
解决方法:
老问题,但对于那些最终来到这里的人来说,它值得回答:
page.getAnnotations().then(function(items) {
console.log(items);
});
Items应该是一个数组,每个元素都应该有一个rect.还有PDF.js的这个fork(of fork)扩展了包含表单字段的功能,以允许用户从PDF呈现输入:
https://github.com/EvilTrev/pdf.js
标签:html,pdf-js,javascript,pdf 来源: https://codeday.me/bug/20190830/1765429.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。