SupportedBarcodes.vb
'' 完毕:
Imports System.IO
Imports System.Drawing
Imports System.Collections.Generic
Imports GrapeCity.Documents.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Barcode
'' 呈现 DsBarcode 库支持的所有条形码符号系统的示例。
Public Class SupportedBarcodes
Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
Dim page As Page = Nothing
Dim g As GcGraphics = Nothing
Const margin = 72.0F / 2
Const pad = 4.0F
Const gap = 10.0F
Dim ip = New PointF(margin, margin)
Dim newPage As Action =
Sub()
page = doc.NewPage()
g = page.Graphics
ip = New PointF(margin, margin)
End Sub
newPage()
Dim tfCaption = New TextFormat() With {
.Font = StandardFonts.Times,
.FontSize = 12
}
Dim tfBarcode = New TextFormat() With {
.Font = StandardFonts.Helvetica,
.FontSize = 9
}
Dim barcode = New GcBarcode() With {
.TextFormat = tfBarcode,
.ScaleFactor = 1.5F
}
barcode.Options.CaptionPosition = BarCodeCaptionPosition.Below
barcode.Options.SizeOptions.NarrowWideRatio = 0
Dim drawBarcode As Action(Of CodeType, String, String) =
Sub(ct_, txt_, txt2_)
Dim caption = $"{ct_}:{vbCrLf}{txt_}"
If String.IsNullOrEmpty(txt2_) Then
barcode.Options.GS1Composite.Type = GS1CompositeType.None
Else
caption += $"{vbCrLf}Dependent CCA: {txt2_}"
barcode.Options.GS1Composite.Type = GS1CompositeType.CCA
barcode.Options.GS1Composite.Value = txt2_
End If
barcode.Options.CheckSumEnabled = ct_ <> CodeType.Code25intlv AndAlso ct_ <> CodeType.Code_2_of_5 AndAlso ct_ <> CodeType.Matrix_2_of_5
Dim csize = g.MeasureString(caption, tfCaption)
barcode.CodeType = ct_
barcode.Text = txt_
Dim size = g.MeasureBarcode(barcode)
size.Height = Math.Max(size.Height, csize.Height)
Dim border = New RectangleF(ip, New SizeF(page.Size.Width - margin * 2, size.Height + pad * 2))
If ip.Y + border.Height > page.Size.Height - margin Then
newPage()
border = New RectangleF(ip, border.Size)
End If
g.DrawRectangle(border, Color.Gray)
g.DrawString(caption, tfCaption, New PointF(border.Left + pad, border.Top + pad))
g.DrawBarcode(barcode, New RectangleF(border.Right - size.Width - pad, border.Top + pad, size.Width, size.Height))
ip.Y = border.Bottom + gap
End Sub
''
drawBarcode(CodeType.Ansi39, "*DSBARCODE*", Nothing)
drawBarcode(CodeType.Ansi39x, "*DsPdf*", Nothing)
drawBarcode(CodeType.Codabar, "A12041961D", Nothing)
drawBarcode(CodeType.Code25intlv, "1234567890", Nothing) '' Interleaved 2 of 5 (ITF)
drawBarcode(CodeType.Code39, "*GCBARCODE*", Nothing)
drawBarcode(CodeType.Code39x, "*DsPdf*", Nothing)
drawBarcode(CodeType.Code49, "DsBarcode+DsPdf", Nothing)
drawBarcode(CodeType.Code93x, "DsBarcode+DsPdf", Nothing)
drawBarcode(CodeType.Code_93, "GCBARCODE", Nothing)
drawBarcode(CodeType.Code_128_A, "DSPDF-2023", Nothing)
drawBarcode(CodeType.Code_128_B, "DSPdf-2023", Nothing)
drawBarcode(CodeType.Code_128_C, "1234567890", Nothing)
drawBarcode(CodeType.Code_128auto, "DsPdf-2023", Nothing)
drawBarcode(CodeType.Code_2_of_5, "1234567890", Nothing)
drawBarcode(CodeType.DataMatrix, "DsBarcode+DsPdf", Nothing)
drawBarcode(CodeType.QRCode, "DsBarcode+DsPdf", Nothing)
drawBarcode(CodeType.EAN_8, "1234567", Nothing)
drawBarcode(CodeType.EAN_13, "469" + "87654" + "3210", Nothing)
drawBarcode(CodeType.EAN128FNC1, $"GcBarcode{vbLf}DsPdf", Nothing)
drawBarcode(CodeType.IntelligentMail, "00300999999000000001", Nothing)
drawBarcode(CodeType.JapanesePostal, "TOKYO-10CC-09-1978", Nothing)
drawBarcode(CodeType.PostNet, "152063949", Nothing)
drawBarcode(CodeType.RM4SCC, "SE17PB9Z", Nothing)
drawBarcode(CodeType.Matrix_2_of_5, "1234567890", Nothing)
drawBarcode(CodeType.MSI, "1234567890", Nothing)
drawBarcode(CodeType.MicroPDF417, "DsPdf", Nothing)
drawBarcode(CodeType.Pdf417, "DsPdf", Nothing)
drawBarcode(CodeType.RSS14, "1234567890", Nothing)
drawBarcode(CodeType.RSS14Stacked, "1234567890", Nothing)
drawBarcode(CodeType.RSS14Stacked, "1234567890", "12345")
drawBarcode(CodeType.RSS14StackedOmnidirectional, "1234567890", Nothing)
drawBarcode(CodeType.RSS14Truncated, "1234567890", Nothing)
drawBarcode(CodeType.RSSExpanded, "12345678901234", Nothing)
drawBarcode(CodeType.RSSExpandedStacked, "12345678901234", Nothing)
drawBarcode(CodeType.RSSLimited, "1234567890", Nothing)
drawBarcode(CodeType.RSSLimited, "1234567890", "12345")
drawBarcode(CodeType.UCCEAN128, "DsBarcode+DsPdf", Nothing)
drawBarcode(CodeType.UPC_A, "123456789012", Nothing)
drawBarcode(CodeType.UPC_E0, "123456789012", Nothing)
drawBarcode(CodeType.UPC_E1, "123456789012", Nothing)
''
'' 完毕:
doc.Save(stream)
Return doc.Pages.Count
End Function
End Class