当前位置:首页 > JavaScript

js实现pdf旋转

2026-03-01 14:31:16JavaScript

使用PDF.js实现PDF旋转

PDF.js是一个由Mozilla开发的JavaScript库,用于在浏览器中渲染PDF文档。以下方法可以实现PDF旋转功能:

安装PDF.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.11.338/pdf.min.js"></script>

初始化PDF.js并加载文档

const pdfjsLib = window['pdfjs-dist/build/pdf'];
pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.11.338/pdf.worker.min.js';

async function loadPDF(url) {
  const loadingTask = pdfjsLib.getDocument(url);
  const pdf = await loadingTask.promise;
  return pdf;
}

旋转PDF页面

js实现pdf旋转

async function rotatePage(pdf, pageNumber, degrees) {
  const page = await pdf.getPage(pageNumber);
  const viewport = page.getViewport({ rotation: degrees });

  const canvas = document.createElement('canvas');
  const context = canvas.getContext('2d');
  canvas.height = viewport.height;
  canvas.width = viewport.width;

  await page.render({
    canvasContext: context,
    viewport: viewport
  }).promise;

  return canvas;
}

使用示例

const pdfUrl = 'example.pdf';
loadPDF(pdfUrl).then(pdf => {
  // 旋转第一页90度
  rotatePage(pdf, 1, 90).then(canvas => {
    document.body.appendChild(canvas);
  });
});

使用浏览器打印API旋转PDF

另一种方法是利用浏览器的打印功能来实现旋转效果:

js实现pdf旋转

function rotatePDFForPrint() {
  const style = document.createElement('style');
  style.innerHTML = `
    @page {
      size: auto;
      transform: rotate(90deg);
    }
  `;
  document.head.appendChild(style);
  window.print();
}

使用第三方库PDF-LIB实现旋转

PDF-LIB是一个更现代的JavaScript库,提供更全面的PDF操作功能:

安装PDF-LIB

npm install pdf-lib

旋转PDF代码示例

import { PDFDocument } from 'pdf-lib';

async function rotatePDFPages(pdfBytes, degrees) {
  const pdfDoc = await PDFDocument.load(pdfBytes);
  const pages = pdfDoc.getPages();

  pages.forEach(page => {
    page.setRotation(degrees);
  });

  return await pdfDoc.save();
}

注意事项

  • 旋转角度应为90度的倍数(0, 90, 180, 270)
  • 旋转操作会增加内存使用,特别是大文档
  • 某些PDF可能包含限制旋转的权限设置
  • 客户端旋转不会修改原始PDF文件,仅影响显示

以上方法提供了不同场景下的PDF旋转解决方案,可根据具体需求选择适合的实现方式。

标签: jspdf
分享给朋友:

相关文章

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…

js实现代码雨

js实现代码雨

实现代码雨效果 使用HTML5 Canvas和JavaScript可以轻松实现经典的代码雨效果。以下是完整的实现代码和说明: HTML结构 <!DOCTYPE html> <ht…