1. 程式人生 > >【小y設計】二維碼條形碼列印編輯器

【小y設計】二維碼條形碼列印編輯器

條碼列印,價格標籤列印,需要對列印進行排版,於是設計了一個簡單的編輯器

支援條碼二維碼列印進行編輯排版,支援文字、圖片、條碼、二維碼、直線,能自由拖拉,刪除,並可儲存為模版。 介面如下 (下載Demo  體驗):

左邊為引數設定,右邊為可視編輯區,支援自由拖拉,按Del鍵刪除層。

首先點選左邊最上面的紙張設定,設定紙張大小。可以直接在下拉框中選擇常用的紙張大小,也可以自定義尺寸。設定好後點擊“儲存設定"按鈕,則編輯區顯示相應尺寸的紙張。然後在紙張上自由插入條碼、圖片、文字、直線。

支援簡單的時間變數,比如文字內容裡插入了”{當前時間}“變數,則當觸發列印操作的時候,再取當前時間,並替換該變數:

程式原始碼截圖:

關鍵技術點:

1.實現如Photoshop類似的圖層概念

  剛開始準備使用GDI+繪製圖層,然後用滑鼠定位當前選中的物件,後來改進成用自定義控制元件實現,在控制元件上畫物件,只需要對控制元件新增統一的滑鼠事件就可以實現圖層移動、刪除等操作。

2.繪製條碼、二維碼,涉及中文問題、條碼編碼方式問題

使用的開源二維碼庫zxing,我之前的其他文章也有詳細介紹,不贅述。

 //條碼型別
            BarcodeFormat myBarcodeFormat;
            EncodingOptions myEncoding;
            
if (this.CodeType == 1) //二維碼 { myBarcodeFormat = BarcodeFormat.QR_CODE; myEncoding = new QrCodeEncodingOptions() { Height = this.Height, Width = this.Width, Margin = 0, CharacterSet
="UTF-8", PureBarcode = !this.IsShowText }; } else //條形碼 { myBarcodeFormat = BarcodeFormat.CODE_128; myEncoding = new EncodingOptions() { Height = this.Height, Width = this.Width, Margin = 0, PureBarcode = !this.IsShowText }; } //生成條碼QrCodeEncodingOptions BarcodeWriter writer = new BarcodeWriter { Format = myBarcodeFormat, Options = myEncoding, Renderer = (IBarcodeRenderer<Bitmap>)Activator.CreateInstance(typeof(BitmapRenderer)) }; Bitmap barImg= writer.Write(this.Content);

這裡強調一點是,使用UTF-8編碼防止中文亂碼。其二,條碼編碼方式使用Code_128,支援任意ascii碼。

相關推薦

y設計條形碼列印編輯

條碼列印,價格標籤列印,需要對列印進行排版,於是設計了一個簡單的編輯器 支援條碼二維碼列印進行編輯排版,支援文字、圖片、條碼、二維碼、直線,能自由拖拉,刪除,並可儲存為模版。 介面如下 (下載Demo  體驗): 左邊為引數設定,右邊為可視編輯區,支援自由拖拉,按Del鍵刪除層。 首先點選左邊最上面

生成原理

char 方法 選擇 規則 什麽是 fff mode 進行 數字相加 原文鏈接:QR碼生成原理-QR Code(ISO 18004)編碼方式 一、什麽是QR碼 QR碼屬於矩陣式二維碼中的一個種類,由DENSO(日本電裝)公司開發,由JIS和ISO將其標準化。QR碼的樣子

生成及解析功能

前臺渲染到後臺 //生成二維碼放入資料夾裡 public void testEncode() throws FileNotFoundException, Exception { //選中的list List<String> selec

Jquery-

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   

超_AndroidGitHub源項目整理,希望對大家有幫助

軟件 parcel simon acc ren sgu fun ttr 文檔 收集的經常使用Github上比較優秀的項目,希望對大家日常開發有所幫助: AndroidSlidingMenu https://github.com/jfeinstein10/S

java微信程序參數生成帶背景圖加字體(無限生成)

