vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue pdfobject预览pdf

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>
<html>
    <head>
        <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>
     
    <body>
        <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>
<html>
    <head>
        <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>
     
    <body>
        <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>
<html>
    <head>
        <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>
     
    <body>
        <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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文