分享基于PDF.JS的移动端PDF阅读器代码

news2024/12/23 6:22:28

一、前言

在之前的文章《分享基于PDF.js的pdf阅读器代码》里提到了PC端基于PDF.js的阅读器,本文将提供针对移动端的版本。

二、pdfViewer

为了能够直接使用,这里分享一下经过简单修改后能直接使用的pdfViewer代码:

pdfViewer代码目录(pdfViewer代码包本文查看附件):

在这里插入图片描述

以Vue工程为例:
①将pdfViewer代码放到pubilc目录下(pdfViewer代码包本文查看附件)
②使用下面的链接进行pdf访问:http://xxx/pdfViewer/web/viewer.html?file=pdfUrl,例如:http://localhost:9999/pdfViewer/web/viewer.html?file=http://localhost:9999/pdfViewer/web/compressed.tracemonkey-pldi-09.pdf

其中,http://xxx 为项目访问地址。

为了能够直接访问到viewer.html,对于Vite项目需要做一些配置:

// src\router\index.ts

const router = createRouter({
  history: createWebHistory(),
  ...
})
// build\vite\plugin\html.ts

/**
 * Plugin to minimize and use ejs template syntax in index.html.
 * https://github.com/anncwb/vite-plugin-html
 */
import type { PluginOption } from 'vite'
import { createHtmlPlugin } from 'vite-plugin-html'

export function configHtmlPlugin(env: ViteEnv) {
  const htmlPlugin: PluginOption[] = createHtmlPlugin({
    pages: [
      {
        filename: '/index.html',
        template: '/index.html',
      },
      {
        filename: '/mobile-viewer/viewer.html',
        template: '/public/pdfViewer/web/viewer.html'
      }
    ]
  })
  return htmlPlugin
}

// build\vite\plugin\index.ts
import { configHtmlPlugin } from './html'

/**
 * 配置 vite 插件
 * @param viteEnv vite 环境变量配置文件键值队 object
 * @param isBuild 是否是 build 环境 true/false
 * @returns vitePlugins[]
 */
export function createVitePlugins(viteEnv: ViteEnv) {
  const vitePlugins: (PluginOption | PluginOption[])[] = [
    // have to
    vue()
  ]

  // 加载 html 插件 vite-plugin-html
  vitePlugins.push(configHtmlPlugin(viteEnv))

  return vitePlugins
}
// vite.config.ts

import { createVitePlugins } from './build/vite/plugin'

export default ({ command, mode }: ConfigEnv): UserConfig => {
  return {
   // 其它配置
    ...
    // 加载插件
    plugins: createVitePlugins(viteEnv)
  }
}


预览效果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2106462.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot2:请求处理原理分析-FORM表单请求接口

一、RESTFUL简介 Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改…

气膜快递仓:便捷与效率的完美结合—轻空间

随着快递行业的飞速发展,仓储物流的需求日益增加。在这个以速度为核心竞争力的行业中,如何快速、高效地处理大量货物成为企业亟待解决的问题。气膜快递仓作为一种新型仓储解决方案,以其便捷与效率的优势,迅速成为市场的宠儿&#…

【多线程】深入剖析生产者-消费者模型

💐个人主页:初晴~ 📚相关专栏:多线程 / javaEE初阶 一、阻塞队列 阻塞队列是⼀种特殊的队列,也遵守 "先进先出" 的原则。是在普通的队列基础上做出了补充。 java标准库中的原有的队列Queue及其子类&#xf…

ElasticSearch-ELK

Logstash Logstash 配置文件结构Logstash 导入数据到 ES同步数据库数据到 ES FileBeatELK(采集 Tomcat 服务器日志) 使用FileBeats将日志发送到LogstashLogstash输出数据到Elasticsearch(logstash开头的索引) 利用Logstash过滤器解…

JVM4-运行时数据区

目录 概述 程序计数器 栈 Java虚拟机栈 概述 栈帧的组成 局部变量表 操作数栈 帧数据 栈内存溢出 本地方法栈 堆 方法区 类的元信息 运行时常量池 方法区的实现 方法区的溢出 字符串常量池 直接内存 概述 Java虚拟机在运行Java程序过程中管理的内存区域&am…

