C#/VB.NET 在Word中新增條碼、二維碼

iceblue發表於2020-07-16

本文介紹如何通過C# 和VB.NET程式碼實現在Word文件中新增條碼和二維碼。程式碼中將分為在Word正文段落中、頁首頁尾中等情況來新增。

使用工具:Free Spire.Office for .NET (免費版)

工具簡介:這是Spire所有.NET平臺下免費產品的集合包,包含Spire.Barcode.dll、Spire.DataExport.dll、Spire.Pdf.dll、Spire.Doc.dll、Spire.DocViewer.Forms.dll 、Spire.PdfViewer.Forms.dll 、Spire.Presentation.dll 、Spire.XLS.dll等dll可用於操作Word/PDF/Excel/PPT等檔案。

本文新增條碼、二維碼需要在VS程式中新增引用 Spire.Doc.dll 和 Spire.Barcode.dll 這兩個dll檔案。

dll新增引用效果:

 

 

 

注意:

1. 需要下載安裝到本地指定路徑,dll檔案可在安裝路徑下的Bin資料夾下獲取。

2. 生成的條碼、二維碼會有水印字樣的文字,可通過此方法去除。

 


 

程式碼示例

1. 新增條碼到Word

C#

using Spire.Doc;
using Spire.Barcode;
using System.Drawing;
using System.IO;
using Spire.Doc.Documents;

namespace AddBarcode
{
    class Program
    {
        static void Main(string[] args)
        {
            //呼叫方法 ApplyKey(string key) 移除水印文字
            Spire.Barcode.BarcodeSettings.ApplyKey("在這裡輸入去除水印字樣的序列號");

            //建立Document物件,載入Word文件
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //獲取第2節
            Section section = doc.Sections[1];

            //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator類建立條碼並儲存為圖片
            BarcodeSettings settings = new BarcodeSettings();
            settings.Type = BarCodeType.Code128;
            settings.Data = "123456789";
            settings.Data2D = "123456789";
            settings.ShowText = false;
            settings.BarHeight = 4;
            settings.X = 0.3f;
            settings.HasBorder = true;
            settings.BorderWidth = 0.5f;
            settings.BorderColor = Color.AliceBlue;
            settings.BackColor = Color.Wheat;
            BarCodeGenerator barCodeGenerator = new BarCodeGenerator(settings);
            Image Image = barCodeGenerator.GenerateImage();
            //Image.Save("Barcode.png", System.Drawing.Imaging.ImageFormat.Png);//如果需要儲存生成的Barcode圖片,可執行此步驟程式碼

            //新增條碼到正文段落
            Paragraph paragraph = section.AddParagraph();
            paragraph.Text = "收貨碼:";
            paragraph.AppendPicture(Image);
            paragraph.Format.HorizontalAlignment = HorizontalAlignment.Right;

            //新增條碼圖片到Word頁尾
            HeaderFooter footer = section.HeadersFooters.Footer;
            Paragraph footerpara = footer.AddParagraph();
            footerpara.Text = "掃碼識真偽:";
            footerpara.AppendPicture(Image);
            footerpara.Format.HorizontalAlignment = HorizontalAlignment.Left;

            //儲存文件
            doc.SaveToFile("BarCodeToWord.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("BarCodeToWord.docx");
        }
    }
}

條碼新增效果:

 

VB.NET

Imports Spire.Doc
Imports Spire.Barcode
Imports System.Drawing
Imports System.IO
Imports Spire.Doc.Documents


Namespace AddBarcode
    Class Program
        Private Shared Sub Main(args As String())
            '呼叫方法 ApplyKey(string key) 移除水印文字
            Spire.Barcode.BarcodeSettings.ApplyKey("在這裡輸入去除水印字樣的序列號")

            '建立Document物件,載入Word文件
            Dim doc As New Document()
            doc.LoadFromFile("test.docx")

            '獲取第2節
            Dim section As Section = doc.Sections(1)

            '使用Spire.Barcode的BarcodeSettings和BarcodeGenerator類建立條碼並儲存為圖片
            Dim settings As New BarcodeSettings()
            settings.Type = BarCodeType.Code128
            settings.Data = "123456789"
            settings.Data2D = "123456789"
            settings.ShowText = False
            settings.BarHeight = 4
            settings.X = 0.3F
            settings.HasBorder = True
            settings.BorderWidth = 0.5F
            settings.BorderColor = Color.AliceBlue
            settings.BackColor = Color.Wheat
            Dim barCodeGenerator As New BarCodeGenerator(settings)
            Dim Image As Image = barCodeGenerator.GenerateImage()
            'Image.Save("Barcode.png", System.Drawing.Imaging.ImageFormat.Png);//如果需要儲存生成的Barcode圖片,可執行此步驟程式碼

            '新增條碼到正文段落
            Dim paragraph As Paragraph = section.AddParagraph()
            paragraph.Text = "收貨碼:"
            paragraph.AppendPicture(Image)
            paragraph.Format.HorizontalAlignment = HorizontalAlignment.Right

