C#/VB.NET 实现在PDF表格中添加条形码

作者:E-iceblue 时间:2022-12-25 19:58:16 

条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作PDF文件为例,介绍如何在编辑表格时,向单元格中插入条形码。

类库引入及代码思路

本次功能测试中,使用 Free Spire.PDF for .NET。

实现功能的大致思路生成条形码,将条形码保存为图片,然后在PDF中的表格单元格中插入条码图片

Spire.PDF for .NET 中的Spire.Pdf.Barcode namespace提供了多种Barcode类型,用于满足创建不同类型barcode的需求,如图:

C#/VB.NET 实现在PDF表格中添加条形码

Spire.Pdf.dll文件的引入方法如下:

方法1

在程序中引入Spire.Pdf.dll文件;将 Free Spire.PDF for .NET 下载到本地,解压,安装。安装完成后,找到安装路径下BIN文件夹中的Spire.Pdf.dll。然后在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径BIN文件夹下的dll文件添加引用至程序。

方法2

通过 NuGet 安装。可通过以下2种方法安装:

1.可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索“ Free Spire.PDF”,点击“安装”。等待程序安装完成。

2.将以下内容复制到PM控制台安装。

Install-Package FreeSpire.PDF -Version 8.2.0

代码示例

C#

using Spire.Pdf;
using Spire.Pdf.Barcode;
using Spire.Pdf.Graphics;
using Spire.Pdf.Grid;
using System.Drawing;

namespace AddBarcodeToTable
{
   class Program
   {
       static void Main(string[] args)
       {
           //创建PDF文档
           PdfDocument pdf = new PdfDocument();
           PdfPageBase page = pdf.Pages.Add();  

//创建PdfGrid类的表格对象
           PdfGrid grid = new PdfGrid();
           grid.Style.CellPadding = new PdfPaddings(1, 1, 1, 1);
           grid.Style.Font = new PdfTrueTypeFont(new Font("Arial Unicode MS", 9f), true);

//添加2行2列到表格
           PdfGridRow row1 = grid.Rows.Add();
           PdfGridRow row2 = grid.Rows.Add();      
           grid.Columns.Add(2);

//设置列宽
           foreach (PdfGridColumn column in grid.Columns)
           {
               column.Width = 150f;
           }

//在单元格中写入数据
           row1.Cells[0].Value = "产品编号";
           row1.Cells[1].Value = "条码";
           row2.Cells[0].Value = "B0215";

//创建条码
           PdfCodabarBarcode barcode1 = new PdfCodabarBarcode("00:12-3456/7890");
           barcode1.BarcodeToTextGapHeight = 1f;
           barcode1.EnableCheckDigit = true;
           barcode1.ShowCheckDigit = true;          
           barcode1.TextDisplayLocation = TextLocation.Bottom;
           barcode1.TextColor = Color.Blue;          

//将条码保存为图片到指定路径
           Image image =barcode1.ToImage();          
           image.Save(@"F:/VS2017Project/DrawTable_PDF/AddBarcodeToTable/bin/Debug/BarcodeImage.png");

//将条码图片添加到表格单元格
           string imgpath = "F:/VS2017Project/DrawTable_PDF/AddBarcodeToTable/bin/Debug/BarcodeImage.png";          
           PdfGridCellContentList contentList = new PdfGridCellContentList();
           PdfGridCellContent content = new PdfGridCellContent();
           SizeF imageSize = new SizeF(120, 80);
           content.ImageSize = imageSize;
           content.Image = PdfImage.FromFile(imgpath);          
           contentList.List.Add(content);
           row2.Cells[1].Value = contentList;          

//绘制表格到页面指定位置
           grid.Draw(page, new PointF(0, 40));

//保存PDF文档
           pdf.SaveToFile("AddBarcodeToTable.pdf",FileFormat.PDF);
           System.Diagnostics.Process.Start("AddBarcodeToTable.pdf");
       }
   }
}

vb.net

Imports Spire.Pdf
Imports Spire.Pdf.Barcode
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Grid
Imports System.Drawing

Namespace AddBarcodeToTable
   Class Program
       Private Shared Sub Main(args As String())
           '创建PDF文档
           Dim pdf As New PdfDocument()
           Dim page As PdfPageBase = pdf.Pages.Add()

