2008-02-25
ブラザーのラベルプリンターです。本体と62mm×30mのラベルを購入して、送料込み¥18,067-
brother QL-550 パソコンとの接続はUSB
オートカット機能があるので、使用するスイッチは通常、電源だけです。
現在宛名はこんな手順で作っています。
おちゃのこネット標準の受注情報ダウンロード機能を使用して受注情報をダウンロードする。
ファイルの形式はCSVでダウンロードされる。
▼
ダウンロードしたCSVファイルをEXCELで取り込む
▼
EXCELワークシートにはちょっとした式が仕込んであって
印刷したいレコードを選択すると、宛名を印刷してくれる
▼
宛名はA4のコピー用紙に印刷されるので、それをはさみで切って、封筒に糊付けする
おちゃのこネットのダウンロード機能。ボタンを押してダウンロード先を選ぶだけ。ファイル名はsales.csvがデフォルト値。
これは差出人のラベルですが、ちょっと前までタックシールを使っていた。在庫が切れたので現在はA4用紙に印刷して糊付けしている。
62×100mmサイズでランニングコストは約¥6/枚です。
幅62mmのロール紙。ただの紙ではなく感熱紙です。もちろんシールになってます。
サンプルのラベルをつくってみたであります。
ラベルプリンターを使用した新方式の印刷手順は...
1.プログラムを起動してCSVファイル取り込みボタンを押す
取り込むファイルはデスクトップに置くことに決めてあるので
ファイル名を入力する必要はない。単にボタンを押すだけ。
▼
2.受注番号の横にある「▼」「▲」ボタンで印刷したい受注を選んで
▼
3.印刷ボタンを押すと宛名ラベルが印刷される
プログラムはVisualBasic2005を使いました。もちろん無料のやつです。最近2008年版が出たので1つ前のバージョンです。標準のソフト以外にb-PACというソフトが必要になりますが、これはブラザーのホームページからダウンロードできます。
宛名の雛形はプリンターの標準添付ソフトP-タッチエディターというので作ります。当方のパソコンにはプリンターが3台付いていますが、この雛形にプリンター名が記憶されているので印刷時にプリンターを選ぶ必要はありません。
0001 Imports System
0002 Imports Microsoft.VisualBasic.FileIO
0003
0004 Public Class Form1
0005 Dim atesaki(1000, 45) As String
0006 Dim syohin(2000, 9) As String
0007 Dim a_index As Integer
0008 Dim s_index As Integer
0009 Dim disp_index As Integer
0010
0011 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
0012 Dim i As Integer
0013
0014 Using parser As New TextFieldParser("C:\Documents and Settings\IIZUKA\デスクトップ\sales.csv", System.Text.Encoding.GetEncoding("Shift_JIS"))
0015 parser.TextFieldType = FieldType.Delimited
0016 parser.SetDelimiters(",")
0017
0018 a_index = 0
0019 s_index = 0
0020 Dim header As String() = parser.ReadFields() ' ヘッダー1行空読み
0021 While Not parser.EndOfData
0022 Dim row As String() = parser.ReadFields() ' 1行読み込み
0023
0024 If row(3) <> "" Then
0025 For i = 0 To 44
0026 atesaki(a_index, i) = row(i)
0027 Next
0028 a_index = a_index + 1
0029 End If
0030 syohin(s_index, 0) = row(0)
0031 For i = 47 To 54
0032 syohin(s_index, i - 46) = row(i)
0033 Next
0034 s_index = s_index + 1
0035
0036 End While
0037 disp_index = a_index - 1
0038 disp_sales(disp_index)
0039
0040 End Using
0041 End Sub
0042
0043 Private Sub disp_sales(ByVal index As String)
0044 Dim i, j As Integer
0045 Dim buf As String
0046 Dim jyusyo_len As Integer
0047 Dim jyusyo_arr() As String
0048 Const MAX_CHAR As Integer = 32
0049
0050 TextBox_jyucyu.Text = atesaki(index, 0)
0051 TextBox_yubin.Text = "〒" & atesaki(index, 37)
0052 TextBox_todofuken.Text = atesaki(index, 38)
0053 ' TextBox_jyusyo1.Text = atesaki(index, 39)
0054 TextBox_kaisya.Text = atesaki(index, 33)
0055 TextBox_busyo.Text = atesaki(index, 34)
0056 TextBox_name.Text = atesaki(index, 35) & " 様"
0057
0058 TextBox_syokei.Text = atesaki(index, 12)
0059 TextBox_souryo.Text = atesaki(index, 17)
0060 TextBox_goukei.Text = atesaki(index, 20)
0061
0062 jyusyo_len = atesaki(index, 38).Length
0063 jyusyo_arr = Split(atesaki(index, 39), Chr(10))
0064 For i = 0 To jyusyo_arr.Length - 1
0065 jyusyo_len = jyusyo_len + System.Text.Encoding.GetEncoding("shift-jis").GetByteCount(jyusyo_arr(i))
0066 If jyusyo_len >= MAX_CHAR Then
0067 buf = ""
0068 For j = i To jyusyo_arr.Length - 1
0069 buf = buf + jyusyo_arr(j)
0070 Next
0071 TextBox_jyusyo2.Text = buf
0072 Exit For
0073 End If
0074 Next
0075 buf = TextBox_todofuken.Text
0076 For j = 0 To i - 1
0077 buf = buf + jyusyo_arr(j)
0078 Next
0079 TextBox_jyusyo1.Text = buf
0080
0081 ListBox1.Items.Clear()
0082 For i = 0 To s_index - 1
0083 If atesaki(index, 0) = syohin(i, 0) Then
0084 buf = syohin(i, 2) & " " & syohin(i, 1) & " \" & syohin(i, 3) & " " & syohin(i, 4) & "個"
0085 ListBox1.Items.Add(buf)
0086 End If
0087 Next
0088 End Sub
0089
0090 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
0091 If disp_index < a_index - 1 Then
0092 disp_index = disp_index + 1
0093 End If
0094 Call disp_sales(disp_index)
0095 End Sub
0096
0097 Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
0098 If disp_index > 0 Then
0099 disp_index = disp_index - 1
0100 End If
0101 Call disp_sales(disp_index)
0102 End Sub
0103
0104 Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
0105 'b-PACオブジェクトを生成
0106 Dim ObjDoc As BrssCom.Document
0107 ObjDoc = CreateObject("BrssCom.Document")
0108
0109 'P-touch Editorで作成したテンプレートファイルをオープン
0110 Dim bRet As Boolean
0111 bRet = ObjDoc.Open("C:\Documents and Settings\IIZUKA\My Documents\Visual Studio 2005\Projects\SalesLabel\label.lbl")
0112
0113 If (bRet <> False) Then
0114 ObjDoc.SetText(ObjDoc.GetTextIndex("郵便番号"), TextBox_yubin.Text)
0115 ObjDoc.SetText(ObjDoc.GetTextIndex("住所1"), TextBox_jyusyo1.Text)
0116 ObjDoc.SetText(ObjDoc.GetTextIndex("住所2"), TextBox_jyusyo2.Text)
0117 ObjDoc.SetText(ObjDoc.GetTextIndex("会社名"), TextBox_kaisya.Text)
0118 ObjDoc.SetText(ObjDoc.GetTextIndex("部署名"), TextBox_busyo.Text)
0119 ObjDoc.SetText(ObjDoc.GetTextIndex("氏名"), TextBox_name.Text)
0120
0121 '印刷を実行
0122 ObjDoc.DoPrint(0, &H1)
0123 Else
0124 MsgBox("LBLファイルがありません。")
0125 End If
0126
0127 'b-PACオブジェクトを解放
0128 ObjDoc = Nothing
0129 End Sub
0130 End Class
明日以降出荷の物からこのラベルを使って発送します。だいぶ楽になったものの少ない利益を食いつぶしてしまった。何か他の用途を見つけないと...
2008-05-12
表札を作りました。紙ですが...
プラスチックの台座に空いている穴でラベルの用紙種類を判別しています。
表札です。裏側の黒いマークでタックシールの切れ目を認識しているようです。印刷するときもちょっと後ずさりしてから印刷を開始するので、用紙ロールを交換しても無駄が出無い仕組みになっています。