Text Control 控件教程:使用 .NET C# 中的二维码和条形码增强文档

QR 码和条形码非常适合为文档和 PDF 文件增加价值,因为它们提供轻松的信息访问、验证信息、跟踪项目和提高交互性。条形码可以弥补纸质或数字人类可读文档与网络门户或网络应用程序中的数字信息之间的差距。大多数用户都熟悉 QR 码和条形码,它们在许多过程中无处不在,例如:

  • 产品包装
  • 发票
  • 库存管理
  • 活动票务
  • 登机证
  • 支付系统

在某些行业中,如果没有条形码,流程将无法进行。这包括医疗保健,可以通过扫描患者佩戴的腕带直接访问患者数据,或跟踪每日药物剂量。或物流,只需扫描装箱单或其他文件上的商品代码即可跟踪订单或在仓库中找到订单。在零售业,条形码用于跟踪库存、管理库存水平和加快结账流程。

TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打印、病案归档等功能的实现。

TX Text Control 最新下载icon-default.png?t=N7T8https://www.evget.com/vendor/118


什么是条形码?

条形码是一种以视觉格式呈现数据的机器可读表示。它由不同宽度和间距的线条组成,可通过条形码扫描仪读取。QR 码是一种条形码,可以存储比传统条形码更多的信息。它是一种二维码,可以存储文本、URL、联系信息和其他数据。

最典型的条形码是:

  • 二维码

    二维码

    QR 码是一种二维条形码,可以存储比传统条形码更多的信息。它通常用于营销、广告和其他需要在小空间中存储更多信息的应用。

  • UPC(通用产品代码)

    UPC 条码

    UPC 代码是一种条形码,常用于零售店跟踪库存和销售情况。它由 12 位数字组成,可通过条形码扫描仪读取。

  • EAN(欧洲商品编号)

    EAN 代码

    EAN 码是一种条形码,在欧洲常用于跟踪库存和销售情况。它由 13 位数字组成,可通过条形码扫描仪读取。

  • 代码 39

    代码 39

    Code 39 是一种常用于物流和库存管理的条形码。它由不同宽度和间距的线条组成,可通过条形码扫描仪读取。

例如:装箱单

假设您有一张装箱单,其中包含要运送给客户的物品清单。为了在仓库或运输过程中跟踪物品,每件物品都有一个可以扫描的条形码。可以使用条形码扫描仪或带有条形码扫描应用程序的移动设备扫描条形码。条形码包含有关物品的信息,例如物品编号、说明和数量。

请看以下使用 TX Text Control 生成的包含各处条形码的装箱单的屏幕截图。TX Text Control 为所有行业标准的 1D 和 2D 条形码提供开箱即用的支持。

使用 TX 文本控件创建的装箱单

生成装箱单

使用 TX Text Control 的邮件合并 引擎创建此装箱单非常容易。首先,如下所示,我们需要一个数据源,例如 JSON 对象。

[
{
"packing_slip_guid": "12345678-1234-1234-1234-123456789012",
"dispatch_date": "2024-01-01",
"recipient": {
"id": 1,
"name": "John Doe",
"company": "Company A",
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
}
},
"product": {
"product_id": 1,
"name": "Product 1",
"qty": "Product 1 Description",
"code": "123456789012"
},
"items": [
{
"item_id": 1,
"name": "Item 1",
"description": "Description 1",
"quantity": 1,
"price": 100,
"upc": "12345678901"
},
{
"item_id": 2,
"name": "Item 2",
"description": "Description 2",
"quantity": 2,
"price": 200,
"upc": "12345678902"
},
{
"item_id": 3,
"name": "Item 3",
"description": "Description 3",
"quantity": 3,
"price": 300,
"upc": "12345678903"
},
[...]
]
}
]

接下来,我们需要一个包含合并字段和条形码的模板文档。合并字段将替换为数据源中的数据,并使用相同的数据生成条形码。在下面的屏幕截图中,您可以在 TX Text Control 的所见即所得文档编辑器中看到创建的模板,它可以轻松集成到您的应用程序中。

使用 TX 文本控件创建的装箱单

开箱即用的用户界面提供了插入合并字段、重复部分和条形码所需的所有功能。

使用 TX 文本控件创建的装箱单

条形码可以映射到数据源字段,以便在最终文档生成期间使用正确的值进行更新。

使用 TX 文本控件创建的装箱单

准备申请

为了本演示的目的,创建了一个.NET 8 控制台应用程序。

先决条件

