Vue pdf 多文件全部页面显示 使用笔记

vue2中使用pdf.js浏览pdf文件,包括pdf显示、跳转指定页面、高亮关键词等功能 里面有很多的版本, 高版本的可能浏览器不兼容或者还要考虑手机上面的,最好下载低版本的,这里是v2.16.105版本。出现这个错误就是跨域的问题,找到pdfjs/web/viewer.js文件,注销跨域代码就可以。利用 web里面的viewer.html就可以直接打开pdf,里面有默认的一个pdf文档。在本地static里面创建文件夹pdfjs,然后将下载包里面的文件放进pdfjs。根据pdf.js内置函数,可直接修改当前页面,没有太大的跳动,利用Iframe。比如按照以上步骤方法为。 阅读详情

pdf 多文件页面全部显示

最早发布于博客园

参考链接

https://github.com/FranckFreiburger/vue-pdf#createloadingtasksrc

单个文件

安装

npm install --save vue-pdf

单个pdf文件显示全部,我是直接复制的参考链接

<template>
	<div>
		<pdf
			v-for="i in numPages"
			:key="i"
			:src="src"
			:page="i"
			style="display: inline-block; width: 25%"
		></pdf>
	</div>
</template>

<script>

import pdf from 'vue-pdf'

var loadingTask = pdf.createLoadingTask('https://cdn.mozilla.net/pdfjs/tracemonkey.pdf');

export default {
	components: {
		pdf
	},
	data() {
		return {
			src: loadingTask,
			numPages: undefined,
		}
	},
	mounted() {

		this.src.promise.then(pdf => {

			this.numPages = pdf.numPages;
		});
	}
}

</script>

多个pdf文件 全部显示

效果预览

多pdf文件全部预览

有几个点要注意

  • 一 本地pdf文件的话,pdf文件必须放置在 public (vue-cli 4+) 或者 static (vue-cli < 3) 文件夹下, 如果放置src/assets下, 会读取报错,下面demo pdf文件放置在public下

  • 二 使用线上的pdf文件时,需要后台配合处理跨域,否则读取不了pdf文件。

  • 三 得使用async/await语法糖取出promise对象里面的pdf总页数。

<template>
    <div class="about">
        <template v-for="item in handelPdfList">
            <pdf
                    v-for="i in item.numPages"
                    :key="i"
                    :src="item.src"
                    :page="i"
                    style="display: inline-block; width: 25%"
            ></pdf>
        </template>
    </div>
</template>
<script>
    import pdf from 'vue-pdf'


    export default {
        name: "about",
        components: {
            pdf
        },
        data() {
            return {
                // src: loadingTask,
                numPages: undefined,
                pdfList: [
                    {
                        src: '/test.pdf'
                    },
                    {
                        src: '/test.pdf'
                    }
                ],
                handelPdfList: []
            }
        },
        mounted() {
            this.handelPdf()
        },
        methods: {
            async handelPdf() {
                for (let info of this.pdfList) {
                    // 测试使用本地的pdf文件 (必须放到public(vue-cli 4+)或者static文件里面)
                    // info.src = '/test.pdf'
                    // 测试使用 自己搭建 已跨域的pdf文件
                    // info.src = 'http://127.0.0.1:8010/assets/test.pdf'
                    info['numPages'] = await pdf.createLoadingTask(info.src).promise.then(pdf => {
                        return pdf.numPages
                    })
                }
                // 数据处理完毕后  再复制
                this.handelPdfList = this.pdfList
            }
        }
    }
</script>

【Vue】vue2使用vue-pdf预览pdf文件,预览多页,在线预览方式二,vue页面内预览,无需额外pdfjs包,保姆级教程 参考文章1vue中前端实现pdf预览(含vue-pdf插件用法)参考文章2vue中运用vue-pdf实现pdf分页预览及缩放(可解决pdf预览不清晰问题)可以先看参考文章,再来看我的,这个作者的简洁粗暴,上手就能用,我写的主要针对新手小白但是只做了预览,如果需要切换上一页、下一页,请看参考2提示:以下是本篇文章正文内容,下面案例可供参考更多方法看官网传送门。 阅读详情

相关推荐

vue项目中使用vue-pdf或pdf.Js,实现在页面上预览pdf内容

vue项目中使用vue-pdf或pdf.Js,实现在页面上预览pdf内容

葫芦娃y的博客 4613

封装vue-pdf组件,实现批量预览pdf

vue-pdf封装

cfnwmp的博客 1131

Vue项目实现在线预览pdf,并且可以批量打印pdf的两种方法

