golang 每日一庫之 barcode

boombuler/barcode 是一個用 Go 編寫的高質量條形碼生成庫,支持多種類型的條形碼和二維碼,使用簡單、擴展性強,非常適合用於生成圖像格式的條碼、二維碼等。

倉庫信息

支持的條碼類型

特點

示例

生成 Code128 條形碼

package main
import (
    "github.com/boombuler/barcode"
    "github.com/boombuler/barcode/code128"
    "image/png"
    "os"
)
func main() {
    code, _ := code128.Encode("Hello, Code128!")
    // 縮放成需要的大小
    code, _ = barcode.Scale(code, 300, 100)
    file, _ := os.Create("code128.png")
    defer file.Close()
    png.Encode(file, code)
}

生成 QR Code 二維碼(含糾錯等級)

package main
import (
    "github.com/boombuler/barcode"
    "github.com/boombuler/barcode/qr"
    "image/png"
    "os"
)
func main() {
    qrCode, _ := qr.Encode("https://example.com", qr.L, qr.Auto)
    qrCode, _ = barcode.Scale(qrCode, 256, 256)
    file, _ := os.Create("qrcode.png")
    defer file.Close()
    png.Encode(file, qrCode)
}

使用 PDF417 條碼(適合大數據量)

package main
import (
    "github.com/boombuler/barcode"
    "github.com/boombuler/barcode/pdf417"
    "image/png"
    "os"
)
func main() {
    pdfCode, _ := pdf417.Encode("Large amount of text here or binary data...")
    pdfCode, _ = barcode.Scale(pdfCode, 300, 150)
    file, _ := os.Create("pdf417.png")
    defer file.Close()
    png.Encode(file, pdfCode)
}

Aztec Code(兼容性強的二維碼)

package main
import (
    "github.com/boombuler/barcode"
    "github.com/boombuler/barcode/aztec"
    "image/png"
    "os"
)
func main() {
    aztecCode, _ := aztec.Encode([]byte("Aztec code demo"))
    aztecCode, _ = barcode.Scale(aztecCode, 200, 200)
    file, _ := os.Create("aztec.png")
    defer file.Close()
    png.Encode(file, aztecCode)
}

縮放圖像操作

你也可以單獨使用 barcode.Scale 來調整條形碼尺寸,使其適應特定打印機、UI 界面或佈局:

resized, err := barcode.Scale(originalBarcode, 600, 200)

應用場景

最後

boombuler/barcode 是一個成熟可靠的 Go 條碼生成庫,支持主流條碼標準,且使用方式直觀,適合各種商業系統與工具的集成。

標題:golang 每日一庫之 barcode
作者:mooncakeee
地址:http://blog.dd95828.com/articles/2025/06/17/1750123271620.html
聯繫:scotttu@163.com

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/auSWcZfogAhGbhdz6mRPTQ