使用PDF.js获取PDF的修剪区域
Get the Trim Area of a PDF with PDF.js?
我在玩PDF.js,似乎找不到解决问题的方法。
我有一个带有修剪区域和出血的PDF,我需要得到修剪区域,这样我就可以在HTML画布中裁剪PDF图像数据。
我看到Acrobat有javascript可以返回基于getPageBox的Trim("Trim")。PDF.js中有类似的东西吗?在控制台中检查Javascript PDF对象时,我似乎找不到参考。
我能够在编辑pdf.worker.js
之后获得它。按照1.7.225进行测试。首先,在get cropBox()
之后添加get trimBox()
,如下所示:
get trimBox() {
var trimBox = this.getInheritedPageProp('TrimBox', true);
if (!isArray(trimBox) || trimBox.length !== 4) {
return shadow(this, 'trimBox', this.mediaBox);
}
return shadow(this, 'trimBox', trimBox);
},
现在,在WorkerMessageHandler
的handler.on('GetPage', function ...
中,添加以下几行:
handler.on('GetPage', function wphSetupGetPage(data) {
return pdfManager.getPage(data.pageIndex).then(function (page) {
var rotatePromise = pdfManager.ensure(page, 'rotate');
var refPromise = pdfManager.ensure(page, 'ref');
var userUnitPromise = pdfManager.ensure(page, 'userUnit');
var viewPromise = pdfManager.ensure(page, 'view');
var trimBoxPromise = pdfManager.ensure(page, 'trimBox'); //added
return Promise.all([
rotatePromise,
refPromise,
userUnitPromise,
viewPromise,
trimBoxPromise //added
]).then(function (results) {
return {
rotate: results[0],
ref: results[1],
userUnit: results[2],
view: results[3],
trimBox: results[4] //added
就是这样。现在你可以通过page.pageInfo.trimBox
在你的应用程序中获得装饰框。
除了@Sangbok Lee的精彩回答,如果使用最新的PDF.js版本,this.getInheritedPageProp函数已更改为
this._getInheritableProperty('TrimBox', true)
想明白了。对于其他可能对第2654行的pdf.worker.js感兴趣的人,我添加了以下内容,暴露了trimBox。
tboxX = this.pageDict.map.TrimBox[0];
tboxY = this.pageDict.map.TrimBox[1];
tboxW = this.pageDict.map.TrimBox[2];
tboxH = this.pageDict.map.TrimBox[3];
我相信有一个更整洁的方法,但它是有效的。
相关文章:
- 如何使用javascript或html下载PDF格式的填写表单
- 如何将PDF作为二进制文件传递到window.open()
- 除修剪外的其他功能
- javascript.点击显示嵌入的pdf
- Javascript/Jquery Blob not showing Chrome PDF
- 为什么我得到错误IE修剪方法是't支持
- 在提交时打开thankyou.html+下载PDF
- 生成pdf或其他非html文件时的错误处理
- how to convert html <div> to pdf
- 将画布转换为pdf:黑色背景
- 如何在不在本地下载的情况下将url中提供的文件(pdf/doc)转换为json/string/base64格式
- 以PDF附件的形式通过电子邮件发送谷歌文档
- 将Meteor中的base64 PDF作为电子邮件附件
- 无法执行文件.退出Acrobat PDF中的操作
- 在浏览器中检测本机或第三方PDF插件
- 下载HTML5/Javascript MOBILE应用程序中的PDF文件
- 下载所选语言的pdf文件
- 将网页转换为具有样式的pdf
- 在Internet Explorer中从二进制文件打开PDF
- 使用PDF.js获取PDF的修剪区域