您的位置:首页 > 编程语言 > C#

绘制个性书籍标签以及保存或打印标签(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的条形码。

//绘制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)打印预览

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