首页 > 其他分享 >EKP qhky 附件A4纸张打印效果

EKP qhky 附件A4纸张打印效果

时间:2024-09-29 15:22:47浏览次数:6  
标签:canvas const qhky A4 pdf 附件 PDF viewport EKP

一.需求背景

需求:EKP V16,对于附件打印 开发者一般情况下使用的是  请求直接预览打印 ,但是对于 需要自定义打印文件的大小 需要特别定制!
方案:使用 PDF.js 在 JSP 页面中显示 PDF 文件(EKPV16 项目中已引入 PDF.js 库)

定制前效果:

定制后效果:

 

二.Code  加载和渲染 PDF 文件

其中附件链接 可以是请求直接预览打印 或者 附件实际地址

    <div id="pdf-container"></div>
    <script>
        // PDF 文件的 URL
        const pdfUrl = "${pageContext.request.contextPath}/path/to/your/file/example.pdf";

        // 加载 PDF 文件
        pdfjsLib.getDocument(pdfUrl).promise.then(function(pdf) {
            console.log('Number of pages: ' + pdf.numPages);

            // 渲染第一页
            pdf.getPage(1).then(function(page) {
                const scale = 1.5;
                const viewport = page.getViewport({ scale: scale });

                // 创建 canvas 元素
                const container = document.getElementById('pdf-container');
                const canvas = document.createElement('canvas');
                container.appendChild(canvas);
                const context = canvas.getContext('2d');
                canvas.height = viewport.height;
                canvas.width = viewport.width;

                // 渲染 PDF 页面
                const renderContext = {
                    canvasContext: context,
                    viewport: viewport
                };
                page.render(renderContext);
            });
        }).catch(function(error) {
            console.error('Error loading PDF: ', error);
        });
    </script>

  

 

标签:canvas,const,qhky,A4,pdf,附件,PDF,viewport,EKP
From: https://www.cnblogs.com/crushgirl/p/18440070

相关文章

  • STA475 R to simulate data
    STA475 Assignment #1 (Fall 2024)InstructionsDue date: Friday September 27th at 11:59pm•  No-questions-asked grace period until Monday September 30th at 5pm•  No late submissions will be accepted after this timeWhere to s......
  • 金典120GB固态硬盘SM2258XT量产修复成功记录,附SM2258XT B16A开卡软件,VM29F01TEME1(2CA
    偶得一块二手的120G金典SSD,闲来无事搞一下量产,先上外观图片给大家看看:玩量产的一般都知道,找量产工具,肯定是要根据主控型号和闪存颗粒制程,来找相匹配的软件才行。因此我们拆开外壳,下图看到里面主控SM2258XT,颗粒丝印VM29F01TEME1-B16A,这块固态比较方便的地方是,单从丝印上就能看出是B1......
  • C# 多个PDF文档合并,带增加书签,两个A4合并到一页A3上
    此处用到的库是Itextsharp///<summary>///合成pdf文件///</summary>///<paramname="pdffileList"></param>///<paramname="outMergeFile"></param>///<paramname="RemovedOldFile"></param&g......
  • 2024 秋季PAT认证甲级(题解A1-A4)
    2024秋季PAT认证甲级(题解A-D)写在前面这一次PAT甲级应该是最近几次最简单的一次了,3个小时的比赛差不多30分钟就ak了(也是拿下了整场比赛的rk1),下面是题解报告,每个题目差不多都是20-30行代码,难度在洛谷普及组左右(cf1000-1200分)A.A-1HappyPatting题目描述The"HappyPatti......
  • 全新Versal HBM 系列自适应 SoC:XCVH1542-1MSEVSVA3697、XCVH1542-2MLELSVA4737、XCVH1
    系列概述VersalHBM系列具有快速内存、安全连接和自适应计算的异构集成,可消除内存绑定的计算密集型工作负载(如机器学习、数据库加速、下一代防火墙和高级网络测试仪)的处理和内存瓶颈。它从底层开始构建,以适应不断发展的算法、协议和数据速率。与VersalPremium系列*相比,通过集......
  • 题解:UVA486 English-Number Translator
    这是一道模拟题。前置知识数级思路当读取到了thousand和million时,计数器要乘上对应的值并累加到最终答案里,并且把计数器归零(因为该数级已经计算完了)。当读取到hundred时,只要计数器乘上\(100\)。否则如果是其他数,则直接累加到计数器即可。ACcode#include<bits/st......
  • T3/A40i支持Linux-5.10新内核啦,Docker、Qt、Python统统升级!
    自2021年创龙科技推出全志国产化率100%的T3/A40i工业核心板后,不到两年时间已超过800家工业客户选择创龙科技T3/A40i平台。随着客户产品的不断升级与迭代,部分“能源电力”、“工业自动化”行业客户对T3/A40i的Linux版本提出了更高要求,主要涉及Docker、Qt、Python等组件特性。秉持......
  • whystea4
    importpandasaspdfromsklearn.model_selectionimporttrain_test_splitfromsklearn.linear_modelimportLogisticRegression,Ridgefromsklearn.svmimportSVCfromsklearn.treeimportDecisionTreeClassifierfromsklearn.neighborsimportKNeighborsClassifi......
  • java4
    1.学习了java中的string类在Java中,String类是处理文本的核心类之一。String类是不可变的,一旦创建,字符串的内容不能更改。每次对字符串进行操作(如拼接、替换等)都会产生一个新的String对象。构造函数:String类有多个构造函数,可以从字节数组、字符数组、另一个String对象......
  • SOLA4012 2024 Commercial PV
    SOLA40122024CommercialPVproject1 Scope summaryYouarea graduateengineerinalargeengineeringdepartmentof a well-knownPVinstaller (SPREEnergy).Thecompanyhasreceivedatenderrequestfromalargeretailer,fortheinstallation ofa non......