用VB設(shè)計(jì)條形碼輕印刷系統(tǒng)
發(fā)表時(shí)間:2023-07-31 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]---- 條 形 碼 技 術(shù) 簡 介 ---- 條 形 碼 作 為 一 種 識 別 輸 入 技 術(shù), 由 于 其 顯 而 易 見 的 快 速、 準(zhǔn) 確、 低 廉 等 優(yōu) 點(diǎn), 被 廣 泛 應(yīng) 用 于...
---- 條 形 碼 技 術(shù) 簡 介
---- 條 形 碼 作 為 一 種 識 別 輸 入 技 術(shù), 由 于 其 顯 而 易 見 的 快 速、 準(zhǔn) 確、 低 廉 等 優(yōu) 點(diǎn), 被 廣 泛 應(yīng) 用 于 商 品 流 通、 圖 書 館 管 理 等 眾 多 的 自 動(dòng) 化 管 理 系 統(tǒng) 中。
---- 條 形 碼 是 利 用 條( 著 色 部 份)、 空( 非 著 色 部 份) 及 其 寬、 窄 的 交 替 變 換 來 表 達(dá) 信 息。 每 一 種 編 碼, 都 制 定 有 字 符 與 條 空、 寬 窄 表 達(dá) 的 對 應(yīng) 關(guān) 系, 只 要 遵 循 這 一 標(biāo) 準(zhǔn) 打 印 出 來 的 條、 空 交 替 排 列 的“ 圖 形 符 號”, 這 一“ 圖 形 符 號” 中 就 包 含 了 字 符 信 息; 當(dāng) 識 讀 器 劃 過 這 一“ 圖 形 符 號” 時(shí), 這 一 條、 空 交 替 排 列 的 信 息 通 過 光 線 反 射, 在 識 讀 器 內(nèi), 這 種 光 信 號 被 轉(zhuǎn) 換 成 數(shù) 字 信 號, 再 經(jīng) 過 相 應(yīng) 的 解 碼 軟 件, 就 能 將“ 圖 形 符 號” 還 原 成 字 符 信 息。
---- 三 九 碼 是 一 種 應(yīng) 用 比 較 普 遍 的 條 形 碼, 它 長 度 可 變、 可 校 驗(yàn), 容 納 的 字 符 多 達(dá)43 個(gè)( 包 括 數(shù) 字0~9、 字 母A~Z 及 其 它 七 個(gè) 特 殊 字 符)。 由 于 在 表 示 每 一 字 符 時(shí), 使 用9 個(gè) 元 素, 其 中3 個(gè) 寬 元 素、6 個(gè) 窄 元 素, 故 名39 碼, 這3 個(gè) 寬 元 素 中 必 須 有 兩 個(gè) 是 條( 有 四 個(gè) 特 殊 用 途 的 字 符 除 外)。 如 字 母“J” 的 編 碼 規(guī) 則 為:“N N N N W W W N N”, 其 中N 表 示 窄 元 素,W 表 示 寬 元 素, 奇 數(shù) 位 為 條 元 素, 偶 數(shù) 位 為 空 元 素, 寬 窄 元 素 的 寬 度 尺 寸 比 為2~3, 且 在 同 一 個(gè) 條 碼 中 必 須 是 固 定 的。 在 打 印 制 作 條 形 碼 時(shí), 條 是 需 要 打 。 著 色) 的, 而 空 元 素 內(nèi) 不 必 打 印 的, 不 過 要 將 其 寬 度 計(jì) 算 在 內(nèi)。 對 于 某 一 要 打 印 的 字 符 串, 按 其 先 后 順 序 打 印, 串 前 串 后 各 加 一 個(gè)“*” 符 號 做 為 起 始 符 與 終 止 符, 相 鄰 的 字 符 間 在 打 印 時(shí) 由“ 位 空” 分 隔,“ 位 空” 類 似 空 元 素, 即 不 著 色 部 分, 其 寬 度 應(yīng) 小 于1.35mm, 為 編 程 方 便, 通 常 取 為 一 個(gè) 窄 元 素 的 寬 度。
---- 條 形 碼 的 制 作 有 制 版 印 刷、 輕 印 刷 兩 種 方 式, 輕 印 刷 是 指 使 用 普 通 打 印 機(jī), 在 計(jì) 算 機(jī) 控 制 下 制 作 條 形 碼。 這 種 制 作 方 法 靈 活, 成 本 較 低, 即 適 宜 于 同 一 號 碼 的 單 條 制 作, 也 可 用 于 同 一 號 碼 的 大 量 制 作, 這 一 特 點(diǎn) 是 制 版 印 刷 無 可 替 代 的。 使 用 計(jì) 算 機(jī) 軟 件 打 印 條 形 碼, 其 原 理 是 將 條 形 碼 作 為 圖 形 來 看 待, 用 編 程 語 言 中 的 繪 圖 語 句- 畫 矩 形 框, 在 相 應(yīng) 的 坐 標(biāo) 上 畫 出 各 種 寬 度 不 同 的 條 元 素, 這 樣 即 可 實(shí) 現(xiàn) 條 形 碼 的 計(jì) 算 機(jī) 軟 件 打 印。
---- VB 中 幾 種 打 印 功 能 在 條 碼 打 印 時(shí) 的 比 較
---- Visual Basic 是 近 年 來 比 較 流 行 的 編 程 語 言, 功 能 強(qiáng) 大, 易 學(xué) 易 用。Visual Basic 對 打 印 功 能 提 供 了 兩 種 輸 出 方 式: 一 是 首 先 將 條 碼 輸 出 到 某 一 對 象, 再 使 用 該 對 象 中Print 方 法, 將 其 輸 出 到 打 印 機(jī); 二 是 使 用 打 印 機(jī) 對 像Printer 繪 圖。 下 面 對 這 種 方 法 做 個(gè) 比 較:
---- 一、 將 條 形 碼 圖 在 窗 體 上 繪 出, 再 使 用PrintForm 方 法 打 印 窗 體。
窄 條 打 。篖ine (x,y)-step(i,h),,bf
寬 條 打 。篖ine (x,y)-step(3*i,h),,bf 或
Line (x,y)-step(2*i,h),,bf
---- 再 使 用formname.PrintForm 將 條 形 碼 輸 出 到 打 印 機(jī)。
---- 在 這 種 方 式 下, 窗 體 的 量 度 單 位 可 以 有:twip, point, picel 三 種 其 中 以twip 為 單 位 為 最 小。
---- 以twip 為 單 位, 對 條 形 碼 來 說, 打 印 精 度 可 達(dá)30, 即 當(dāng) 窄 元 素 寬 度 必 須 等 于 或 大 于30 時(shí), 打 印 出 來 的 條 形 碼 可 以 閱 讀, 若 窄 元 素 的 寬 度 小 于30, 條 形 碼 中 相 鄰 的 條 會 粘 連 在 一 起, 無 法 識 讀。 當(dāng) 窄 元 素 寬 度 為30 時(shí),“J10059” 六 位 字 符 條 碼 尺 寸 為:67mm。
---- 以Picel 為 單 位, 打 印 精 度 可 達(dá)2, 當(dāng) 窄 元 素 寬 度 為2 時(shí),“J10059” 六 位 字 符 條 形 碼 尺 寸 為80 mm 以 上。
---- 以Point 為 單 位, 打 印 精 度 可 達(dá)2, 當(dāng) 窄 元 素 寬 度 為2 時(shí),J10059 六 位 字 符 條 形 碼 尺 寸 為110MM。
---- 二、 直 接 使 用Printer.Line , 在 打 印 機(jī) 上 繪 畫- 畫 矩 形 框
窄 條 打 。篜rinter.Line (x,y)-Step(i,h),,bf
寬 條 打 。篜rinter.Line (x,y)-Step(3*i,h),,bf 或
Printer.Line (x,y)-Step(2*i,h),,bf
---- 用Printer.Line 打 印, 量 度 單 位 為 點(diǎn), 最 小 精 度 為 達(dá)10, 當(dāng) 窄 元 素 寬 為10 時(shí),J10059 六 位 字 符 之 條 碼 尺 寸 為:21MM。
---- 根 據(jù) 以 上 的 比 較, 使 用 第 二 種 方 法 打 印 輸 入 的 條 形 碼 精 度 最 高( 同 樣 的 字 符 數(shù), 尺 寸 最 短)。 很 顯 然, 不 同 的 打 印 方 式, 分 別 有 不 同 的 適 用 范 圍, 對 尺 寸 寬 度 要 求 不 高 的 情 況 下, 可 以 使 用 第 一 種 打 印 方 式, 若 對 條 形 碼 尺 寸 要 求 較 嚴(yán) 格, 則 使 用 第 二 種 打 印 方 式 更 合 適。
---- 軟 件 設(shè) 計(jì)
---- 一、 菜 單 設(shè) 計(jì): 由 于 條 形 碼 輕 印 刷 軟 件 相 對 說 來 是 一 個(gè) 很 小 的 系 統(tǒng), 需 要 選 擇 的 項(xiàng) 目 不 多, 可 以 不 設(shè) 置 菜 單, 而 將 全 部 的 操 作 由 窗 體 控 件 來 完 成。 如 果 使 用 上 述 的 第 一 種 打 印 方 式, 則 必 須 建 立 另 一 窗 體, 用 于 第 一 步 的 輸 出 條 形 碼 圖 形。
---- 二、 設(shè) 計(jì) 窗 體 控 件: 窗 體 中 的 控 件 包 括 兩 大 類, 即: 參 數(shù) 設(shè) 置 框、 打 印 操 作 按 鈕。 本 列 設(shè) 計(jì) 的 窗 體 見 圖 示。 本 列 給 出 的 是 一 個(gè) 對 參 數(shù) 沒 有 設(shè) 置 功 能 的 窗 體, 有 興 趣 的 讀 者 可 以 在 此 基 礎(chǔ) 上 自 行 補(bǔ) 充 它。
---- 對 于 打 印 參 數(shù), 對 條 形 碼 的 打 印 來 說, 需 要 指 定 的 參 數(shù) 大 致 有: 條 碼 寬 窄 比: 3:1~2:1; 條 碼 高; 窄 元 素 寬 度; 打 印 機(jī) 類 型 及 端 口; 打 印 份 數(shù); 打 印 紙 尺 寸 規(guī) 格; 每 行 條 形 碼 數(shù); 每 個(gè) 條 碼 的 字 符 數(shù); 是 否 自 動(dòng) 增 值 打 印; 增 值 步 長; 每 一 頁 行 計(jì) 數(shù) 起 止 數(shù); 終 止 碼 等。
---- 本 列 設(shè) 計(jì) 了 八 個(gè) 按 鈕, 其 作 用 分 別 是:
---- Begin- 單 號 條 形 碼 打 印 開 始
---- Auto- 自 動(dòng) 增 值 打 印 開 始
---- Page- 將 打 印 機(jī) 內(nèi) 存 中 的 條 碼( 不 足 一 頁) 打 印 出 來
---- Cancel- 中 止 自 動(dòng) 增 值 打 印
---- Delete- 清 除 打 印 機(jī) 內(nèi) 存 中 的 未 打 印 條 碼
---- Help- 幫 助 信 息
---- About- 版 本 及 設(shè) 計(jì) 信 息
---- Exit- 關(guān) 閉 系 統(tǒng)
---- 三、 程 序 流 程:
---- 在 本 例 中, 條 形 碼 的 打 印 分 為 單 號 打 。 自 動(dòng) 增 值 打 印 兩 種。 單 號 打 印, 是 用 戶 輸 入 一 個(gè) 或 幾 個(gè) 需 要 打 印 的 號 碼 的 打 印 方 式; 而 自 動(dòng) 增 值 打 印 是 用 戶 指 定 起 始 號、 終 止 號 及 增 加 步 長, 由 機(jī) 器 自 動(dòng) 生 成 被 打 印 號 碼 來 打 印。 其 實(shí) 這 兩 種 方 式 在 打 印 時(shí) 的 操 作 是 完 全 一 樣 的, 不 同 之 處 在 于 被 打 號 碼 的 獲 取, 需 要 注 意 的 是 由 于39 碼 字 符 集 中 包 括 字 符, 在 自 動(dòng) 增 值 時(shí) 要 與 純 數(shù) 字 碼 區(qū) 別。
---- 下 面 以 單 號 打 印 為 例, 介 紹 條 形 碼 打 印 的 程 序 流 程。
---- 1 . 檢 查 各 項(xiàng) 參 數(shù) 設(shè) 置 是 否 完 全 正 確, 若 正 確, 則 繼 續(xù), 否 則 退 出;
---- 2 . 獲 取 各 項(xiàng) 參 數(shù) 設(shè) 置;
---- 3 . 為X 坐 標(biāo) 取 初 值( 紙 的 左 邊 打 印 邊 界);
---- 4 .( 循 環(huán)A) 是 否 打 印 完 一 行(I 條 條 碼) ? 是 則 轉(zhuǎn)14;
---- 5 . 本 條 條 碼 是 否 為 空 ? 是 則 將 橫 坐 標(biāo) 加 上 一 條 條 碼 之 寬 度;
---- 6 . 打 印 起 始 符;
---- 7 .( 循 環(huán)B) 是 否 打 印 完 本 條 條 碼(J 個(gè) 字 符) ? 是 則 轉(zhuǎn)10;
---- 8 . 打 印 一 個(gè) 字 符 的 條 碼;
---- 9 .( 循 環(huán)B) 下 一 個(gè) 字 符;
---- 10 . 打 印 終 止 符;
---- 11 . 修 改X 坐 標(biāo);
---- 12 .( 循 環(huán)A) 下 一 條 條 碼
---- 13 . 修 改Y 坐 標(biāo);
---- 14 . 打 印 本 行 每 一 條 碼 的 人 工 識 別 字 符;
---- 15 . 本 頁 是 否 已 打 滿 ? 是 則 打 印, 并 對 新 頁 坐 標(biāo) 初 始 化;
---- 16. 退 出
---- 四、 程 序 代 碼:
---- 用 于 檢 查 參 數(shù) 設(shè) 置 正 確 性 的 程 序 主 要 從 各 項(xiàng) 參 數(shù) 間 的 關(guān) 系 去 檢 查。 如 根 據(jù) 使 用 的 寬 度、 高 度、 每 行 條 碼 數(shù), 判 斷 是 否 超 出 了 紙 的 打 印 范 圍; 輸 入 的 號 碼 是 否 合 法 等。
---- 可 以 為 每 字 符 設(shè) 計(jì) 一 段 各 自 的 打 印 程 序, 這 種 方 式 編 程 簡 單。 也 可 以 將 打 印 程 序 與 條 形 碼 的 編 碼 規(guī) 則 分 離, 通 過 參 數(shù) 傳 遞 某 一 字 符 的 編 碼 規(guī) 則, 不 同 的 字 符 共 享 同 一 打 印 程 序。 本 列 采 用 前 一 種 方 式。 如 字 母“J” 的 編 碼 規(guī) 則 為:“N N N N W W W N N”, 打 印 程 序 代 碼 如 下:
Private Sub prn_J()
Printer.Line (x, y)-Step(widt, high), , BF 注釋:打印窄條
x = x + widt 注釋:改變X坐標(biāo)
x = x + widt 注釋:打印窄空
Printer.Line (x, y)-Step(widt, high), , BF
x = x + widt
x = x + widt
Printer.Line (x, y)-Step(w_n * widt, high), , BF 注釋:打印寬條
x = x + w_n * widt 注釋:改變X坐標(biāo)
x = x + w_n * widt 注釋:打印寬空
Printer.Line (x, y)-Step(w_n * widt, high), , BF
x = x + w_n * widt
x = x + widt
Printer.Line (x, y)-Step(widt, high), , BF
x = x + widt
x = x + widt 注釋:打印位空
End Sub
---- 其 中x,y 分 別 為 坐 標(biāo) 值,w_n 為 寬 窄 元 素 寬 度 比, widt 為 窄 元 素 的 寬 度 值( 點(diǎn)), high 為 條 形 碼 高 度, 每 打 印 一 個(gè) 條 元 素, 應(yīng) 立 即 改 變X 坐 標(biāo), 以 便 打 印 下 一 個(gè) 元 素; 打 印 空 元 素 時(shí), 由 于 是 不 著 色, 只 需 改 變X 坐 標(biāo) 即 可; 每 一 個(gè) 字 符 打 印 結(jié) 束 時(shí), 應(yīng) 打 印 一 個(gè) 位 空( 本 列 中 位 空 寬 度 等 于 窄 空)。 其 它 的42 個(gè) 字 符 的 編 碼 規(guī) 則, 讀 者 可 以 在 有 關(guān) 條 形 碼 技 術(shù) 的 文 獻(xiàn) 中 查 到。