同时在样式里设置如下打印样式,也是为了控制不多印空白页的问题。2.预览页面里,有个吸顶效果,然后这个pdf后端返回给我的是一个地址,我们预览pdf用到的插件是vue-office-pdf,由于有多个pdf,所以需要遍历,你会看到v-for=“pdf in pdfsArray”。这里需要注意的是,我们在打印时需要取消默认的页眉页脚的勾,然后将边距改为无,这样就能保证打印的页面无页眉页脚且是居中显示内容的了,目标打印机选择好,点击"打印"就能打了。

qq_37635012的博客 7283

vue3项目使用pdf.js插件实现:搜索高亮、修改pdf.js显示的页码、向pdf.js传值、控制搜索、处理接口文件流

官网下载地址:https://mozilla.github.io/pdf.js/getting_started/#download.1、使用pdfjs已经写好的viewer.html页面。下载后将pdf.js 放到服务器上 如:http://xxxx:8080/static/pdfjs。这种方法需要从官网上将pdf.js包下载下来。pdf.worker.js:负责核心解析。通过插件docx-preview实现。2、将PDF文件渲染成Canvas。pdf.js: 负责API解析,

wang13679201813的博客 2万+

卷积神经网络-猫狗识别(附源码)

利用python实现一个卷积神经网络,训练猫狗数据集,实现对猫狗图片的预测识别

m0_63223213的博客 2万+

Python Selenium调用IE11报错全解析:从环境配置到稳定运行

在Web自动化测试领域,Selenium作为主流的跨浏览器测试框架,其核心原理是通过WebDriver协议与不同浏览器的驱动程序进行通信,实现对浏览器行为的模拟与控制。这一技术为软件测试的自动化、回归测试的效率提升提供了重要价值,广泛应用于金融、政务等对遗留系统兼容性要求高的行业场景。然而,当技术栈涉及过时的浏览器如IE11时,环境配置的复杂性显著增加,特别是Python与Selenium的组合常遭遇驱动兼容性、安全设置等挑战。本文聚焦于解决Python Selenium驱动IE11时的典型报错问题,深入剖

weixin_28834765的博客 322

移动端vue2使用vue-pdf当前页面预览(分页优化)

1.继续上次的PDF预览优化,为解决文件过多一次性加载超长时间问题,做出分页效果,进行分页加载。

weixin_64740434的博客 1380

Win11下Wezterm配置Powershell默认终端全攻略(含主题同步技巧)

本文详细介绍了在Windows 11系统中,如何安装和配置Wezterm终端模拟器,并将其设置为PowerShell的默认终端。内容涵盖使用Winget或手动安装Wezterm,通过修改.lua配置文件切换默认Shell,并同步Campbell主题配色以还原熟悉的PowerShell视觉体验,旨在帮助开发者打造高效、个性化的命令行工作环境。

weixin_28363123的博客 1200

vue项目中 页面生成pdf并下载,vue 中页面转PDF

方法一 第一步、安装插件 // 第一个.将页面html转换成图片 npm install --save html2canvas // 第二个.将图片生成pdf npm install jspdf --save  第二步、定义全局函数,创建一个htmlToPdf.js文件在指定位置.例如放在('src/utils/html2pdf') // 导出页面为PDF格式 import html2...

csl125的博客 2万+

DC/DC开关电源学习笔记(十三)Buck-Boost升降压电路工作原理

Buck-Boost电路是一种能够实现输出电压高于或低于输入电压的DC-DC变换器,且输出电压极性与输入电压相反。它结合了Buck(降压)和Boost(升压)两种拓扑的特点,广泛应用于需要灵活电压调整的场合,如电池供电设备、LED驱动和工业控制系统。本文将从电路结构、工作原理、关键公式推导及实际应用等方面进行详细分析。

小幽余生不加糖 3503

Qt —— QWebEngineView加载谷歌离线地图(包含离线地图瓦片下载制作、附谷歌地图开发文档)

  关注 微信公众号搜索"Qt_io_"或"Qt开发者中心"了解更多关于Qt、C++开发知识.。 笔者 - jxd

1万+

【Vue2】vue指定页面div保存为pdf、vue指定页面内容转为文件流上传到后端、js指定div页面转为pdf文件

参考文章:实测可行、但是需要修改前端vue的JsPDF html2canvas 生成pdf并以文件流形式上传到后端项目背景:vue2框架:若依需求:把页面上某一块内容(或者整个页面),转为pdf文件上传到后端、或者下载到本地提示:以下是本篇文章正文内容,下面案例可供参考如有不懂,请看原文。我这里是基于原文实现,并且修改部分内容。js指定页面内容另存为pdf文件前端vue把页面转为file文件流上传到后端。

qq_51055690的博客 3653

实战:RK3568 Android14 调试 ES8388 音频驱动 (MIC 篇)