'创建PdfGrid类的表格对象
           Dim grid As New PdfGrid()
           grid.Style.CellPadding = New PdfPaddings(1, 1, 1, 1)
           grid.Style.Font = New PdfTrueTypeFont(New Font("Arial Unicode MS", 9F), True)

'添加2行2列到表格
           Dim row1 As PdfGridRow = grid.Rows.Add()
           Dim row2 As PdfGridRow = grid.Rows.Add()
           grid.Columns.Add(2)

'设置列宽
           For Each column As PdfGridColumn In grid.Columns
               column.Width = 150F
           Next

'在单元格中写入数据
           row1.Cells(0).Value = "产品编号"
           row1.Cells(1).Value = "条码"
           row2.Cells(0).Value = "B0215"

'创建条码
           Dim barcode1 As New PdfCodabarBarcode("00:12-3456/7890")
           barcode1.BarcodeToTextGapHeight = 1F
           barcode1.EnableCheckDigit = True
           barcode1.ShowCheckDigit = True
           barcode1.TextDisplayLocation = TextLocation.Bottom
           barcode1.TextColor = Color.Blue

'将条码保存为图片到指定路径
           Dim image As Image = barcode1.ToImage()
           image.Save("F:/VS2017Project/DrawTable_PDF/AddBarcodeToTable/bin/Debug/BarcodeImage.png")

'将条码图片添加到表格单元格
           Dim imgpath As String = "F:/VS2017Project/DrawTable_PDF/AddBarcodeToTable/bin/Debug/BarcodeImage.png"
           Dim contentList As New PdfGridCellContentList()
           Dim content As New PdfGridCellContent()
           Dim imageSize As New SizeF(120, 80)
           content.ImageSize = imageSize
           content.Image = PdfImage.FromFile(imgpath)
           contentList.List.Add(content)
           row2.Cells(1).Value = contentList

'绘制表格到页面指定位置
           grid.Draw(page, New PointF(0, 40))

'保存PDF文档
           pdf.SaveToFile("AddBarcodeToTable.pdf", FileFormat.PDF)
           System.Diagnostics.Process.Start("AddBarcodeToTable.pdf")
       End Sub
   End Class
End Namespace

文档效果:

C#/VB.NET 实现在PDF表格中添加条形码

来源:https://www.cnblogs.com/Yesi/p/16336850.html

标签:C#,PDF,条形码
0
投稿

猜你喜欢

  • Spring JPA 错题集解决案例

    2022-03-26 22:44:03
  • JavaWeb使用Session和Cookie实现登录认证

    2023-12-11 19:13:29
  • java去除字符串中的空格、回车、换行符、制表符的小例子

    2022-04-13 12:33:44
  • Android编程之selector下设置背景属性值的方法

    2023-08-23 08:07:49
  • Java模拟死锁发生之演绎哲学家进餐问题案例详解

    2022-10-09 22:52:44
  • Springboot中如何使用Redisson实现分布式锁浅析

    2023-10-01 18:48:29
  • android 大图片拖拽并缩放实现原理

    2022-11-10 05:59:55
  • eclipse创建java项目并运行的详细教程讲解

    2022-09-27 20:15:13
  • Java运算符从见过到掌握下

    2023-01-29 15:47:19
  • 深入了解c# 匿名类型

    2022-04-08 22:38:21
  • Android View移动的3种方式总结

    2022-04-29 02:04:47
  • WPF+Canvas实现平滑笔迹的示例代码

    2021-10-06 06:35:13
  • C#创建压缩文件的实现代码

    2022-07-28 23:55:04
  • c#方法重写和隐藏的学习示例

    2022-12-24 14:20:12
  • SpringBoot YAML语法基础详细整理

    2023-04-16 14:15:30
  • 关于ConditionalOnMissingBean失效问题的追踪

    2021-08-19 17:42:04
  • springBoot controller,service,dao,mapper,model层的作用说明

    2022-02-28 15:38:49
  • Android中Spinner(下拉框)控件的使用详解

    2021-08-09 01:46:28
  • JavaSwing BorderLayout 边界布局的实现代码

    2023-04-23 08:03:40
  • eclipse 中的javac命令与java命令

    2023-08-19 14:16:57
  • asp之家 软件编程 m.aspxhome.com