一款好看的导航网HTML源码((全静态页面带特效)

源码介绍 一款好看的导航网HTML源码(全静态页面带特效),页面自适应,单页源码没有后台,需要的下载。 效果预览 源码获取 一款好看的导航网HTML源码

JENV版本管理工具

下载地址&#xff1a;https://github.com/jenv/jenv 安装步骤 将其添加到PATH中 使用方法&#xff08;注意&#xff1a;局部配置会覆盖全局配置。使用命令可覆盖局部&#xff09; 添加新的Java环境&#xff08;需提供绝对路径&#xff09; jenv add <名称> <路径>…

AIoTedge IoT平台替代网关、PLC和HMI,实现智慧农业大棚控制

AIoTedge作为一个集成了边缘物联网平台、软网关和边缘AI平台的创新产品&#xff0c;它通过边缘计算技术实现了数据的即时处理和智能分析&#xff0c;有效降低了延迟和带宽消耗。在智慧农业大棚的智能控制中&#xff0c;AIoTedge可以替代传统的网关、PLC和HMI&#xff08;人机界…

嵌入式全栈开发学习笔记---C++(运算符重载)

目录 运算符重载概念 运算符重载语法 运算符重载的两种方法 运算符重载的步骤 运算符重载限制 运算符重载原则 重载输出运算符 如何判断返回引用还是普通变量&#xff1f; 赋值运算符重载 重载自增运算符 重载数组下标运算符[ ] 重载函数调用运算符( ) 不要重载逻…

聚乙二醇-降冰片烯!有啥用?打印各种3D结构支持细胞培养!

大家好&#xff0c;今天我们来了解一项关于3D生物打印的研究——《Poly(ethylene glycol)-Norbornene as a Photo-Click Bioink for Digital Light Processing 3D Bioprinting》发表于《ACS Applied Materials & Interfaces》。3D生物打印在组织工程和再生医学领域具有重要…

【RAG】LongRAG:利用长上下文LLMs增强检索增强生成

前言 现有的RAG框架通常使用100词的短段落作为检索单元&#xff0c;这种设计使得检索器需要在大量语料库中搜索&#xff0c;增加了工作负担&#xff0c;并且容易引入难负样本&#xff0c;影响性能。LongRAG框架为了解决这一问题&#xff0c;该框架使用长检索单元&#xff08;最…

伴奏提取免费软件怎么选?这5款工具让编辑更简单

音频提取&#xff0c;听起来可能有点技术范&#xff0c;但其实它就在我们生活的各种小细节里。 比如在网上看到一个超有感觉的视频&#xff0c;背景音乐简直完美&#xff0c;但你只想保存这段音乐&#xff1b;又或者你是个播客&#xff0c;需要从一段采访中提取清晰的对话声轨…

全国百佳出版社专著转让

1、信息化XXX高校英语教学模式研究 2、高校计算机教学XXXXXX革创新研究 3、文创产品设计XXXXXX 4、多元化语文教学&#xff1a;XXX策略

拆解kolors古诗文绘本comfyui工作流,学习提示词多样性组合!

前言 三人行必有我师&#xff0c;在comfyui工作流的搭建中这句话同样有用&#xff0c;几天内我们就学习如何借助kolors这个更具中国元素的模型生古诗文绘本工作流&#xff01; 老规矩先说原理&#xff0c;借助CR prompt list节点 1.搭建kolors文生图工作流 不会搭建kolors文生…

21.新增管理员页面制作

新增管理员页面制作 1.修改AdminUser.vue <template><el-main><!-- 搜索栏 --><el-form :model"searchParm" :inline"true" size"default"><el-form-item><el-input v-model"searchParm.nickName"…

9. GIS技术支持工程师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

STM32(九):定时器——TIM编码器接口

Encoder Interface 编码器接口 编码器接口可接收增量&#xff08;正交&#xff09;编码器的信号&#xff0c;根据编码器旋转产生的正交信号脉冲&#xff0c;自动控制CNT自增或自减&#xff0c;从而指示编码器的位置、旋转方向和旋转速度。 每个高级定时器和通用定时器都拥有1个…

深度学习(七)-计算机视觉基础

计算机视觉 计算机视觉在广义上是和图像相关的技术总称。包括图像的采集获取&#xff0c;图 像的压缩编码&#xff0c;图像的存储和传输&#xff0c;图像的合成&#xff0c;三维图像重建&#xff0c;图像增强&#xff0c;图像修复&#xff0c;图像的分类和识别&#xff0c;目…

探索中国星坤:构建全球合作网络,服务全球客户!

在全球化的浪潮中&#xff0c;中国星坤以其卓越的产品和服务&#xff0c;成为全球通信、计算机、医疗电子等多个行业的领军企业。通过构建广泛的全球代理商合作伙伴网络&#xff0c;星坤不仅提升了自身的品牌影响力&#xff0c;更确保了其产品和服务的全球覆盖。本文将探讨星坤…

windows 如何使用免安装版 node?

由于工作需要&#xff0c;本机无法自主安装软件&#xff0c;于是产生了这样一个需求。苦寻全网良久才实现&#xff0c;所以必须把这个过程记录下来&#xff0c;以防后期再次遇到同样的问题。 &#xff08;1&#xff09;首先免安装版 node 下载 node 下载地址 根据自己的需要…