            '新增條碼圖片到Word頁尾
            Dim footer As HeaderFooter = section.HeadersFooters.Footer
            Dim footerpara As Paragraph = footer.AddParagraph()
            footerpara.Text = "掃碼識真偽:"
            footerpara.AppendPicture(Image)
            footerpara.Format.HorizontalAlignment = HorizontalAlignment.Left

            '儲存文件
            doc.SaveToFile("BarCodeToWord.docx", FileFormat.Docx2013)
            System.Diagnostics.Process.Start("BarCodeToWord.docx")
        End Sub
    End Class
End Namespace

 

2. 新增二維碼到Word

C#

using Spire.Doc;
using Spire.Barcode;
using System.Drawing;
using System.IO;
using Spire.Doc.Documents;
using System;


namespace AddQRCode
{
    class Program
    {
        static void Main(string[] args)
        {
            //呼叫方法 ApplyKey(string key) 移除水印文字
            Spire.Barcode.BarcodeSettings.ApplyKey("在這裡輸入去除水印字樣的序列號");

            //建立Document物件,載入Word文件
            Document doc = new Document();
            doc.LoadFromFile("test.docx");

            //獲取第2節
            Section section = doc.Sections[1];

            //使用Spire.Barcode的BarcodeSettings和BarcodeGenerator類建立二維碼並儲存為圖片
            BarcodeSettings settings = new BarcodeSettings();
            settings.Type = BarCodeType.QRCode;
            settings.ImageWidth = 50;
            settings.ImageHeight = 50;
            settings.Data = "123456";
            settings.Data2D = "123456";
            settings.X =0.7f;
            settings.LeftMargin = 1;
            settings.ShowTextOnBottom = true;
            settings.QRCodeECL = QRCodeECL.Q;
            settings.QRCodeDataMode = QRCodeDataMode.Numeric;
            BarCodeGenerator generator = new BarCodeGenerator(settings);
            Image image = generator.GenerateImage();
            //image.Save("QRCode.png", System.Drawing.Imaging.ImageFormat.Png);//如果需要儲存生成的二維碼圖片,可執行此步驟程式碼

            //新增二維碼到正文段落
            Paragraph paragraph = section.AddParagraph();          
            paragraph.AppendPicture(image);
            paragraph.Format.HorizontalAlignment = HorizontalAlignment.Right;

            //新增二維碼圖片到Word頁首
            HeaderFooter header = section.HeadersFooters.Header;
            //HeaderFooter footer = section.HeadersFooters.Footer;//獲取頁尾
            Paragraph headerpara = header.AddParagraph();
            headerpara.AppendPicture(image);
            headerpara.Format.HorizontalAlignment = HorizontalAlignment.Center;
            

            //儲存文件
            doc.SaveToFile("QRCodeToHeader.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("QRCodeToHeader.docx");
        }
    }
}

二維碼新增效果:

 

VB.NET

Imports Spire.Doc
Imports Spire.Barcode
Imports System.Drawing
Imports System.IO
Imports Spire.Doc.Documents


Namespace AddQRCode
    Class Program
        Private Shared Sub Main(args As String())
            '呼叫方法 ApplyKey(string key) 移除水印文字
            Spire.Barcode.BarcodeSettings.ApplyKey("在這裡輸入去除水印字樣的序列號")

            '建立Document物件,載入Word文件
            Dim doc As New Document()
            doc.LoadFromFile("test.docx")

            '獲取第2節
            Dim section As Section = doc.Sections(1)

            '使用Spire.Barcode的BarcodeSettings和BarcodeGenerator類建立二維碼並儲存為圖片
            Dim settings As New BarcodeSettings()
            settings.Type = BarCodeType.QRCode
            settings.ImageWidth = 50
            settings.ImageHeight = 50
            settings.Data = "123456"
            settings.Data2D = "123456"
            settings.X = 0.7F
            settings.LeftMargin = 1
            settings.ShowTextOnBottom = True
            settings.QRCodeECL = QRCodeECL.Q
            settings.QRCodeDataMode = QRCodeDataMode.Numeric
            Dim generator As New BarCodeGenerator(settings)
            Dim image As Image = generator.GenerateImage()
            'image.Save("QRCode.png", System.Drawing.Imaging.ImageFormat.Png);//如果需要儲存生成的二維碼圖片,可執行此步驟程式碼

            '新增二維碼到正文段落
            Dim paragraph As Paragraph = section.AddParagraph()
            paragraph.AppendPicture(image)
            paragraph.Format.HorizontalAlignment = HorizontalAlignment.Right

            '新增二維碼圖片到Word頁首
            Dim header As HeaderFooter = section.HeadersFooters.Header
            'HeaderFooter footer = section.HeadersFooters.Footer;//獲取頁尾
            Dim headerpara As Paragraph = header.AddParagraph()
            headerpara.AppendPicture(image)
            headerpara.Format.HorizontalAlignment = HorizontalAlignment.Center


            '儲存文件
            doc.SaveToFile("QRCodeToHeader.docx", FileFormat.Docx2013)
            System.Diagnostics.Process.Start("QRCodeToHeader.docx")
        End Sub
    End Class
End Namespace

 

(完)

相關文章