vite react react-pdf pdfjs-dist 加载不全的解决方案 cmaps本地路径

pdf.js 字体无法显示
pdfjs-dist加载不全的解决方案
Rollup 配置 rollup-plugin-copy插件,进行打包构建时的文件复制

参考了网上诸多解决方案,都是webpack的引入包方式,

照猫画虎,把vite解决方案奉献给大家

vite.config.js

js 复制代码
import copy from 'rollup-plugin-copy' //引入插件

// https://vitejs.dev/config/
export default defineConfig({
    base: '/',
    plugins: [
        react(),
        viteCompression(),
        copy({
            targets: [
                { src: 'node_modules/pdfjs-dist/cmaps/', dest: 'public/' }, //执行拷贝
            ]
        })
    ],
})

主文件

js 复制代码
const cmaps = new URL('/cmaps', import.meta.url).href

{<Document
    file={url}// 文件地址
    className="pdf-viewer-show"
    onLoadSuccess={onDocumentLoadSuccess}
    onLoadError={onDocumentLoadError}
    options={{
        cMapUrl: `${cmaps}/`,
        cMapPacked: true,
        // disableWorker: true,
    }}
>
    {Array.from(new Array(numPages), (el, index) => (
        <Page
            key={`page_${index + 1}`}
            pageNumber={index + 1}
            renderAnnotationLayer={false}
            renderTextLayer={false}
        />
    ))}
</Document>}

最后页面中cmps静态资源位置位于

更多详细代码请关注公众号索取(备注:公众号):

相关推荐
yi碗吃不够几秒前
js中使用箭头函数以及setTimeout时this的指向问题
前端·javascript·vue.js
煸橙干儿~~2 小时前
el-table template slot-scope=“scope“ 不显示内容
javascript·vue.js·elementui
小王码农记2 小时前
vue3表格使用拖拽排序
前端·javascript·vue.js
2301_781833522 小时前
深入探索Element UI中el-input与el-select的非空校验艺术
javascript·vue.js·elementui
前端小趴菜052 小时前
useState函数
前端·javascript·react.js
程序员贵哥2 小时前
邮箱表单系统源码
javascript·css·vscode·青少年编程·html·php·phpstorm
Geeker552 小时前
从Mac电脑硬盘驱动器恢复数据的3种方法[终极指南]
android·windows·macos·智能手机·pdf·电脑·笔记本电脑
软件技术NINI2 小时前
Vue和Element UI 路由跳转
javascript·vue.js·elementui
分享者花花2 小时前
如何从 PDF文档中删除页面
android·前端·macos·智能手机·pdf·音视频·iphone