0

配送ラベルを印刷する 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」という別のファイルで定義されているようですが、新しいフォントをそれに組み込む方法がわかりません。本当に迷っており、手がかりやドキュメントへのリンクを期待しています私を正しい方向に向かわせてください。

4

0 に答える 0