以下教程需要 ASP.NET 的 TX Text Control .NET Server 试用版。

  • 下载试用版
  1. 在 Visual Studio 中,使用 .NET 8创建一个新的控制台应用程序。

  2. 解决方案资源管理器中,选择您创建的项目,然后从项目主菜单中选择管理 NuGet 包...。

    包源下拉菜单中选择文本控制离线包。

    安装以下软件包的最新版本:

    • TX文本控制.文本控制.ASP.SDK

创建 PDF

  1. 从本文末尾的 GitHub 存储库下载示例模板和 JSON 数据并将其添加到您的项目中。

  2. 通过双击解决方案资源管理器中的项目节点打开项目设置,然后将UseWindowsForms属性添加到PropertyGroup部分。完成的.csproj文件应如下所示:

<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<Nullable>enable</Nullable>
</PropertyGroup><ItemGroup>
<PackageReference Include="TXTextControl.TextControl.ASP.SDK" Version="32.0.3" />
</ItemGroup><ItemGroup>
<None Update="data.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="packing_slip.tx">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup></Project>
创建文档

打开Program.cs文件并添加以下代码:

using TXTextControl.DocumentServer;using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("packing_slip.tx", TXTextControl.StreamType.InternalUnicodeFormat);MailMerge mailMerge = new MailMerge()
{
TextComponent = tx
};string jsonData = System.IO.File.ReadAllText("data.json");mailMerge.MergeJsonData(jsonData);tx.Save("output.pdf", TXTextControl.StreamType.AdobePDF);
}

运行应用程序时,将创建文档并将其保存为项目目录中的output.pdf。条形码是使用来自 JSON 数据源的数据生成的。

结论

条形码是一种很好的方式,它可以轻松访问信息、验证信息、跟踪项目并提高交互性,从而为文档和 PDF 文件增加价值。TX Text Control 为所有行业标准的 1D 和 2D 条形码提供现成的支持。MailMerge 类可用于将数据合并到模板文档中并生成带有条形码的最终文档。


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

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

相关文章

C#初级——数组

数组 数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合&#xff0c;通常认为数组是一个同一类型变量的集合。 数组的定义 数组类型[] 数组名称 value; 初始化数组 数组类型[] 数组名称 new 数组类型[数组大小]; 数组赋值 数组可以通过直接赋值…

Java整理11

1、Web乱码及路径问题 建多级目录Package中&#xff1a;a.b.cDirectory中&#xff1a;a/b/c 当前页面中所有不加任何修饰的相对路径前&#xff0c;会自动加上href中的内容&#xff0c;将绝对路径问题转换成相对路径问题 <head><base href" "> </he…

宠物空气净化器是不是智商税?靠谱的浮毛空气净化器推荐

宠物空气净化器是不是智商税&#xff1f;宠物空气净化器是否真有其效&#xff0c;是许多由于要不要买空气净化器养宠人心中的疑惑。作为呼吸科的医生&#xff0c;我深知优质的空气质量对预防呼吸系统疾病的重要性。因此&#xff0c;我建议所有有条件的家庭&#xff0c;尤其是家…

数据结构:顺序表的实现

1.SeqList.h 头文件 #pragma once #include <stdio.h> #include <stdlib.h> #include <assert.h> //定义动态顺序表 typedef int SLDatatype;typedef struct SeqLlist {SLDatatype* arr;int capacity;int size; }SL;//typedef struct SeqList Sl;//初始化 …

IO多路复用——select

仅一个线程、进程处理并发 IO多路转接&#xff08;复用&#xff09;之select 跨平台适用linux&#xff0c;windows 底层&#xff1a;线性表 IO多路转接&#xff08;复用&#xff09;之poll 适用linux 底层&#xff1a;线性表 IO多路转接&#xff08;复用&#xff09;之epo…

Perl的文本艺术:精通格式化输入输出

Perl的文本艺术&#xff1a;精通格式化输入输出 Perl以其在文本处理方面的卓越能力而闻名&#xff0c;其中格式化输入输出是Perl的强大特性之一。格式化提供了一种灵活的方式来定义输入和输出数据的布局和外观。本文将详细介绍Perl中的格式化输入输出的使用&#xff0c;并提供…

Ecovadis评估方案

在当今全球供应链日益复杂且环保意识日益增强的背景下&#xff0c;EcoVadis评估方案作为一种领先的可持续发展评估工具&#xff0c;正逐步成为企业衡量其社会责任与环境绩效的重要标尺。EcoVadis通过一套全面而细致的评价体系&#xff0c;帮助企业识别其在可持续发展方面的优势…

pdf自动生成书签

