绘制个性书籍标签以及保存或打印标签(C#)
2017-01-08 20:49
447 查看
书籍的标签被经常来管理图书,为每一本书籍都贴上一个标签,既方便查阅书籍,又方便管理书籍。本博文介绍的程序主要实现以下3个功能:
1. 绘制书籍标签
2. 保存标签为图片
3. 打印标签
程序下载:点击打开链接
http://download.csdn.net/detail/softimite_zifeng/9732162
注:在本程序中用户需要自己手动输入书籍的标题、作者、出版社、ISBN码等信息,有点繁琐。如果是用于书籍管理,那么肯定效率不高。不过,子丰在之前的博文中有写过如何通过API直接获取书籍的信息。这样你只需要手动输入书籍的ISBN码即可,甚至,如果你有扫码枪,直接扫描一个书籍背面的条形码,即可通过API迅速地获取到该书籍的详细信息。
详情请参考:点击打开链接
http://blog.csdn.net/softimite_zifeng/article/details/54234748
1. 绘制书籍标签。标签上有书籍的标题、作者、出版社、ISBN码、ISBN条形码以及用户根据自己的需要设置的内容。如果用于图书管理,可以自定义一种唯一ID用于标识该书籍,并且可以将该ID绘制在标签上,将条形码更换为该ID的条形码。
1)打印
2)打印预览
1. 绘制书籍标签
![](https://img-blog.csdn.net/20170108204349018?watermark/2/text/a<br/>4000<br/>HR0cDovL2Jsb2cuY3Nkbi5uZXQvc29mdGltaXRlX3ppZmVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2. 保存标签为图片
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/01/92f10b5d93ca4b20063b74675488cccb)
3. 打印标签
1)打印
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/01/637efbf29af33147abc2f9f76b004ad1)
2)打印预览
1. 绘制书籍标签
2. 保存标签为图片
3. 打印标签
程序下载:点击打开链接
http://download.csdn.net/detail/softimite_zifeng/9732162
注:在本程序中用户需要自己手动输入书籍的标题、作者、出版社、ISBN码等信息,有点繁琐。如果是用于书籍管理,那么肯定效率不高。不过,子丰在之前的博文中有写过如何通过API直接获取书籍的信息。这样你只需要手动输入书籍的ISBN码即可,甚至,如果你有扫码枪,直接扫描一个书籍背面的条形码,即可通过API迅速地获取到该书籍的详细信息。
详情请参考:点击打开链接
http://blog.csdn.net/softimite_zifeng/article/details/54234748
1. 绘制书籍标签。标签上有书籍的标题、作者、出版社、ISBN码、ISBN条形码以及用户根据自己的需要设置的内容。如果用于图书管理,可以自定义一种唯一ID用于标识该书籍,并且可以将该ID绘制在标签上,将条形码更换为该ID的条形码。
//绘制Label private static void paintGraphics(Graphics g, int times = 1) { //通用文字字体 Font font1 = new Font("Arial", 6f * times, FontStyle.Regular); //标题的字体 Font font2 = new Font("黑体", 12f * times, FontStyle.Bold); //ISBNx的字体 Font font3 = new Font("Arial", 8f * times, FontStyle.Regular); //实验室名的字体 Font font4 = new Font("Arial", 8f * times, FontStyle.Bold); //ISBN条码显示清晰 g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.Half; g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; g.DrawImage(ZXingBar(ISBN), 15 * times, 75 * times, 160 * times, 50 * times); //文本居中显示,主要用于标题和ISBNx居中显示 StringFormat format = new StringFormat { Alignment = StringAlignment.Center }; //消除文字锯齿 g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; //书籍信息:标题,作者,出版社,ISBN g.DrawString(Title, font2, Brushes.Black, 98 * times, 6 * times, format); g.DrawString("作者:" + Author, font1, Brushes.Black, 10 * times, 30 * times); g.DrawString("出版社:" + Publisher, font1, Brushes.Black, 10 * times, 45 * times); g.DrawString("ISBN:" + ISBN, font1, Brushes.Black, 10 * times, 60 * times); //自定义信息 g.DrawRectangle(new Pen(Brushes.Black), 130 * times, 30 * times, 53 * times, 35 * times); g.DrawString("softimite", font4, Brushes.Black, 131 * times, 35 * times); g.DrawString("子丰", font1, Brushes.Black, 144 * times, 50 * times); } //绘制条码 private static Bitmap ZXingBar(string isbn) { //设置条形码规格 EncodingOptions encodeOption = new EncodingOptions(); //必须制定高度、宽度 encodeOption.Height = 80; encodeOption.Width = 200; BarcodeWriter wr = new BarcodeWriter(); wr.Options = encodeOption; //条形码规格:12(无校验位)或13位数字 wr.Format = BarcodeFormat.EAN_13; //生成条码图片 return wr.Write(isbn); }2. 保存标签为图片。程序中将该标签保存为jpg图片,并且默认图片名称为书籍的isbn码。
//保存 private void saveBtn_Click(object sender, EventArgs e) { try { if (labelPb.Image == null) { MessageBox.Show("没有可保存的标签"); return; } SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); fileDialog.RestoreDirectory = true; fileDialog.Filter = "图片文件(*.jpg)|*.jpg"; fileDialog.FileName = "Label-" + isbnTxt.Text.Trim() + ".jpg"; if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string filePath = fileDialog.FileName; labelPb.Image.Save(filePath); MessageBox.Show("标签 Label-" + isbnTxt.Text.Trim() + " 保存成功"); } } catch (Exception ex) { MessageBox.Show("标签 Label-" + isbnTxt.Text.Trim() + " 保存失败: " + ex.Message); } }3. 打印标签。程序中提供了打印和打印预览两个功能。
1)打印
//打印 private void printBtn_Click(object sender, EventArgs e) { try { if (labelPb.Image == null) { MessageBox.Show("没有可打印标签"); return; } PrintDialog printDg = new PrintDialog(); printDg.Document = GenLabel.LabelDocument; if (printDg.ShowDialog() == DialogResult.OK) { try { printDg.Document.Print(); MessageBox.Show("标签 " + isbnTxt.Text.Trim() + " 打印成功"); } catch { //停止打印 printDg.Document.PrintController.OnEndPrint(printDg.Document, new System.Drawing.Printing.PrintEventArgs()); MessageBox.Show("标签 " + isbnTxt.Text.Trim() + " 打印失败"); } } } catch (Exception ex) { MessageBox.Show("异常: " + ex.Message); } }
2)打印预览
//打印预览 private void previewBtn_Click(object sender, EventArgs e) { try { if (labelPb.Image == null) { MessageBox.Show("没有可打印标签"); return; } PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog(); printPreviewDialog.Document = GenLabel.LabelDocument; printPreviewDialog.ShowDialog(); } catch (Exception ex) { MessageBox.Show("异常: " + ex.Message); } }下面贴出几张图片,分别展示这3个功能:
1. 绘制书籍标签
2. 保存标签为图片
3. 打印标签
1)打印
2)打印预览
相关文章推荐
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- C#控制Word,Excel修改(复制、更改内容)、打印、保存权限
- C# 标签(条码)的打印与设计(一)
- C#对象序列化成XML,以及自定义标签名
- 郁闷了半天,原来是这个问题:关于C#中关于图片保存到数据库以及将数据库中的图片显示到PictureBox。
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- C#使用Zebra 斑马打印标签--使用winspool.Drv方式
- C#调用斑马打印机打印条码标签(支持COM/LPT/USB/ZPL/EPL/Bitmap)
- C# 条码标签打印程序,RDLC报表动态显示多条码标签的方法
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- C# 绘制曲线图,并保存为Gif格式文件 调试通过
- C#中如何将信息保存到txt文件中去,以及如何读取
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- C# 报表绘制,打印与下载
- Java报表工具技巧--如何使用Style Report制作以及打印标签
- 通过程序(C# C/S)调用Sato Label Gallery标签模板 打印
- C# 标签(条码)的打印与设计(二)