使用vue进行Lodop打印的一些方法

news2024/11/18 11:33:07

文章目录

  • 使用Lodop进行打印的一般步骤
  • vue中使用lodop
  • kr-print-designer
    • 简介
    • 打印模板设计器
    • 打印预览
    • 模板设计页面
    • 安装
    • 引入

Lodop是一个JavaScript控件,用于在Web应用程序中进行打印操作。

使用Lodop进行打印的一般步骤

  1. 下载Lodop控件:首先,你需要从Lodop官方网站(http://www.lodop.net/)下载Lodop控件。根据你的操作系统选择相应的版本进行下载和安装。

  2. 引入Lodop控件:在你的Web应用程序中,将Lodop控件引入到页面中。可以通过在HTML页面中添加如下代码来实现:

<script src="http://localhost:8000/CLodopfuncs.js"></script>
  1. 初始化Lodop对象:在你的JavaScript代码中,创建一个Lodop对象,并初始化它。你可以使用以下代码进行初始化:
var lodop = getLodop();
lodop.PRINT_INIT("打印任务名称");
  1. 设置打印内容:使用Lodop对象的方法,设置你要打印的内容。例如,你可以使用ADD_PRINT_TEXT方法添加文本,使用ADD_PRINT_TABLE方法添加表格等。具体方法的使用可以参考Lodop的文档和示例。
lodop.ADD_PRINT_TEXT(50, 50, 200, 30, "Hello, World!");
  1. 执行打印操作:调用Lodop对象的打印方法执行打印操作。你可以使用PRINT方法直接打印,或者使用PREVIEW方法进行预览。
lodop.PRINT();

完整的打印代码示例如下:

<!DOCTYPE html>
<html>
<head>
  <title>Lodop打印示例</title>
  <script src="http://localhost:8000/CLodopfuncs.js"></script>
  <script>
    function printWithLodop() {
      var lodop = getLodop();
      lodop.PRINT_INIT("打印任务名称");
      lodop.ADD_PRINT_TEXT(50, 50, 200, 30, "Hello, World!");
      lodop.PRINT();
    }
  </script>
</head>
<body>
  <button onclick="printWithLodop()">打印</button>
</body>
</html>

vue中使用lodop

在Vue中使用Lodop进行打印时,同样需要确保客户端计算机已经正确安装了Lodop控件。你可以将Lodop控件相关文件放入public/lodop文件夹中,并通过引入CLodopfuncs.js来加载控件。在组件中,通过调用Lodop对象的方法来设置打印内容并执行打印操作。以下是在Vue中使用Lodop进行打印的一般步骤:

  1. 下载Lodop控件:与之前相同,你需要从Lodop官方网站(http://www.lodop.net/)下载Lodop控件,并按照操作系统选择适当的版本进行安装。

  2. 引入Lodop控件:在Vue应用程序中,可以在public文件夹下创建一个名为lodop的文件夹,并将Lodop控件相关文件放入其中。然后在public/index.html文件中的head标签内添加如下代码:

<script src="%PUBLIC_URL%/lodop/CLodopfuncs.js"></script>
  1. 创建Lodop对象:在Vue组件中,可以在mountedcreated等生命周期钩子中创建Lodop对象,并初始化它。可以使用以下代码:
mounted() {
  this.initLodop();
},
methods: {
  initLodop() {
    this.lodop = getLodop();
    this.lodop.PRINT_INIT("打印任务名称");
  }
}
  1. 设置打印内容:同样,在Vue组件的方法中,使用Lodop对象的方法来设置打印内容。例如,你可以在一个按钮的点击事件中添加打印内容的代码:
printContent() {
  this.lodop.ADD_PRINT_TEXT(50, 50, 200, 30, "Hello, World!");
}
  1. 执行打印操作:类似地,调用Lodop对象的打印方法来执行打印操作。你可以在Vue组件的方法中调用打印方法:
print() {
  this.lodop.PRINT();
}

完整的示例代码如下:

<template>
  <div>
    <button @click="printContent">设置打印内容</button>
    <button @click="print">执行打印</button>
  </div>
</template>

<script>
export default {
  mounted() {
    this.initLodop();
  },
  methods: {
    initLodop() {
      this.lodop = getLodop();
      this.lodop.PRINT_INIT("打印任务名称");
    },
    printContent() {
      this.lodop.ADD_PRINT_TEXT(50, 50, 200, 30, "Hello, World!");
    },
    print() {
      this.lodop.PRINT();
    }
  }
};
</script>

kr-print-designer

简介

一个基于 Vue、ElementUi、C-Lodop 的打印模板设计器。实现打印模板的设计、预览和打印功能。示例

打印模板设计器

在这里插入图片描述

打印预览

在这里插入图片描述

模板设计页面

在这里插入图片描述

安装

Vue 项目中引用该组件

npm install kr-print-designer

打印功能基于 C-Lodop 打印控件,需前往下载

引入

main.js

import Vue from "vue";
import KrPrintDesigner from "kr-print-designer";
import "kr-print-designer/lib/kr-print-designer.css";

Vue.use(KrPrintDesigner);

demo.vue

<template>
  <div id="app">
    <kr-print-designer
      :temp-value="value"
      :widget-options="widgets"
      :lodop-license="licenseInfo"
      @save="handleSave"
    />
  </div>
</template>

lodop 打印/预览及设置 lodop 注册信息方法使用

// 直接打印
this.$lodop.print(temp, data);

// 预览打印内容
this.$lodop.preview(temp, data);

// 预览打印模板
this.$lodop.previewTemp(temp);

// 设置Lodop产品注册信息
this.$lodop.setLicenses(licenseInfo);

更多操作可以看他的github,gitee上也有这个项目。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/633993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对比学习做了什么?

什么是对比学习&#xff1f; 对比学习貌似处于“无明确定义、有指导原则”的状态 什么是对比学习呢&#xff1f;(这个是微信链接)全文比较长&#xff0c;但是逻辑框架还是不错的。 如果想要更快速的了解什么是对比学习或者说对比学习是怎么做的&#xff0c;可以看SimCLR这个模…

全网最详细,软件测试-性能测试岗面试题总结(大全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 描述一下你们公司…

论文阅读:Denoising Diffusion Probabilistic Models

论文阅读&#xff1a;Denoising Diffusion Probabilistic Models 最近一两年&#xff0c;在图像生成领域&#xff0c;扩散模型受到了越来越多的关注&#xff0c;特别是随着 DALL-E2 以及 Midjourney 的持续火爆&#xff0c;扩散模型也变得越来越流行&#xff0c;之前很多基于 …

C++ 参数的三种传递方式和应用场景

C 参数的三种传递方式分别是值传递、指针传递和引用传递。 值传递 值传递的实质 将实参的值&#xff08;a、b&#xff09;复制到形参(m、n)相应的存储单元中&#xff0c;即形参和实参分别占用不同的存储单元。 值传递的特点 值传递的特点是单向传递&#xff0c;即主调函数…

Java Web开发实战经典学习过程笔记

Java Web开发实战经典学习简单笔记 第一章 Java Web 开发简介 1.胖客户端程序指的是&#xff0c;当一个程序运行时需要一个单独的客户端程序支持(如&#xff1a;QQ)。瘦客户端程序在操作时不需要任何其他程序的安装(如&#xff1a;登录网上论坛&#xff0c;只需浏览器即可)。 2…

I.MX6ull UART

一 简介 UART 全称叫做串行接口&#xff0c;通常也叫做 COM 接口&#xff0c;串行接口指的是数据一个一个的顺序传输&#xff0c;通信线路简单。使用两条线即可实现双向通信&#xff0c;一条用于发送&#xff0c;一条用于接收。串口通信距离远&#xff0c;但是速度相对会低&…

Self-Attention 自注意力机制

输出形式 李宏毅讲到&#xff1a; 模型的输入是只有一种形式——词向量但是输出的形式却是不唯一的&#xff0c;主要有以下三种&#xff1a; 每一个向量对应一个输出(多对多&#xff0c;且一一对应) 每个序列只有一个输出(多对一) 一个序列对应一个序列(多对多&#xff0c;长…

MySQL 索引的10 个核心要点

文章目录 &#x1f349;1. 索引底层采用什么数据结构&#xff1f;为什么不用hash&#x1f349;2. B树与B树区别&#xff1f;为何用B树&#xff1f;&#x1f349;3. 自增主键理解&#xff1f;&#x1f349;4. 为什么自增主键不连续&#x1f349;5. Innodb为什么推荐用自增ID&…

代码随想录第59天

1.下一个更大元素II 有两种方法&#xff1a; 1.把两个一样的数组拼起来&#xff1a; // 版本一 class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {// 拼接一个新的numsvector<int> nums1(nums.begin(), nums.end());nu…

Chapter7: SpringBoot与数据访问

尚硅谷SpringBoot顶尖教程 1. JDBC 1.1 依赖及配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency><groupId>mysql</groupId…

《Reinforcement Learning: An Introduction》第4章笔记

Chapter 4 Dynamic Programming 动态规划&#xff08;Dynamic Programming&#xff0c;DP&#xff09;是一类在给定完备环境模型的MDP后用来计算最优策略的算法。动态规划算法在强化学习中因为&#xff1a;1. 假设有一个完美的环境模型&#xff1b;2. 极大的计算代价 实际用处…

树莓派4B连接不了产品开的热点

目的 关于树莓派连接不了产品开的5G热点&#xff0c; 当时还是一头雾水。 参考这篇博客 把思路方向转向了频率&#xff0c; 信道&#xff0c; 通过给的产品A相关规格说明wifi 5.18GHz, 信道36。 于是乎我两款产品A、产品B为例。 树莓派是能连接产品B开的热点&#xff08;5.74…

【Unity SRP】实现基础的Temporal AA(未完)

写在前面 【技术美术图形部分】简述主流及新的抗锯齿技术&#xff0c;花了点时间盘点了一些主流AA技术&#xff0c;再在SRP下的URP管线中实现一下目前游戏用得比较多的TAA。参考Unity的TAA&#xff08;比较容易懂&#xff09;以及sienaiwun的实现思路&#xff0c;也参考了很多…

OpenCV转换HDR图像与源码分析

我们常见的图像位深一般是8bit&#xff0c;颜色范围[0, 255]&#xff0c;称为标准动态范围SDR(Standard Dynamic Range)。SDR的颜色值有限&#xff0c;如果要图像色彩更鲜艳&#xff0c;那么就需要10bit&#xff0c;甚至12bit&#xff0c;称为高动态范围HDR(High Dynamic Range…

Docker部署ES集群、kibana、RabbitMq和chrome安装elasticsearch-head插件

文章目录 [toc] 1.安装ES集群和kibana1.1安装ES集群1.1.1 准备挂载目录1.1.2 准备配置文件1.1.3 启动命令1.1.3.0 启动前设置系统环境变量1.1.3.1 Windows10环境启动命令1.1.3.2 Linux环境启动命令 1.2安装kibana1.2.1 准备挂载目录1.2.2 准备配置文件1.2.3 启动命令1.2.3.1 Wi…

Spring IOC基于XML和注解管理Bean(一)

Spring IOC基于XML和注解管理Bean&#xff08;二&#xff09; 文章目录 1、IoC容器1.1、控制反转&#xff08;IoC&#xff09;1.2、依赖注入1.3、IoC容器在Spring的实现 2、基于XML管理Bean2.1、搭建模块spring-first2.2、实验一&#xff1a;获取bean①方式一&#xff1a;根据i…

过滤器和拦截器实现

说明&#xff1a;当用户未经登录&#xff0c;直接访问后台网址时&#xff0c;为了避免可以直接访问后台内容&#xff0c;就需要使用过滤器或拦截器将此类请求在服务器响应数据之前做核对&#xff0c;如果未登录&#xff0c;则驳回请求&#xff0c;返回登录页面&#xff0c;如果…

PyQt5桌面应用开发(20):界面设计结果自动测试(一)

本文目录 PyQt5桌面应用系列PyQt5的测试驱动开发&#xff08;Test-Driven Development&#xff0c;TDD&#xff09;QTestUI动作函数信号测试 最平凡的例子unittest框架总结 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开…

【Apache Pinot】简单聊聊前面没讲的 Deep Store 和 Cluster

背景 前面3篇文章讲解了 Pinot 用的最多的几个组件&#xff0c;现在就聊最后剩下的两个&#xff0c;一个是 Cluster&#xff0c;另外一个就是 Deep Store。 Cluster 其实 Cluster 比较简单&#xff0c;就是一个概念的集合&#xff0c;他说有 Server&#xff0c;Broker 和 Co…

代码随想录算法训练营第五十六天 | 力扣 583. 两个字符串的删除操作, 72. 编辑距离

583. 两个字符串的删除操作 题目 583. 两个字符串的删除操作 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 解析 1.确定dp数组&#xff08;dp table&#xff09;以及下标的含义 …