当前位置: 首页 > article >正文

原生js预览ofd文件

进入正文
第一步-Clone
打开GitHub或者Gitee,那个有账号用哪个,因为要下载包。

ofd-github ofd-gitee

然后,将项目clone下来。

然后,然后就是常规操作了兄弟:

编辑器打开项目,下载项目依赖npm install
看package.json,运行项目应该是npm run serve,具体以实际的package.json中的script脚本为准。
如果能运行起来,那就说明OK,依赖下载什么的没得问题。

第二步-build
重要的步骤来了,package.json中有一行脚本:

"scripts": {
"lib": "vue-cli-service build --target lib --name ofd --dest lib ./src/utils/ofd/ofd.js"
}
没错,执行它npm run lib

脚本执行完成后,会自动在项目根目录下生成一个lib文件夹,里面是打包后ofd的js文件,以及一个demo.html。

打开demo.html我们会发现,其内容异常简单,有用的代码就一行,即:<script src="./ofd.umd.js"></script>,这告诉我们,如果我们要用ofd.js,那你就需要在你的html文件内引入ofd.umd.js文件。

OK,接下来就是写代码时间了。

第三步-集成
怎么集成?

首先,将打包后的lib文件夹,整个搬迁到我们的项目下。

在html文件中,引入ofd.umd.js 或者 ofd.umd.min.js

<script src="./lib/ofd/ofd.umd.min.js"></script>
然后,定义一个[type=file]Input来选择ofd文件,再定义一个容器,用来展示渲染的ofd文件

<body>
<input type="file" ref="file" class="hidden" accept=".ofd" οnchange="fileChanged(event)" />
<div id="ofdContainer" style="width:100%;height:800px;"></div>
</body>
最后就是js了

function fileChanged(e) {
// 获取文件数据
const file = e.target.files[0];
// 转换ofd文档
ofd.parseOfdDocument({
ofd: file,
success: function (res) {
const screenWidth = 800;
const ofdRenderRes = ofd.renderOfd(screenWidth, res[0]);
let ofdContainerDiv = document.getElementById('ofdContainer');
// 清空元素
ofdContainerDiv.innerHTML = '';
for (const item of ofdRenderRes) {
ofdContainerDiv.appendChild(item);
}
},
fail: function(err){
console.error('ofd文件渲染失败',err);
}
});
}
到此为止,原生js渲染ofd就完成了。


http://www.kler.cn/a/394096.html

相关文章:

  • python opencv的orb特征检测(Oriented FAST and Rotated BRIEF)
  • Wndows bat将一个目录下所有子文件夹的路径导出到txt文本
  • gitlab-runner的卸载与安装
  • 1月第二讲:WxPython跨平台开发框架之图标选择界面
  • 二、SQL语言,《数据库系统概念》,原书第7版
  • csrf跨站请求伪造(portswigger)无防御措施
  • 第九部分 :1.STM32之通信接口《精讲》(USART,I2C,SPI,CAN,USB)
  • <Project-23 Navigator Portal> Python flask web 网站导航应用 可编辑界面:添加图片、URL、描述、位置移动
  • UI设计生成器:2024年在线设计工具
  • HCIP-HarmonyOS Application Developer 习题(二十一)
  • springboot接口返回数据给前端,BigDecimal为null但返回前端显示-1
  • CSS响应式布局实现1920屏幕1rem等于100px
  • selenium测试的一些语法
  • WEB攻防-通用漏洞SQL注入MYSQL跨库ACCESS偏移
  • vue3项目中内嵌vuepress工程两种实现方式
  • 构建现代 Python Web 应用的最佳实践:从 FastAPI 到 Tortoise ORM20241113
  • div加4个角边框 css
  • 从0开始学docker (每日更新 24-11-11)
  • 信号保存和信号处理
  • 修改yolo格式的labels类别、删除yolo格式的labels类别
  • redis7.x源码分析:(1) sds动态字符串
  • 【回溯法】——组合总数
  • 【AI技术】GPT-SoVits训练日志
  • 蓝桥杯——杨辉三角
  • 【PGCCC】Postgresql 物理流复制
  • 设计模式之工厂模式,但是宝可梦