前端js打开pdf文件--文件通过浏览器打开,以pdf形式进行预览

3 篇文章 1 订阅

通过点击button按钮,触发 @click="openPDF(performance_report)"方法,把对应需要展示的pdf传送到openPDF()方法内,这里的pdf文件格式必须包括id、name、url。

在这里,performance_report为预览的文件:

    <div>
        <el-button type="text" size="mini" @click="openPDF(performance_report)">
            测试报告
        </el-button>
    </div>

<script>
    export default {
        components: {},
        data() {
            return {
                performance_report: [{
                    id: null,//文件的id
                    name: "",//文件的名称
                    url: "",//文件的url
                }, ],
            };
        },


        created() {},
        mounted() {},

        computed: {},

        methods: {
            //打开的文件一般是在后端存储的,从后端取到文件后,把文件传输到openPDF方法,用val接收即可。
            openPDF(val) {
                axios({
                    method: "get",
                    url: val[0].url,
                    params: {
                        fileId: val[0].id,
                    },
                    responseType: "blob",
                }).then((res) => {
                    console.log("res", res);
                    if (res.status == "500") {
                        this.$message({
                            message: "下载失败!",
                            type: "error",
                        });
                        return;
                    }
                    //文件以pdf形式进行预览
                    let blob = new Blob([res.data], {
                        type: "application/pdf;chartset=UTF-8",
                    });
                    let fileURL = URL.createObjectURL(blob);
                    // this.fileURLOther = fileURL;
                    window.open(fileURL);
                });
            }
        }
    }
</script>
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
前端预览 PDF 静态文件,可以考虑使用以下两种方式: 1. 使用 <embed> 标签 <embed> 标签可以在网页中嵌入 PDF 文件,从而实现在线预览。示例代码如下: ``` <embed src="example.pdf" type="application/pdf" width="100%" height="600px" /> ``` 其中,`src` 属性指定 PDF 文件路径;`type` 属性指定文件类型为 PDF;`width` 和 `height` 属性指定嵌入对象的宽度和高度。 2. 使用 PDF.jsPDF.js 是 Mozilla 开发的一个 JavaScript 库,可以在浏览器中渲染 PDF 文件。示例代码如下: ``` <!-- 引入 PDF.js 库 --> <script src="pdf.js"></script> <!-- 创建一个容器 --> <div id="pdf-container"></div> <!-- 渲染 PDF 文件 --> <script> // 获取 PDF 文件路径 var pdfUrl = 'example.pdf'; // 获取容器元素 var container = document.getElementById('pdf-container'); // 加载 PDF 文件 PDFJS.getDocument(pdfUrl).then(function(pdf) { // 获取第一页 pdf.getPage(1).then(function(page) { // 创建 canvas 元素 var canvas = document.createElement('canvas'); // 设置 canvas 尺寸 var viewport = page.getViewport(1); canvas.width = viewport.width; canvas.height = viewport.height; // 获取渲染上下文 var context = canvas.getContext('2d'); // 渲染 PDF 页面到 canvas page.render({canvasContext: context, viewport: viewport}); // 添加 canvas 到容器 container.appendChild(canvas); }); }); </script> ``` 其中,`pdf.js` 是 PDF.js 库的文件路径;`pdfUrl` 是 PDF 文件路径;`pdf-container` 是渲染容器元素的 ID。 以上两种方式都可以实现在线预览 PDF 静态文件,具体选择哪种方式,可以根据项目需要和个人喜好来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值