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

博客 分享
0 253
张三
张三 2022-06-02 10:59:58
悬赏:0 积分 收藏

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

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


 

【类库引入及代码思路】

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

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

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

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.PdfImports Spire.Pdf.BarcodeImports Spire.Pdf.GraphicsImports Spire.Pdf.GridImports System.DrawingNamespace 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 ClassEnd Namespace

文档效果:

 

—END—

 

posted @ 2022-06-02 10:21 E-iceblue 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    张三

    张三 (王者 段位)

    821 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员