PDF 自动生成书签&#xff0c;使用软件【PDF补丁丁】 软件官网&#xff1a; https://www.cnblogs.com/pdfpatcher/Github&#xff1a;https://github.com/wmjordan/PDFPatcher参考视频内容&#xff1a;使用PDFPatcher自动生成PDF书签 直接从软件官网下载压缩包&#xff0c;运…

【日常记录】【JS】JS中查询参数处理工具URLSearchParams

文章目录 1. 引言2. URLSearchParams2.1 URLSearchParams 的构造函数2.2 append() 方法2.3 delete() 方法2.4 entries() 方法2.5 forEach() 方法2.6 get() 方法2.7 getAll() 方法2.8 has() 方法2.9 keys() 方法2.10 set() 方法2.11 toString() 方法2.12 values() 方法 参考链接…

百度搜索X唐朝诡事录跨界联动影视智能体,集追剧探案于一体!

想必这几天大家都已经被 #唐朝诡事录好看#、#唐朝诡事录你真的火了# 刷屏了&#xff0c;时隔两年&#xff0c;霸榜热门大剧《唐朝诡事录之西行》终于火热回归啦&#xff01; 一文一武双男主设定只为专心攻破悬案&#xff0c;正反派全都智商在线&#xff0c;是一部不可多得的良…

PaliGemma:A versatile 3B VLM for transfer

1.model 1.1 Architecture 图像分辨率为固定的正方形,224,448,896,这导致每种模型都有固定数量的图像token,256,1024,4096。图像在最前面,无需特殊的位置标记,BOS标记文本的开始,\n作为SEP token,不出现在前缀中,单独对SEP进行标记,以避免它与前缀的结束或后缀的…

web自动化3-常用鼠标+键盘事件

# 鼠标右键 from selenium.webdriver import ActionChains # 鼠标右键操作模拟chehui driver.find_element(By.XPATH, //*[text()"我是小海呀2"]) rightClick ActionChains(driver) # 实例化ActionChains类 time.sleep(2) rightClick.context_click(chehui).perf…

Navicat图形化管理工具安装教程

1、Navicat简介 Navicat 是一套快速、可靠的数据库管理工具&#xff0c;专为简化数据库的管理及降低系统管理成本而开发。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat使用直觉化的图形用户界面&#xff0c;让用户能够安全简单的方式创建、组织、访问并共用信…

SpringBoot集成Nacos服务注册发现

参考文档 springboot集成nacos服务注册发现中心_nacos-discovery-spring-boot-starter-CSDN博客 依赖 <dependency><groupId>com.alibaba.boot</groupId><artifactId>nacos-discovery-spring-boot-starter</artifactId><version>0.2.8&l…

Python爬虫技术 第16节 XPath

XPath是一种在XML文档中查找信息的语言&#xff0c;尽管XML和HTML在语法上有区别&#xff0c;但XPath同样适用于HTML文档的解析&#xff0c;尤其是在使用如lxml这样的库时。XPath提供了一种强大的方法来定位和提取XML/HTML文档中的元素和属性。 XPath基础 XPath表达式由路径表…

如何检查代理IP地址是否被占用

使用代理IP时&#xff0c;有时候会发现IP仍然不可用&#xff0c;可能是因为已经被其他用户或者网络占用了。为了检测代理IP是否被占用&#xff0c;我们可以采用一些方法进行验证测试&#xff0c;以保证代理IP的有效性和稳定性。 1.ARP缓存方法 ARP缓存法是一种简单有效的检测代…

Cesium 实现点击获取实体的 ID 值

文章目录 需求分析需求 点击球体上加载的实体,获取该实体的 ID 值 分析 var handler = new Cesium.ScreenSpaceEventHandler(this.map.scene.canvas); // 创建鼠标事件handler const that = this handler.setInputAction(</

Tinygrad,llama3,Reward Model

目录 Tinygrad 与其他框架的比较 llama3 Reward Model Tinygrad 是一个轻量级的深度学习框架,由George Hotz(也被称为geohot)开发。以下是对Tinygrad的详细介绍: 与其他框架的比较 与PyTorch、TensorFlow等更全面的深度学习框架相比,Tinygrad在功能上可能有所限制,…

Unity UGUI 之 事件接口

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本&#xff0c;请注意分别 1.什么是事件接口&…

【github】使用KeepassXC 解决github Enable two-factor authentication (2FA) 第二因子认证

下载 https://github.com/keepassxreboot/keepassxc/releases/download/2.7.9/KeePassXC-2.7.9-Win64.msi 代理地址 https://dgithub.xyz/keepassxreboot/keepassxc/releases/download/2.7.9/KeePassXC-2.7.9-Win64.msi 由于该软件不允许截图&#xff0c;以下操作参考官网 …