Vue使用pdfobject实现预览pdf的示例详解

作者:会说法语的猪

PDFObject 是一个 JavaScript 库用来在HTML中动态嵌入 PDF 文档。这篇文章主要为大家详细介绍了使用pdfobject实现预览pdf的功能,需要的可以了解一下

之前写过一篇预览pdf的,Vue使用vue-pdf实现PDF文件预览 ,大家按需所用

一般项目中在上传文件之前可能会有 先预览一下,看是否符合要求,符合再上传,这里先说了pdf文件,使用pdfobject库,也很方便

pnpm add pdfobject

import pdf from 'pdfobject'

这里使用会借助于FileReader,FileReader用于读取文件 

// 点击文件上传回调
handlePreview(file) {
  const { raw } = file
  // 预览pdf
  // FileReader用于读取文件
  let reader = new FileReader()
  reader.readAsDataURL(raw) // 这里只需要将文件传进去就可以了
  reader.onload = e => {
    // reader.result 同 e.target.result
    // 1.文件名 2.要将pdf渲染到的指定位置(dom元素) 3.指定在embed标签中的显示的宽度
    pdf.embed(reader.result, '#previewPdfAndDocx', { width: '100%' })

我这里没在上传之前判断,这里是上传之后,点击文件的时候进行预览,也可以在上传文件之前进行预览,然后决定是否进行上传。根据具体项目需求来 

除了上文,还可以利用pdfobject实现其他功能,希望对大家有所帮助

效果1:在指定位置(当指定位置为全局时)浏览PDF

<!DOCTYPE html>
        <meta charset="UTF-8">
        <title>在指定div中浏览PDF</title>
        <!--在此引入bootstrap只为初始化样式div样式-->
        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <style>
            /* 添加样式是为了实现全屏效果 */
            html,body{
                height: 100%;
                overflow: hidden;
            #example1{
                height: 100%;
            .pdfobject-container{
                /* height: 500px; */
            .pdfobject{
                /* border: 1px solid #666; */
        </style>
    </head>
        <div id="example1"></div>
        <script type="text/javascript" src="js/pdfobject.min.js"></script>
        <script>
            // 我的pdf文件放在项目的pdf文件夹下,名字叫做Java.pdf
            PDFObject.embed("pdf/Java.pdf", "#example1");
        </script>
    </body>
</html>

效果2:在指定位置(当指定位置为局部时)浏览PDF

<!DOCTYPE html>
        <meta charset="UTF-8">
        <title>在指定div中浏览PDF</title>
        <!--在此引入bootstrap只为初始化样式div样式-->
        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <style>
            html,body{
                height: 100%;
                overflow: hidden;
                /* 添加背景颜色是为了方便查看整个body范围 */
                background-color: cornflowerblue;
            #example1{
                /* 设置放置PDF的div的样式 */
                height: 50%;
                width: 50%;
            /* PDF容器样式 */
            .pdfobject-container{
                /* height: 500px; */
            /* PDF样式 */
            .pdfobject{
                /* border: 1px solid #666; */
        </style>
    </head>
        <div id="example1"></div>
        <script type="text/javascript" src="js/pdfobject.min.js"></script>
        <script>
            // 我的pdf文件放在项目的pdf文件夹下,名字叫做Java.pdf
            PDFObject.embed("pdf/Java.pdf", "#example1");
        </script>
    </body>
</html>

效果3:指定从多少页开始阅读(必须同时指定显示PDF的div)

<!DOCTYPE html>
        <meta charset="UTF-8">
        <title>在指定div中浏览PDF</title>
        <!--在此引入bootstrap只为初始化样式div样式-->
        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <style>
            /* 添加样式是为了实现全屏效果 */
            html,body{
                height: 100%;
                overflow: hidden;
            #example1{
                height: 100%;
            .pdfobject-container{
                /* height: 500px; */
            .pdfobject{
                /* border: 1px solid #666; */
        </style>
    </head>
        <div id="example1"></div>
        <script type="text/javascript" src="js/pdfobject.min.js"></script>
        <script>
            // 我的pdf文件放在项目的pdf文件夹下,名字叫做Java.pdf,指定PDF从20页开始阅读
            PDFObject.embed("pdf/Java.pdf", "#example1", {page: "20"});
        </script>
    </body>
</html>

到此这篇关于Vue使用pdfobject实现预览pdf的示例详解的文章就介绍到这了,更多相关Vue pdfobject预览pdf内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • vue和react的区别及优缺点解读
    vue和react的区别及优缺点解读
    2023-03-03
  • vue3升级常见问题详细汇总
    vue3升级常见问题详细汇总
    2023-03-03
  • vue输入框中输完后光标自动跳到下一个输入框中的实现方法
    vue输入框中输完后光标自动跳到下一个输入框中的实现方法
    2023-03-03
  • vue如何使用driver.js实现项目功能向导指引
    vue如何使用driver.js实现项目功能向导指引
    2023-03-03
  • Vue使用pdfobject实现预览pdf的示例详解
    Vue使用pdfobject实现预览pdf的示例详解
    2023-03-03
  • Vue使用vue-pdf实现PDF文件预览
    Vue使用vue-pdf实现PDF文件预览
    2023-03-03
  • Vue+Echarts实现分时图和交易量图的绘制
    Vue+Echarts实现分时图和交易量图的绘制
    2023-03-03
  • Element实现复杂table表格结构的项目实践
    Element实现复杂table表格结构的项目实践
    2023-03-03
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号