我正在研究 PDF.js,但似乎无法找到解决我的问题的方法。
我有一个带有裁剪区域和出血的 PDF,我需要获取裁剪区域以便我可以在 HTML Canvas 中裁剪 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
在您的应用中获取裁切框。
关于javascript - 使用 PDF.js 获取 PDF 的裁切区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28855900/