配送ラベルを印刷する VB プログラムを継承しました。印刷されるバーコードを更新する必要があり、既存のプログラムが何をしているかを理解しようとしています。ラベルを生成するための Postscript コードを含むと思われる "WrittenData" ("s" として保存される) がたくさんありますが、この半分の意味を特定している場所は見つかりませんでした。
Public Function PostScriptItem(address As Variant, Optional intPageNumberOut As Integer = 1, Optional intPageNumberIn As Integer = 2) As String
' 0 - MatchUpId
' 1 - Our Barcode
' 2 - Outgoing PostNet Code
' 3 - Outgoing Line 1
' 4 - Outgoing Line 2 (optionally EMPTY)
' 5 - Outgoing Line 3
' 6 - Outgoing Line 4
' 7 - Outgoing PlaNET Code
' 8 - Incoming PostNet Code
' 9 - Incoming Line 1
'10 - Incoming Line 2 (optionally EMPTY)
'11 - Incoming Line 3
'12 - Incoming Line 4
'13 - Incoming PlaNET Code
'14 - Title Id
'Escape Parenthesis and Backslashes
Dim tPos As Integer
For tPos = 0 To 14 Step 1
address(tPos) = Replace(address(tPos), "\", "\\")
address(tPos) = Replace(address(tPos), "(", "\(")
address(tPos) = Replace(address(tPos), ")", "\)")
Next tPos
Dim s As String
Dim pos As Integer
Dim fsize As Integer
Dim strBarcodeCaption As String
strBarcodeCaption = address(1) & " " & address(14) & " " & address(0)
pos = 50
fsize = 12
s = s & "%%Page: " & CStr(intPageNumberOut) & " " & CStr(intPageNumberOut) & vbCrLf & _
"<< /Duplex true >> setpagedevice" & vbCrLf & _
"<< /Tumble true >> setpagedevice" & vbCrLf & _
"%%BeginPageSetup" & vbCrLf & _
"180 rotate" & vbCrLf & _
"/pagelevel save def" & vbCrLf & _
"%%EndPageSetup" & vbCrLf & _
"newpath" & vbCrLf & _
"-338 -205 translate" & vbCrLf & _
"/Courier-Bold findfont 6 scalefont setfont" & vbCrLf & _
"newpath" & vbCrLf
s = s & "32 104 moveto (" & strBarcodeCaption & ") show" & vbCrLf & _
"newpath" & vbCrLf
s = s & "12 -450 translate" & vbCrLf & _
"62 104 moveto (" & strBarcodeCaption & ") show" & vbCrLf & _
"newpath" & vbCrLf & _
"30 80 moveto (^104" & address(1) & ") (height=0.3) code128 barcode" & vbCrLf & _
"newpath" & vbCrLf
s = s & "/Helvetica findfont 11 scalefont setfont" & vbCrLf & _
"0 " & CStr(pos) & " moveto (" & address(3) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize
If address(4) <> Empty Then
s = s & "0 " & CStr(pos) & " moveto (" & address(4) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize
End If
s = s & "0 " & CStr(pos) & " moveto (" & address(5) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize
s = s & "0 " & CStr(pos) & " moveto (" & address(6) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize - 5
s = s & "1 " & CStr(pos) & " moveto (" & address(2) & ") () postnet barcode" & vbCrLf & _
"%%PageTrailer" & vbCrLf & _
"pagelevel restore" & vbCrLf & _
"showpage" & vbCrLf
s = s & "%%Page: " & CStr(intPageNumberIn) & " " & CStr(intPageNumberIn) & vbCrLf & _
"<< /Duplex true >> setpagedevice" & vbCrLf & _
"<< /Tumble true >> setpagedevice" & vbCrLf & _
"%%BeginPageSetup" & vbCrLf & _
"/pagelevel save def" & vbCrLf & _
"210 711 translate" & vbCrLf & _
"%%EndPageSetup" & vbCrLf & _
"newpath" & vbCrLf & _
"/Courier-Bold findfont 6 scalefont setfont" & vbCrLf & _
"0 21 moveto (" & address(1) & " " & address(0) & ") show" & vbCrLf & _
"gsave" & vbCrLf & _
"0.5 0.5 scale" & vbCrLf & _
"0 12 moveto (^104" & address(1) & ") (height=0.3) code128 barcode" & vbCrLf & _
"grestore" & vbCrLf & _
"newpath" & vbCrLf & _
"32 0 moveto (" & address(14) & ") show" & vbCrLf & _
"newpath" & vbCrLf & _
"/Helvetica findfont 11 scalefont setfont" & vbCrLf & _
"-70 -180 translate" & vbCrLf
pos = 56
s = s & "0 " & CStr(pos) & " moveto (" & address(9) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize
If address(10) <> Empty Then
s = s & "0 " & CStr(pos) & " moveto (" & address(10) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize
End If
s = s & "0 " & CStr(pos) & " moveto (" & address(11) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize
s = s & "0 " & CStr(pos) & " moveto (" & address(12) & ") show" & vbCrLf & _
"newpath" & vbCrLf
pos = pos - fsize - 5
s = s & "1 " & CStr(pos) & " moveto (" & address(8) & ") () postnet barcode" & vbCrLf & _
"%%PageTrailer" & vbCrLf & _
"pagelevel restore" & vbCrLf & _
"showpage" & vbCrLf
PostScriptItem = s
End Function
「address(2)」と「address(8)」の内容を変更し、別のフォントを使用してそれらを印刷する必要があります。プロジェクトのフォント フォルダに新しいフォントを配置して、「postnet」と「code128」が参照される方法で参照しようとしましたが、完全に空白のラベルが残りました。「code128」フォントは「postscript_main.ps」という別のファイルで定義されているようですが、新しいフォントをそれに組み込む方法がわかりません。本当に迷っており、手がかりやドキュメントへのリンクを期待しています私を正しい方向に向かわせてください。