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

标签 javascript html pdf trim pdf.js

我正在研究 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/

相关文章:

pdf - sphinx 使用latexpdf 在我的pdf 中添加分页符?

javascript - 无法执行名为 "switch"的 Javascript 函数

javascript - 为什么 jQuery hide() 不起作用但 fadeOut() 起作用?

javascript - 使用 Jquery 插件 blueimp gallery 在灯箱中显示描述

html - 3D 在这个 HTML 中做什么?

ios - 如何在 iOS 应用程序中以编程方式创建 PDF 文件?

html - 使用nodejs将html转换为pdf

javascript - 将 Jquery 数据发布到 Express

jquery - 使用 Bootstrap 按钮和下拉元素的自定义选择标签行为

html - 文本框文本隐藏 float 标签文本框样式