这个板子的MIC设计使用了硬件自动切换方案,极大简化了软件层面的逻辑。我们不需要根据耳机插拔事件去编写复杂的路由切换代码,只需要守住 LIN1/RIN1 这一个入口,配置好增益,剩下的交给那颗 SGM3157 芯片即可。祝您的录音功能调试顺利!

qq_33427070的博客 1677

vue中使用vue-pdf插件显示pdf

最近项目需求需要在vue中展示pdf,上网搜索了实现方法,找到vue-pdf这个插件非常好用,并且还有许多方法、属性能进行功能扩展。 一、安装 npm install --save vue-pdf 二、基本示例 <template> <div class="pdf"> <pdf ref="pdf" :src="pdfU...

weixin_30564785的博客 6980

【大语言模型 37】知识蒸馏深度实战:大模型向小模型迁移

本文深入探讨了知识蒸馏技术在大语言模型领域的应用,详细阐述了如何将庞大复杂的大模型知识有效迁移到轻量级小模型中。文章系统介绍了知识蒸馏的理论基础、多种蒸馏损失函数设计、特征匹配与注意力迁移技术、渐进式蒸馏策略以及全面的效果评估方法。通过实战案例和完整代码实现,读者将掌握从理论到实践的知识蒸馏全流程,了解如何在保持模型性能的同时显著降低计算资源需求,实现大语言模型的高效部署与应用。

熵数实验室 1508

华为OD机试双机位C卷:补种未成活胡杨 (C/C++/Py/Java/Js/Go)

华为OD机试双机位C卷 补种未成活胡杨,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试 - 补种未成活胡杨。

qq_45776114的博客 4001

vue将页面导出pdf,vue导出pdf

vue导出pdf 新需求:需要前端下载把当前html下载成pdf文件 菜鸟觉得牛逼啊,这必须记录下来嗷嗷嗷嗷 1、第一步:我们要添加两个模块 //第一个:将页面html转换成图片 npm install --save html2canvas //第二个:将图片生成pdf npm install jspdf --save 2、第二步: 定义全局函数…创建一个htmlToPdf.js文件在指定位置.我个人习惯放在('src/components/utils/htmlToPdf’)中 htmlToPdf.js文

weixin_45869649的博客 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

vue-pdf解决显示无法显示中文、中文打印预览乱码

vue-pdf解决显示中文乱码和打印预览乱码 1.正常的vue-pdf使用 1.1 安装vue-pdf cnpm install vue-pdf --save-dev 1.2 简单使用 <template> <pdf src="./123.pdf"></pdf> </template> <script> import pdf from 'vue-pdf' export default { components: { pdf

david的博客 9937

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

vue-pdf 一个基于vue的pdf预览插件(vue2.x)

vue-pdf 的使用示例 (vue2.x)

哥伦比亚。的博客 4万+

保姆级vue-pdf的使用过程

保姆级vue-pdf的使用过程,vue.runtime.esm.js:4605 [Vue warn]: Error in mounted hook: "TypeError: loadingTask.then is not a function"

2201_75705263的博客 1万+

vue实战指南 vue导出页面生成pdf文件

PDF(Portable Document Format)是一种通用的文件格式,广泛用于文档交换。PDF文件可以包含文本、图像和其他多媒体内容,并且可以在多种设备上保持一致的显示效果。在导出PDF时,我们可能需要对页面内容进行一些样式和布局上的调整,以适应PDF文档的显示效果。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 7277

Vue项目中导出页面为PDF文件

记录在Vue项目中导出页面为PDF文件功能一、使用步骤代码如下(示例):} else {})本文对Vue项目导出页面pdf方法做了封装,再任何需要导出的文件中直接调用。

m0_56991378的博客 4209

使用vue-pdf预览pdf和解决pdf电子签章显示问题

使用vue-pdf预览pdf和解决pdf电子签章显示问题 1.npm install vue-pdf 2.在页面使用vue-pdf <template> <div class="pdf1"> <Pdf v-for="i in numPages" :key="i" :src="src" :page="i" /> </div> </template> <script> import Pdf from "vue-pdf";

weixin_42523999的博客 7638

Vue中将页面导出为PDF

在Vue中实际是把页面利用canvas转换成图片,然后再用图片的base64码转成PDF,这里就使用到了两个插件html2canvas和jspdf。在目录src下创建utils文件夹,里面创建一个exportPdf.js,将下面内容复制到js文件里面。在项目或者需要用到的组件中引入方法。.........

HAI_GUI的博客 7028
上一篇: FastAPI WebSocket 基本使用二 分组发送Json数据
下一篇: 【FastAPI 十一项目生成器】 项目目录结构demo(自己改版)
wgPython
博客等级 码龄9年 100粉丝 69原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值