一款前端PDF插件

EmbedPDF 一款Web PDF查看器,基于PDFium WebAssembly渲染,可快速集成到任何JavaScript项目(React、Vue、Svelte、原生JS等),提供开箱即用与无头组件两种模式。

一、核心优势

  • 框架无关:完美兼容React、Vue、Svelte、Preact、原生JS等,无框架锁定。

  • 性能强劲:底层用PDFium WebAssembly,渲染快、精度高,支持虚拟滚动。

  • 两种集成模式

    • 开箱即用(@embedpdf/snippet):2行代码快速集成,自带完整UI、工具栏、响应式布局。

    • 无头组件(@embedpdf/core):仅提供渲染引擎,100%自定义UI,体积更小。

  • 功能丰富:支持标注、文本搜索、缩放、旋转、内容编辑、插件化扩展。

与传统方案对比

方案 优势 劣势
EmbedPDF 易集成、高性能、可定制、框架无关、开源 较新,生态在完善
pdf.js 成熟、功能全 配置复杂、易报错、定制难
iframe/embed 零代码 无法定制、体验差、跨域限制
后端转图片 兼容性好 丢失文本、加载慢、无法交互

二、快速集成(开箱即用)

1. 安装
复制代码
npm install @embedpdf/snippet
# 或
yarn add @embedpdf/snippet
2. 原生JS示例
复制代码
<div id="pdf-viewer" style="height: 600px;"></div>
<script type="module">
  import { EmbedPDF } from '@embedpdf/snippet';
  new EmbedPDF({
    container: '#pdf-viewer',
    src: 'https://example.com/your-document.pdf'
  });
</script>
3. Vue示例
复制代码
<template>
  <div style="height: 600px;">
    <EmbedPDF :config="{ src: 'https://example.com/your-document.pdf' }" />
  </div>
</template>

<script setup>
import { EmbedPDF } from '@embedpdf/snippet/vue';
</script>
4. React示例
复制代码
import { EmbedPDF } from '@embedpdf/snippet/react';

function App() {
  return (
    <div style={{ height: '600px' }}>
      <EmbedPDF config={{ src: 'https://example.com/your-document.pdf' }} />
    </div>
  );
}

三、无头组件(自定义UI)

复制代码
npm install @embedpdf/core

import { createPDFEngine } from'@embedpdf/core';

const engine = createPDFEngine({
src: 'https://example.com/your-document.pdf'
});

// 监听页面加载
engine.on('pageLoaded', (page) => {
// 自定义渲染逻辑
});

// 翻页
engine.goToPage(2);

四、与传统方案对比

方案 优势 劣势
EmbedPDF 易集成、高性能、可定制、框架无关、开源 较新,生态在完善
pdf.js 成熟、功能全 配置复杂、易报错、定制难
iframe/embed 零代码 无法定制、体验差、跨域限制
后端转图片 兼容性好 丢失文本、加载慢、无法交互

五、地址

相关推荐
仿生狮子3 小时前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
Lvan的前端笔记6 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习6 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
敬往事一杯酒哈7 小时前
海康 AGV 导航读码器学习
学习
xcs194057 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风8 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
qq_284274059 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
Csvn9 小时前
框架性能优化
前端
qq_2842740510 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
回眸&啤酒鸭11 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能