width sts addheader parent mob leo asics con system 需求 : 1,因為項目需求 ,生成數以萬計的二維碼       2 ,每個二維碼帶不同的參數    3,二維碼有固定背景圖

通過數據流處理-微信程序生成臨時

ant eat index ppi fun ppm nload his gif 1.小程序代碼 onLoad: function (options) { var that = this api.Login(function (login) {

程序參數自動生成

參數 自動 bubuko clas target 掃碼 info blank 二維碼 當小程序審核通過後,那麽線上的小程序二維碼是如何生成呢?芝麻小程序碼提供了程序二維碼生成工具。 網址如下 https://weixin.hotapp.cn 芝麻小程

程序參數生成

ima 知識 contents true pty exe 準備 field 小程序 總所周知,小程序無法分享到朋友圈,但是圖片可以。只要小程序能生成包含信息與小程序參數二維碼,即可達到很好的傳播效果。 例:拉勾網。 基礎知識準備 appid與appsecr

微信遊戲 帶引數生成

參考: 微信小程式-獲取小程式碼 微信小遊戲開發文件-小遊戲獲取二維碼開放能力開發     一、 請求微信介面,獲取token https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&

演算法 詳解 動態規劃

馬攔過河卒 原題傳送門 這一到題目也是比較基礎的動態規劃,也可以理解為是遞推,主要是運用加法原理,思維難度不大。我們要求從 (0,0) ( 0

微信程式掃普通跳轉

最近一需求,是要做小程式掃普通二維碼跳轉。看了看微信文件一頭霧水,寫的不是很清楚。 官方文件傳送門:https://developers.weixin.qq.com/miniprogram/introduction/qrcode.html#功能介紹 文件上的幾個要點

程式中繪製

小序 一個新的小程式專案,VIP親子年卡(以下簡稱客戶端), 和一個對應的商家端, 在做的過程中有一個需求,在客戶端展示二維碼, 商家端掃碼獲取資訊。 既然需求已經訂了,就搞一搞繪製二維碼 先寫元素 <view class='hxm-bg'> <view c

B介面-微信程式帶引數的生成

介面B:適用於需要的碼數量極多,或僅臨時使用的業務場景  介面地址:https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN 注意:通過該介面生成的小程式碼,永久有效,數量暫無限制。使用者掃描該碼進入小程式

微信程式掃描條形碼 (wx.scanCode)

前言 在業務中遇到需要獲取商品的二維碼的資訊返回商品的二維碼資訊,在呼叫後臺的介面,首先想到用小程式的Api,wx.scanCode(Object object)獲取二維碼資訊。 支援相機掃描或者相簿獲取二維碼。 getScancode: function () {

數字影象處理(2D)線性插值的應用

應用情況 在使用matlab對影象進行各種操作的時候經常要使用插值進行計算。 例如:影象縮放、影象旋轉、仿射變換等等。 線性插值 先介紹線性插值的概念。 已知兩個點(x1, y1)、(x2, y2),求它們中間橫座標為x的點的y值。 則可以利用如下公式進行插值

微信程式動態生成

預覽效果如下 思路 1.先引用qrcode.js(自己從網上下載) 2.設定二維碼大小 3. 繪製二維碼 4. 提交按鈕重新整理獲取二維碼 wxml wxss js樣式就引入onLoad裡的內容,其他的和上部分思路里的一樣,直接加入裡面就好了

刷題記錄ZJOI2007棋盤製作DP,懸線法。。。

https://www.luogu.org/problemnew/show/P1169 題目描述 國際象棋是世界上最古老的博弈遊戲之一,和中國的圍棋、象棋以及日本的將棋同享盛名。據說國際象棋起源於易經的思想,棋盤是一個

微信程式帶參

需求:生成小程式中的海報,需要小程式二維碼可以使使用者儲存到本地在朋友圈分享 生成二維碼工具類程式碼如下: 1 package com.aone.foottalk.action.wx.util; 2 3 import java.io.File; 4 import j

掃描普通開啟程式(程式帶參) java+postman

1、首先獲取access_token String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_cr