网站首页 > 技术文章 正文
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。
什么是 PDFSlick
PDFSlick is a library that enables viewing of and interaction with PDF documents in React, SolidJS, Svelte and JavaScript apps. It's build on top of Mozilla's PDF.js, and utilises Zustand to provide a reactive store for the loaded documents.
PDFSlick 是一个库,可以在 React、SolidJS、Svelte 和 JavaScript 应用程序中查看 PDF 文档并与之交互。PDFSlick 构建在 Mozilla 的 PDF.js 之上,并利用 Zustand 为加载的文档提供反应式存储。
PDF.js 虽然很优秀而且非常稳定和成熟,其也是 Mozilla Firefox 中的 PDF 查看器,自 2011 年以来一直存在。然而,其完全是 Vanilla JavaScript,当涉及到在现代 JS 库(如 React 和 SolidJS)中使用时仍然有诸多不足。
PDFSlick 试图将所有这些有用的功能包装成一个更容易适应 React 和 SolidJS 世界的功能,最终作为组件和反应存储。
目前 PDFSlick 在 Github 通过 MIT 协议开源,是一个值得关注的前端开源项目。
如何使用 PDFSlick
首先需要安装依赖:
npm install @pdfslick/react
// yarn add @pdfslick/react
// pnpm add @pdfslick/react
开发者可以通过 usePDFSlick() Hooks 开始使用 PDFSlick,如以下基本示例所示:
import {usePDFSlick} from "@pdfslick/react";
import PDFNavigation from "./yourcomponents/PDFNavigation";
import "@pdfslick/react/dist/pdf_viewer.css";
type PDFViewerComponentProps = {
pdfFilePath: string,
};
const PDFViewerComponent = ({pdfFilePath}: PDFViewerComponent) => {
const {viewerRef, usePDFSlickStore, PDFSlickViewer} = usePDFSlick(
pdfFilePath,
{
scaleValue: "page-fit",
}
);
const scale = usePDFSlickStore((s) => s.scale);
const numPages = usePDFSlickStore((s) => s.numPages);
const pageNumber = usePDFSlickStore((s) => s.pageNumber);
return (
<div className="absolute inset-0 pdfSlick">
<div className="relative h-full">
<PDFSlickViewer {...{ viewerRef, usePDFSlickStore}} />
<PDFNavigation {...{ usePDFSlickStore}} />
<div className="absolute w-full top-0 left-0">
<p>Current scale: {scale}</p>
<p>Current page number: {pageNumber}</p>
<p>Total number of pages: {numPages}</p>
</div>
</div>
</div>
);
};
export default PDFViewerComponent;
提供 PDF 文档路径和 PDFSlick 选项对象后,usePDFSlick() Hooks 将返回一个对象,该对象由以下各项组成(除其他内容外):
- PDFSlickViewer 是用于查看 PDF 文档的 PDF 查看器组件
- viewerRef 是作为 组件的 prop 提供的 ref 回调
- usePDFSlickStore 允许在 React 组件中使用 PDFSlick 存储
同时,在 SolidJS 中使用也非常简单,比如下面的示例:
import {Component, createSignal} from "solid-js";
import {usePDFSlick} from "@pdfslick/solid";
type PDFViewerAppProps = {
pdfFilePath: string,
};
const PDFViewerApp: Component<PDFViewerAppProps> = ({ pdfFilePath }) => {
const {
viewerRef,
pdfSlickStore: store,
PDFSlickViewer,
} = usePDFSlick(pdfFilePath);
return (
<div class="absolute inset-0 bg-slate-200/70 flex flex-col pdfSlick">
<div class="flex-1 relative h-full">
<PDFSlickViewer {...{ store, viewerRef}} />
</div>
</div>
);
};
export default PDFViewerApp;
更多关于 PDFSlick 的用法和示例可以参考文末资料,本文不再过多展开
参考资料
https://github.com/pdfslick/pdfslick
https://pdfslick.dev/docs/solid
https://pdfslick.dev/examples
猜你喜欢
- 2025-06-28 前端神库!让你能在 Nodejs 里操作浏览器玩出花样!
- 2025-06-28 OpenAI久违发了篇「正经」论文:线性布局实现高效张量计算
- 2025-06-28 黑客WEB攻防技术实战宝典,WEB网络安全PDF电子书合集
- 2025-06-28 高效处理报表,掌握原生JS打印和导出报表为PDF的顺畅技巧!
- 2025-06-28 界面美观功能强大,终于可以告别单调的swagger ui了——knife4j
- 2025-06-28 PDFgear——一款接入AI智能化模型的免费PDF聊天软件
- 2025-06-28 5种开源PDF解析方案(JS/Node.js)及实战教程
- 2024-10-06 ?? JavaScript提取PDF图片 ?? js 导出pdf
- 2024-10-06 VUE前端编程:PDF插件填坑记 vue-to-pdf
- 2024-10-06 把HTML转成PDF的4个方案及实现方法
你 发表评论:
欢迎- 572℃几个Oracle空值处理函数 oracle处理null值的函数
- 569℃Oracle分析函数之Lag和Lead()使用
- 554℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 550℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 549℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 540℃【数据统计分析】详解Oracle分组函数之CUBE
- 529℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 523℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)