书籍的标签被经常来管理图书,为每一本书籍都贴上一个标签,既方便查阅书籍,又方便管理书籍。本博文介绍的程序主要实现以下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的条形码。

//绘制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;//书籍信息:标题,作者,出版社,ISBNg.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)打印预览

绘制个性书籍标签以及保存或打印标签(C#)相关推荐

  1. 爬虫实战|从笔趣阁爬取书籍并简单保存

    最近在看崔庆才那本经典的爬虫开发书籍,之前虽然看过一点视频,但是与书籍相比还是书籍更加成体系,让我对知识有一个宏观的把控.目前已经看了前四章,了解了一些基础知识和如何解析数据的方法,但是对于数据的保存 ...

  2. python matplotlib绘制gif动图以及保存

    python matplotlib绘制gif动图以及保存 标签: python matplotlib 谨以此文纪念我两天来的悲剧 昨天我用lstm拟合sin曲线,看到别人画的做的动图很好看,并且还能保 ...

  3. 基于TF-IDF编码进行文本聚类分析:文档成对相似性计算、层次聚类(链接矩阵、树形图dendrogram绘制、聚类标签)

    基于TF-IDF编码进行文本聚类分析:文档成对相似性计算.层次聚类(链接矩阵.树形图dendrogram绘制.聚类标签) 目录

  4. 【6】爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel

    爬虫介绍/准备工作/构建流程/获取数据/BeautifulSoup/Re(正则表达式)/正则提取/标签解析/保存数据到excel 更新时间:2021.9.16 vedio:15,16,17,18,19 ...

  5. python实心点怎么画_python 绘制随机实心圆,保存标签

    import numpy as np import cv2 import os def main(): ann_images = 'D:/University/Data/images/' ann_sa ...

  6. 【matlab】绘制云图 + 修改配色方案 + 保存配色方案

    一.绘制云图 假设 x.y 为坐标向量,f 为各个坐标点所对应的函数值 的向量 1.需要根据 x.y 的范围进行划分,可以理解为建立坐标系或比例尺 X1和Y1 X1 = linspace(min(x) ...

  7. uniapp中canvas将矩形图片绘制成圆形图片以及保存canvas到手机

    废话不多说直接上代码 本次是在uniapp中操作的 但是canvas都一样 前提是你已经赋予了canvas宽高了 //先获取你的canvas let ctx = uni.createCanvasCon ...

  8. 机器学习中绘制(多标签)PR曲线和F1-score【转载】

    参考:PR曲线和F1-score 评价指标相关 - 知乎 sklearn官方文档:Precision-Recall - scikit-learn 1.0.2 documentation 多标签设置中的 ...

  9. matplotlib基础知识(图形绘制坐标轴、标签、刻度字体设置图例脊柱移动风格样式多图布局双轴显示)(1)

    文章目录 前言 一.图形绘制 二.坐标轴刻度.标签.标题 1.寻找字体 2.设置 三.图例 四.脊柱移动 五.风格样式-颜色.线形.点形.线宽.透明度 2.更多属性设置 六.多图布局 1.子视图 2. ...

最新文章

  1. Android 的滑动分析以及各种实现
  2. Facebook妥协了,React回归
  3. 【ABAP系列】SAP ABAP中关于commit的一点解释
  4. VSCode配置 C++环境
  5. 中文停用词文档_实战:朴素贝叶斯对文档进行分类
  6. Awaken for Mac闹钟定时器
  7. java 中高级面试题_Java中高级面试题
  8. mt2503短信數量和定義的不一致
  9. 网站静态页面克隆 | 学习笔记
  10. 为什么蓝鸽的听力下载完还是听不了_推荐这款练习英语听力的神器级免费App
  11. 【190112】VC++ 电话簿通讯录程序源代码
  12. 笔记本计算机无法上无线网络,笔记本电脑连不上无线网络的处理方法
  13. oracle db recover参数,【参数】恢复db_recovery_file_dest_size参数为默认值“0”方法
  14. 图像篡改入门02 利用空间结构篡改定位
  15. 配置ABP的redis
  16. Opencv色彩空间(GRAY、XYZ、HSV、YCrCb、HLS)展示,以及利用HSV标记指定的颜色
  17. 基于 SSM 的 CRM 客户管理系统
  18. 百万调音师—Audition 压缩效果器
  19. 王者荣耀服务器ip地址配置文件,王者荣耀,关于设置的一些小技巧,知道以后你也是大神...
  20. 轻量型互联网应用架构方式

热门文章

  1. L2TP LAC initial 配置与安全策略
  2. 《开会就要学三星》阅读笔记
  3. android动态图片做背景,在Android上添加动态内容后,背景图片变为纯色
  4. intel cpu架构与平台
  5. python import numpy as np_import numpy as np
  6. margin或padding值为1个、2个、3个、4个的时候分别代表什么意思
  7. 容器技术在分布式系统应用
  8. 模型 趋势预测 数学建模 matlab,经济发展趋势预测数学建模.doc
  9. 趋势预测方法(一) 多项式拟合(最小二乘法)_函数拟合
  10. Warning This file includes at least one deprecated or antiquated header