【问题标题】:Implement Barcode in MVC在 MVC 中实现条形码
【发布时间】:2018-08-10 09:20:48
【问题描述】:

我想在 IIS 上托管的 MVC Web App 中为 Super Store 实现条形码。经过 3 天的研究,我在 google 上找到了一个示例,但它不在 MVC 中。请告诉我如何在 MVC 中实现此代码,所以当我传递字符串时,条形码图像会显示在我的视图中

public void CreateBarcode(string code)
        {
            var myBitmap = new Bitmap(500, 50);
            var g = Graphics.FromImage(myBitmap);
            var jgpEncoder = GetEncoder(ImageFormat.Jpeg);

            g.Clear(Color.White);

            var strFormat = new StringFormat { Alignment = StringAlignment.Center };
            g.DrawString(code, new Font("Free 3 of 9", 50), Brushes.Black, new RectangleF(0, 0, 500, 50), strFormat);

            var myEncoder = System.Drawing.Imaging.Encoder.Quality;
            var myEncoderParameters = new EncoderParameters(1);

            var myEncoderParameter = new EncoderParameter(myEncoder, 100L);
            myEncoderParameters.Param[0] = myEncoderParameter;
            myBitmap.Save(@"E:\Barcode.jpg", jgpEncoder, myEncoderParameters);
        }

        public ImageCodecInfo GetEncoder(ImageFormat format)
        {

            var codecs = ImageCodecInfo.GetImageDecoders();

            foreach (var codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }

【问题讨论】:

  • 展示你到目前为止所做的尝试,也许有人会尝试提供帮助。
  • @mrkernelpanic 我是编程新手。我很困惑 void 函数的返回类型应该是什么。至少告诉我 void 函数的返回类型应该是什么。所以我可以将它存储一些变量等,然后将其渲染到我的视图中。
  • void 函数不返回任何东西——这就是为什么它们被标记为void
  • 我知道 void 返回什么。我想问应该是什么数据类型而不是 void???

标签: c# model-view-controller barcode


【解决方案1】:

您似乎知道如何制作条形码,并且需要知道如何将其从控制器获取到您的页面。这是一个小代码,可以帮助您将它们放在一起。

在您的页面中

<img src="@Url.Action("Barcode", new { code = "*ABC123*" })" alt="" />

在你的控制器中

public ActionResult Barcode(string code)
{
    var myBitmap = new Bitmap(500, 50);
    var g = Graphics.FromImage(myBitmap);

    // the code that makes the barcode
    // the code that makes the barcode
    // the code that makes the barcode

    // Put the image into a stream to return
    MemoryStream ms = new MemoryStream();
    myBitmap.Save(ms, ImageFormat.Png);

    // Reset the stream position before returning it
    ms.Position = 0;
    return new FileStreamResult(ms, "image/png");
}

【讨论】:

  • 感谢@MEC 的回复
  • 但正如我在问题中提到的,我只是从谷歌复制了代码。你能再定义一点吗???
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-25
  • 2015-11-16
  • 2012-09-02
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 2021-04-04
相关资源
最近更新 更多