gpt4 book ai didi

javascript - 使用 PDF.js 获取 PDF 的裁切区域?

转载 作者:行者123 更新时间:2023-11-30 10:06:30 25 4
gpt4 key购买 nike

我正在研究 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);
},

现在,在 WorkerMessageHandlerhandler.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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com