예제 #1
0
    /// <summary>
    /// Encode text in to a QR Code and define the colors and the Errer Correction Level
    /// </summary>
    /// <param name="text"></param>
    /// <param name="darkColor"></param>
    /// <param name="lightColor"></param>
    /// <param name="errorCorrectionLevel"></param>
    /// <returns></returns>
    public static Texture2D EncodeString(string text, Color darkColor, Color lightColor, QRCodeGenerator.ECCLevel errorCorrectionLevel)
    {
        QRCodeGenerator qrGenerator = new QRCodeGenerator();
        QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(text, errorCorrectionLevel);

        Texture2D qrTexture = qrCode.GetGraphic(PIXELS_PER_MODULE, darkColor, lightColor);

        return qrTexture;
    }
예제 #2
0
    /// <summary>
    /// Encode text in to a QR Code
    /// </summary>
    /// <param name="text"></param>
    /// <returns></returns>
    public static Texture2D EncodeString(string text)
    {
        QRCodeGenerator qrGenerator = new QRCodeGenerator();
        QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.L);

        Texture2D qrTexture = qrCode.GetGraphic(PIXELS_PER_MODULE);

        return qrTexture;
    }
예제 #3
0
 void GenerateQR(string value)
 {
     QRCodeGenerator qrGenerator = new QRCodeGenerator();
     QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(value, QRCodeGenerator.ECCLevel.Q);
     using (Bitmap bitMap = qrCode.GetGraphic(20))
     {
         using (MemoryStream ms = new MemoryStream())
         {
             bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
             byte[] byteImage = ms.ToArray();
             imgQR.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
         }
     }
 }
예제 #4
0
        public QRLinkWindow(PedroFileDownload fileData)
        {

            InitializeComponent();
            //PayloadGenerator.Url url2 = new PayloadGenerator.Url("www.google.es");
            PayloadGenerator.Url url = new PayloadGenerator.Url(fileData.Url + @"/index.html");
            //PayloadGenerator.WiFi wifiPayload = new PayloadGenerator.WiFi("MyWiFi-SSID", "MyWiFi-Pass", PayloadGenerator.WiFi.Authentication.WPA);
            QRCodeGenerator.ECCLevel  eccLevel= QRCodeGenerator.ECCLevel.L;
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            //QRCodeData qrCodeData = qrGenerator.CreateQrCode(@fileData.Url+@"\index.html", eccLevel);
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(url.ToString(), eccLevel);
            QRCode qrCode = new QRCode(qrCodeData);
            Bitmap qrCodeBitmap = qrCode.GetGraphic(20, "#000000", "#ffffff");

            ImageSource qrImageSource =ConvertBitmapToBitmapImage(qrCodeBitmap);
            imgQrCode.Source = qrImageSource;
        }
예제 #5
0
        public void MaterialQRCode(long storeId, long detailboxId)
        {
            Wms_stockoutdetail_box detailBox = _client.Queryable <Wms_stockoutdetail_box>()
                                               .First(c => c.DetailBoxId == detailboxId);

            Wms_stockoutdetail detail = _client.Queryable <Wms_stockoutdetail>()
                                        .First(c => c.StockOutDetailId == detailBox.StockOutDetailId);

            Wms_stockout stockout = _client.Queryable <Wms_stockout>()
                                    .First(c => c.StockOutId == detail.StockOutId);

            string dateStr = DateTime.Now.ToString("yyyyMMddhhmmssfff");
            string strQR   = $"{detail.UniqueIndex}@@{detailBox.StockInUniqueIndex}@@{dateStr}@@{detailBox.PlanQty} ";

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(
                strQR, QRCodeGenerator.ECCLevel.Q);
            QRCode qrCode      = new QRCode(qrCodeData);
            Bitmap qrCodeImage = qrCode.GetGraphic(20);

            qrCodeImage.Save(this.Response.Body, ImageFormat.Png);
        }
예제 #6
0
        private void bt_pdf_Click(object sender, EventArgs e)
        {
            MySqlDataAdapter donnee = new MySqlDataAdapter();
            MySqlConnection  conn   = new MySqlConnection(_connectionString);

            conn.Open();
            string          sql = "select * from participant where Email = '" + cb_mail.Text + "'";
            MySqlCommand    cmd = new MySqlCommand(sql, conn);
            MySqlDataReader rdr = cmd.ExecuteReader();

            rdr.Read();
            string          prenom      = rdr.GetString(3);
            string          nom         = rdr.GetString(2);
            string          departement = rdr.GetString(4);
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(cb_mail.Text, QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode      = new QRCode(qrCodeData);
            Bitmap          qrCodeImage = qrCode.GetGraphic(5);
            XImage          qrXimage    = qrCodeImage;
            PdfDocument     document    = new PdfDocument();

            document.Info.Title = prenom + cb_mail.Text;
            PdfPage   page  = document.AddPage();
            XGraphics gfx   = XGraphics.FromPdfPage(page);
            XFont     font  = new XFont("Code 128", 60, XFontStyle.Regular);
            XFont     font2 = new XFont("LEMONMILK-Bold", 60, XFontStyle.Regular);

            gfx.DrawImage(qrXimage, 240, 300);
            gfx.DrawString(nom + " " + prenom, font2, XBrushes.Black,
                           new XRect(0, -350, page.Width, page.Height),
                           XStringFormats.Center);
            gfx.DrawString(departement, font2, XBrushes.Black,
                           new XRect(0, -150, page.Width, page.Height),
                           XStringFormats.Center);
            string filename = prenom + nom + "badge.pdf";

            document.Save(filename);
            Process.Start(filename);
        }
예제 #7
0
        public string Generate(Uri target)
        {
            // https://github.com/guitarrapc/SkiaSharp.QrCode

            using (var generator = new QRCodeGenerator())
            {
                var code = generator.CreateQrCode(target.OriginalString, ECCLevel.Q);

                var info = new SKImageInfo(256, 256);
                using (var surface = SKSurface.Create(info))
                {
                    var canvas = surface.Canvas;
                    canvas.Render(code, info.Width, info.Height);

                    using (var image = surface.Snapshot())
                        using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
                        {
                            return(Convert.ToBase64String(data.ToArray()));
                        }
                }
            }
        }
        protected void btnContactDetails_Click(object sender, EventArgs e)
        {
            string          code        = string.Concat(this.txtType.Text, ";", this.txtContactID.Text, ";", this.txtcontactname.Text, ";", this.txtcontactlastname.Text, this.txtDefaultCurrency.Text, this.txtalternateCurrency.Text, this.txtcontactDOB.Text, this.txtLanguage.Text);
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);

            System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
            imgBarCode.Height = 150;
            imgBarCode.Width  = 150;
            QRCode qrCode = new QRCode(qrCodeData);

            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    byte[] byteImage = ms.ToArray();
                    imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                }
                plBarCode.Controls.Add(imgBarCode);
            }
        }
        protected void btnTrxP2B_Click(object sender, EventArgs e)
        {
            string          code        = string.Concat(this.txtp2bmerchantid.Text, ";", this.txtp2bAmount.Text, ";", this.txtp2bReference.Text, ";", this.ddlp2bCurrency.SelectedValue);
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);

            System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
            imgBarCode.Height = 150;
            imgBarCode.Width  = 150;
            QRCode qrCode = new QRCode(qrCodeData);

            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    byte[] byteImage = ms.ToArray();
                    imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                }
                plBarCode.Controls.Add(imgBarCode);
            }
        }
예제 #10
0
 public async Task <byte[]> GenerarQr(string texto, string colorOscuro, string colorClaro)
 {
     return(await Task.Factory.StartNew(() => {
         QRCodeGenerator qrGenerator = new QRCodeGenerator();
         QRCodeData qrData = qrGenerator.CreateQrCode(
             texto,
             QRCodeGenerator.ECCLevel.M
             );
         QRCode qrCode = new QRCode(qrData);
         Bitmap bitmap = qrCode.GetGraphic(
             pixeles_por_punto,
             DecodificarColor(colorOscuro),
             DecodificarColor(colorClaro),
             true
             );
         using (var ms = new MemoryStream())
         {
             bitmap.Save(ms, ImageFormat.Png);
             return ms.ToArray();
         }
     }));
 }
예제 #11
0
        public ActionResult EventQR(int?id)
        {
            if (id == null)
            {
                return(new StatusCodeResult((int)HttpStatusCode.BadRequest));
            }

            using (MemoryStream ms = new MemoryStream())
            {
                QRCodeGenerator qrGenerator = new QRCodeGenerator();
                string          url         = urlGenerator.generateURL(id.Value, db);
                ViewBag.FeedbackURL = url;
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);
                QRCode     qrCode     = new QRCode(qrCodeData);
                using (Bitmap bitMap = qrCode.GetGraphic(20))
                {
                    bitMap.Save(ms, ImageFormat.Png);
                    ViewBag.QRCodeImage = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray());
                }
            }
            return(View());
        }
예제 #12
0
        public static Dictionary <string, object> MakeQR(string content, string imagePath, string imageName, bool show)
        {
            string filePath;

            if (!Directory.Exists(imagePath))
            {
                try
                {
                    Directory.CreateDirectory(imagePath);
                    filePath = Path.Combine(imagePath, imageName);
                }
                catch { throw new Exception("请检查imagePath是否为合法的路径格式!"); }
            }
            else
            {
                filePath = Path.Combine(imagePath, imageName);
                QRCodeGenerator       qrGenerator = new QRCodeGenerator();
                QRCodeData            qrCodeData  = qrGenerator.CreateQrCode(content, QRCodeGenerator.ECCLevel.Q);
                QRCode                qrCode      = new QRCode(qrCodeData);
                System.Drawing.Bitmap qrCodeImage = qrCode.GetGraphic(20);
                qrCodeImage.Save(filePath);
                qrCodeImage.Dispose();

                if (show)
                {
                    System.Diagnostics.Process process = new System.Diagnostics.Process();
                    process.StartInfo.FileName        = filePath;
                    process.StartInfo.Arguments       = "rundll32.exe C:\\WINDOWS\\system32\\shimgvw.dll,ImageView_Fullscreen";
                    process.StartInfo.UseShellExecute = true;
                    process.StartInfo.WindowStyle     = System.Diagnostics.ProcessWindowStyle.Hidden;
                    process.Start();
                    process.Close();
                }
            }
            return(new Dictionary <string, object>
            {
                { "ImagePath", filePath }
            });
        }
        public async Task <string> GetQrCode([NakedBody] string payload)
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
            SvgQRCode       qrCodePng   = new SvgQRCode(qrCodeData);

            return(qrCodePng.GetGraphic(new System.Drawing.Size(320, 320)));

            /*
             * switch (qrType)
             * {
             *  case QrType.Png:
             *      PngByteQRCode qrCodePng = new PngByteQRCode(qrCodeData);
             *      return qrCodePng.GetGraphic(20);
             *  case QrType.Svg:
             *      SvgQRCode qrCodeSvg = new SvgQRCode(qrCodeData);
             *      return qrCodeSvg.GetGraphic(20);
             *  default:
             *      throw new NotImplementedException();
             * }
             */
        }
예제 #14
0
        public static Bitmap QrLink(TextBox tb_link)
        {
            Bitmap qrCodeImage;

            if (tb_link.TextLength > 0)
            {
                Url    generator = new Url(tb_link.Text);
                String payload   = generator.ToString();

                QRCodeGenerator QR     = new QRCodeGenerator();
                QRCodeData      data   = QR.CreateQrCode(payload, QRCodeGenerator.ECCLevel.H);
                QRCode          qrCode = new QRCode(data);
                qrCodeImage = qrCode.GetGraphic(50);
                return(qrCodeImage);
            }
            else
            {
                MessageBox.Show("Write or Paste an Link.");
                qrCodeImage = null;
                return(qrCodeImage);
            }
        }
 protected void btnGenerate_Click(object sender, EventArgs e)
 {
     string code = this.txtCode.Text;
     QRCodeGenerator qrGenerator = new QRCodeGenerator();
     QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
     System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
     imgBarCode.Height = 150;
     imgBarCode.Width = 150;
     using (Bitmap bitMap = qrCode.GetGraphic(20))
     {
         using (MemoryStream ms = new MemoryStream())
         {
             bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
             byte[] byteImage = ms.ToArray();
             imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
             imgUrl = imgBarCode.ImageUrl;
         }
         plBarCode.Controls.Add(imgBarCode);
         Image1.ImageUrl = imgUrl;
         Image1.Visible = true;
     }
 }
        private void btnGenerate_Click(object sender, RoutedEventArgs e)
        {
            var t = TicketController.getInstance().createTicket();

            TicketController.getInstance().add(t);

            var ticket = TicketController.getInstance().getAll();


            QRCodeGenerator qrCodeGenerator = new QRCodeGenerator();
            QRCodeData      qrCodeData      = qrCodeGenerator.CreateQrCode(ticket.LastOrDefault().Id.ToString(), QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode          = new QRCode(qrCodeData);


            Bitmap qrCodeImage = qrCode.GetGraphic(random(50, 150));

            image.Source = BitmapToImageSource(qrCodeImage);


            MessageBox.Show("Success generate ticket!");
            load();
        }
예제 #17
0
        // GET: Tables

        public async Task <IActionResult> Index()
        {
            if (User.Identity.IsAuthenticated == false)
            {
                return(RedirectToAction("Login", "Identity"));
            }


            using (MemoryStream ms = new MemoryStream())
            {
                QRCodeGenerator qrGenerator = new QRCodeGenerator();
                QRCodeData      qrCodeData  = qrGenerator.CreateQrCode("TEXT", QRCodeGenerator.ECCLevel.Q);
                QRCode          qrCode      = new QRCode(qrCodeData);
                using (Bitmap bitMap = qrCode.GetGraphic(20))
                {
                    bitMap.Save(ms, ImageFormat.Png);
                    var image = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray());
                    ViewBag.Code = image;
                }
            }
            return(View(await _context.Tables.ToListAsync()));
        }
예제 #18
0
        public async Task <string> GetImage(string codeUrl)
        {
            using (var generator = new QRCodeGenerator())
            {
                using (var codeData = generator.CreateQrCode(codeUrl, QRCodeGenerator.ECCLevel.M, true))
                {
                    using (var qrcode = new QRCode(codeData))
                    {
                        var icon = await GetIcon();

                        using (var bitmap = qrcode.GetGraphic(4, Color.Black, Color.White, icon, 15, 2, false))
                        {
                            using (var ms = new MemoryStream())
                            {
                                bitmap.Save(ms, ImageFormat.Jpeg);
                                return("data:image/jpeg;base64," + Convert.ToBase64String(ms.GetBuffer()));
                            }
                        }
                    }
                }
            }
        }
예제 #19
0
        public void SetAuthentication(WebSocketServer webSocketServer)
        {
            var password          = HasToken() ? LoadToken() : CreateToken();
            var connectionPayload = new ConnectionPayload(webSocketServer.IsSecure ? "wss" : "ws", IpUtils.GetLocalIpAddress(), webSocketServer.Port, "user", password);

            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            var             qrCodeData  = qrGenerator.CreateQrCode(JsonConvert.SerializeObject(connectionPayload), QRCodeGenerator.ECCLevel.Q);

            connectionQRCode = new PngByteQRCode(qrCodeData);

            webSocketServer.AuthenticationSchemes = WebSocketSharp.Net.AuthenticationSchemes.Basic;
            webSocketServer.UserCredentialsFinder = (id) =>
            {
#if LOCAL
                return(new WebSocketSharp.Net.NetworkCredential("username", "password"));
#else
                return(id.Name == connectionPayload.AuthenticationUsername ?
                       new WebSocketSharp.Net.NetworkCredential(connectionPayload.AuthenticationUsername, connectionPayload.AuthenticationPassword) :
                       null);
#endif
            };
        }
예제 #20
0
        private void RenderQrCode()
        {
            string level = comboBoxECC.SelectedItem.ToString();

            QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)(level == "L" ? 0 : level == "M" ? 1 : level == "Q" ? 2 : 3);
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            {
                using (QRCodeData qrCodeData = qrGenerator.CreateQrCode(textBoxQRCode.Text, eccLevel))
                {
                    using (QRCode qrCode = new QRCode(qrCodeData))
                    {
                        qrImage = qrCode.GetGraphic(20, Color.Black, Color.White,
                                                    GetIconBitmap(), (int)iconSize.Value);
                        pictureBoxQRCode.BackgroundImage = qrImage;

                        this.pictureBoxQRCode.Size = new System.Drawing.Size(pictureBoxQRCode.Width, pictureBoxQRCode.Height);
                        //Set the SizeMode to center the image.
                        this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.CenterImage;

                        pictureBoxQRCode.SizeMode = PictureBoxSizeMode.StretchImage;
                    }
                }
            }
            text = "";
            string tempText = textBoxQRCode.Text;
            int    counter  = 0;

            foreach (char character in tempText)
            {
                text += character;
                counter++;
                if (counter == 20)
                {
                    text   += Environment.NewLine;
                    counter = 0;
                }
            }
            labelText.Text = text;
        }
예제 #21
0
        private static void LitwoOjczyzno1do40()
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();

            int version = 1;

            for (int i = 1; i < 2955; i++)
            {
                int verCalc = 0;
                try {
                    verCalc = QRCodeGenerator.GetVersion(i, EncodingMode.Byte, ECCLevel.L);
                }
                catch (Exception)
                {
                    verCalc = 41;
                }

                if (version < verCalc)
                {
                    QRCodeData qrCodeData = qrGenerator.CreateQrCode(
                        Litwo.Substring(0, i - 1),
                        QRCodeGenerator.ECCLevel.L,
                        requestedVersion: version);;

                    QRCode qrc = new QRCode(qrCodeData);

                    int px = 370 / (21 + (4 * version));

                    Console.WriteLine(version + "  ,  " + (i - 1));

                    var b = qrc.GetGraphic(px, new ColorProviders.ColorProviderBW());
                    b.Save(String.Format("litwo{0:00}.png", version));


                    version++;
                }
            }
        }
예제 #22
0
        private static void DataWordAnim()
        {
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            int             frame       = 240;

            while (true)
            {
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(
                    "👨‍🏭",
                    QRCodeGenerator.ECCLevel.H,
                    true,
                    //requestedVersion: 2,
                    forcedpattern: -1,
                    maxBits: frame,
                    doMasking: true
                    );


                QRCode qrc = new QRCode(qrCodeData);

                var b = qrc.GetGraphic(
                    20,
                    //new ColorProviders.ColorProviderRysowankiAnim()
                    //new ColorProviderBW()
                    new ColorProviders.ColorProviderDebug2()
                    , drawQuietZones: true
                    );
                b.Save(String.Format("anim_x{0:000}.png", frame));


                if (frame++ > 240)
                //if (frame++ > qrCodeData.DataWordsLen)
                {
                    Console.WriteLine(frame);
                    break;
                }
            }
        }
예제 #23
0
        public static void QRGenerator(string MandateID, string EntityId, string AppId, string Ref1)
        {
            //   CommonManger CommonManger = new CommonManger();
            string          code        = MandateID + "_" + Ref1;
            QRCodeGenerator qrGenerator = new QRCodeGenerator();

            QRCodeGenerator.QRCode          qrCode     = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.H);
            System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
            imgBarCode.Height = 250;
            imgBarCode.Width  = 250;
            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    byte[] byteImage = ms.ToArray();
                    imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                    string result = Convert.ToBase64String(byteImage, 0, byteImage.Length);
                    string check  = CreateImage(result.ToString(), MandateID, AppId);
                    if (check != "")
                    {
                        //    DataSet ds = CommonManger.FillDatasetWithParam("Sp_Mandate", "@QueryType", "@EntityId", "@MandateId", "@QRCodeImagepath", "QRCodeImagepath", EntityId, MandateID, check);
                        SqlConnection con   = new SqlConnection(ConfigurationManager.ConnectionStrings[Convert.ToString(AppId)].ConnectionString);
                        string        query = "Sp_Mandate";
                        SqlCommand    cmd   = new SqlCommand(query, con);
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@QueryType", "QRCodeImagepath");
                        cmd.Parameters.AddWithValue("@EntityId", EntityId);
                        cmd.Parameters.AddWithValue("@MandateId", MandateID);
                        cmd.Parameters.AddWithValue("@QRCodeImagepath", check);
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        DataTable      dt = new DataTable();
                        da.Fill(dt);
                    }
                }
                //plQRCode.Controls.Add(imgBarCode);
            }
        }
예제 #24
0
        /// <summary>
        /// 创建二维码返回文件路径名称
        /// </summary>
        /// <param name="plainText">二维码内容</param>
        public static string CreateQRCodeToFile(string plainText)
        {
            try
            {
                string fileName = "";
                if (String.IsNullOrEmpty(plainText))
                {
                    return("");
                }

                //二维码文件目录
                string filePath = System.Web.HttpContext.Current.Server.MapPath("~/") + "QRCoder\\";

                if (!Directory.Exists(filePath))
                {
                    Directory.CreateDirectory(filePath);
                }
                string name = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(100, 1000) + ".jpeg";
                //创建二维码文件路径名称
                fileName = filePath + name;

                QRCodeGenerator qrGenerator = new QRCodeGenerator();
                //QRCodeGenerator.ECCLevel:纠错能力,Q级:约可纠错25%的数据码字
                QRCodeData qrCodeData  = qrGenerator.CreateQrCode(plainText, QRCodeGenerator.ECCLevel.Q);
                QRCode     qrcode      = new QRCode(qrCodeData);
                Bitmap     qrCodeImage = qrcode.GetGraphic(15);
                qrCodeImage.Save(fileName, ImageFormat.Jpeg);

                //生成 http绝对路径
                string relativeUrl = ConfigurationManager.AppSettings["ImageQRCode"].ToString();
                string httpPath    = relativeUrl + name;
                return(httpPath);
            }
            catch (Exception ex)
            {
                throw new Exception("创建二维码返回文件路径名称方法异常", ex);
            }
        }
예제 #25
0
        /// <summary>
        /// Generate a QR Barcode with the server information
        /// </summary>
        private void GenerateBarcode(User auth)
        {
            try
            {
                ServerDescription desc = new ServerDescription();
                desc.HardwareAddresses = String.Join(";", GetHardwareAddresses());
                desc.Addresses         = String.Join(";", GetIPAddresses());
                desc.Name      = GetServiceName();
                desc.QRVersion = 1;

                desc.Services = new List <ServiceDescription>();
                foreach (var srv in Installation.GetInstalledServices())
                {
                    var srvdesc = new ServiceDescription()
                    {
                        Name = srv.ServiceName.ToString(),
                        Port = srv.Port
                    };

                    if (auth != null)
                    {
                        string usernameOut, passwordOut;
                        srv.GetUsernameAndPassword(auth, out usernameOut, out passwordOut);
                        srvdesc.User     = usernameOut;
                        srvdesc.Password = passwordOut;
                    }

                    desc.Services.Add(srvdesc);
                }

                Bitmap bm = QRCodeGenerator.Generate(desc.ToJSON());
                imgQRCode.Source = bm.ToWpfBitmap();
            }
            catch (Exception ex)
            {
                Log.Error("Error generating barcode", ex);
            }
        }
예제 #26
0
        private async Task GnerateQrCode()
        {
            PicBoxQRCode.SuspendLayout();
            Image qrCodeImg = null;

            await Task.Run(() =>
            {
                var qrCodeGenerator   = new QRCodeGenerator();
                string enValue        = _activeSettings.QR_CodeLevel.ToString();
                var ecc               = (QRCodeGenerator.ECCLevel)Enum.Parse(typeof(QRCodeGenerator.ECCLevel), enValue);
                string encoderContent = CreateWifimetadataFormatString(txtSSId.Text, rdWPA.Checked, txtGeneratedPassword.Text, rdSSIDVisibleFalse.Checked);
                var qrCode            = qrCodeGenerator.CreateQrCode(encoderContent, ecc);
                int moduleCount       = qrCode.ModuleMatrix.Count;

                int optimalPixelsPerMatrixModule = moduleCount;
                if (_qrOutputSize == null)
                {
                    _qrOutputSize = new Size(_activeSettings.ImageWidth, _activeSettings.ImageWidth);
                }
                else if (_qrOutputSize.Width < _activeSettings.ImageWidth || _qrOutputSize.Height < _activeSettings.ImageWidth)
                {
                    _qrOutputSize = new Size(_activeSettings.ImageWidth, _activeSettings.ImageWidth);
                }

                double pixelsDelta           = _qrOutputSize.Width;
                optimalPixelsPerMatrixModule = Convert.ToInt32(Math.Ceiling(pixelsDelta / Convert.ToDouble(moduleCount)));


                qrCodeImg = qrCode.CreateBitmap(optimalPixelsPerMatrixModule);
            });


            PicBoxQRCode.Image = qrCodeImg;
            PicBoxQRCode.ResumeLayout();
            PicBoxQRCode.Refresh();
            PicBoxQRCode.BorderStyle = BorderStyle.FixedSingle;
            PicBoxQRCode.SizeMode    = PictureBoxSizeMode.Zoom;
        }
예제 #27
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (Request.QueryString.Count > 0)
     {
         string title = Request.QueryString["title"] ?? "";
         string sn    = Request.QueryString["sn"] ?? "";
         string pId   = Request.QueryString["pId"] ?? "";
         string lId   = Request.QueryString["lId"] ?? "";
         if (pId.Length > 0)
         {
             Page.Title              = title;
             Page.MetaDescription    = title;
             promotionImage.ImageUrl = "FileServer/EddystonePromotion/" + pId + ".png";
         }
         if (pId.Length > 0 && lId.Length > 0)
         {
             QRCodeGenerator qrGenerator = new QRCodeGenerator();
             var             text        = lId + "-" + pId + "-" + Guid.NewGuid().ToString().Replace("-", "");
             QRCodeData      qrCodeData  = qrGenerator.CreateQrCode(text, QRCodeGenerator.ECCLevel.Q);
             QRCode          qrCode      = new QRCode(qrCodeData);
             Bitmap          qrCodeImage = qrCode.GetGraphic(20);
             System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
             imgBarCode.Height   = 180;
             imgBarCode.Width    = 180;
             imgBarCode.CssClass = "image2";
             using (Bitmap bitMap = qrCode.GetGraphic(20))
             {
                 using (MemoryStream ms = new MemoryStream())
                 {
                     bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                     byte[] byteImage = ms.ToArray();
                     imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                 }
                 plBarCode.Controls.Add(imgBarCode);
             }
         }
     }
 }
예제 #28
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["tourist_id"] == null && Session["tourguide_id"] == null)
            {
                Response.Redirect("Login.aspx");
            }

            else
            {
                try
                {
                    Label1.Text = Session["tourist_id"].ToString();
                }
                catch (NullReferenceException)
                {
                    Label1.Text = Session["tourguide_id"].ToString();
                }
            }

            string          ticketCode  = Request.QueryString["Code"];
            string          code        = "touristhelp20200208080154.azurewebsites.net/TicketClaim.aspx?Code=" + ticketCode;
            QRCodeGenerator qrGenerator = new QRCodeGenerator();

            QRCodeGenerator.QRCode          qrCode     = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.Q);
            System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
            imgBarCode.Height = 150;
            imgBarCode.Width  = 150;
            using (Bitmap bitMap = qrCode.GetGraphic(20))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                    byte[] byteImage = ms.ToArray();
                    imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
                }
                PlaceHolder1.Controls.Add(imgBarCode);
            }
        }
예제 #29
0
        private void CreateBody(int participantId, Camp regCamp, RegistrationType regType)
        {
            pageBody  = "<p><b>" + txtCharacterName.Text + "</b>,</p>";
            pageBody += "<p>Thank you for registering to attend <b>Ragnarok XXXIV</b>";
            if (regType.IsMerchant)
            {
                pageBody += " as a merchant";
            }
            pageBody += "!</p>";

            if (regCamp.Id != 0)
            {
                pageBody += "<p>You are marked down as an attendee staying in <b>" + regCamp.CampName + "</b>. If your camp changes, please contact ";
                pageBody += "<a href=\"mailto:[email protected]\">[email protected]</a> to change your camp, or you can change it ";
                pageBody += "when you arrive at Ragnarok.</p>";
            }
            else
            {
                pageBody += "<p>You are marked down as not having a camp selected yet. If you choose a camp, please contact ";
                pageBody += "<a href=\"mailto:[email protected]\">[email protected]</a> to select your camp, or you can select your ";
                pageBody += "camp when you arrive at Ragnarok.</p>";
            }

            pageBody += "<p>Your selected arrival date is <b>" + regType.ArrivalDate.ToString("MM/dd/yyyy") + "</b>.</p>";

            QRCodeGenerator  qrGenerator = new QRCodeGenerator();
            QRCodeData       qrCodeData  = qrGenerator.CreateQrCode("http://dagorhirragnarok.com/CheckIn.aspx?pid=" + participantId, QRCodeGenerator.ECCLevel.Q);
            BitmapByteQRCode qrCode      = new BitmapByteQRCode(qrCodeData);

            qrCodeBytes = qrCode.GetGraphic(20);

            string imgSource = "data:image/png;base64," + Convert.ToBase64String(qrCodeBytes, Base64FormattingOptions.None);

            pageBody += "<p>For expedited check-in at Troll when you arrive at Ragnarok, please present this QR Code to the Troll staff:</p>";
            pageBody += "<center><p><img style=\"height: 300px; width: 300px;\" src=\"" + imgSource + "\" /></p></center>";
            pageBody += "<p>We look forward to seeing you at Ragnarok!</p>";
            pageBody += "<p>----------------------------------------------<br />Troll</p>";
        }
        public void OnShowQRCode(object sender, DynamicMenuEventArgs e)
        {
            var key = e.Tag as string;

            if (key == null)
            {
                return;
            }

            var pe = host.MainWindow.GetSelectedEntry(true);

            if (pe == null)
            {
                return;
            }

            var context = new SprContext(pe, host.Database, SprCompileFlags.All);
            var value   = SprEngine.Compile(pe.Strings.GetSafe(key).ReadString(), context);

            try
            {
                var data = new QRCodeGenerator().CreateQrCode(value, QRCodeGenerator.ECCLevel.L);
                if (data != null)
                {
                    var form = new ShowQRCodeForm(
                        host,
                        data.GetBitmap(10, Color.Black, Color.White),
                        SprEngine.Compile(pe.Strings.GetSafe(PwDefs.TitleField).ReadString(), context),
                        TryTranslateKey(key)
                        );
                    form.ShowDialog();
                }
            }
            catch
            {
                MessageBox.Show("The data can't be displayed as a QR Code.");
            }
        }
예제 #31
0
        public IActionResult Post(string postId)
        {
            var instanceMain = _repos.GetSingleDataById(postId);
            var instanceSend = new PostViewModel()
            {
                ID                      = instanceMain.ID,
                ContentHtml             = instanceMain.ContentHtml,
                ContentInBrief          = instanceMain.ContentInBrief,
                Title                   = instanceMain.Title,
                PostPictureName         = instanceMain.PostPictureName,
                LastModifiedDateAndTime = instanceMain.LastModifiedDateAndTime
            };

            instanceSend.Barcode = GetPostBrcode();
            return(View(instanceSend));

            Byte[] GetPostBrcode()
            {
                QRCodeGenerator qrGenerator = new QRCodeGenerator();

                ViewData["Url"] = Microsoft.AspNetCore.Http.Extensions.UriHelper.GetDisplayUrl(Request);
                QRCodeData qrCodeData = qrGenerator.CreateQrCode(ViewData["Url"].ToString(),
                                                                 QRCodeGenerator.ECCLevel.Q);
                QRCode qrCode      = new QRCode(qrCodeData);
                Bitmap qrCodeImage = qrCode.GetGraphic(20);

                return(GetImageBytesByBitmap(qrCodeImage));

                Byte[] GetImageBytesByBitmap(Bitmap img)
                {
                    using (MemoryStream stream = new MemoryStream())
                    {
                        img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                        return(stream.ToArray());
                    }
                }
            }
        }
예제 #32
0
        public ContactDetail(Person paPerson, string paDepartment, string paRoom)
        {
            InitializeComponent();
            LFirstName.Content  = paPerson.FirstName;
            LLastName.Content   = paPerson.LastName;
            LPhone.Content      = paPerson.Phone;
            LEmail.Content      = paPerson.Email;
            LDepartment.Content = paDepartment;
            LRoom.Content       = paRoom;

            PayloadGenerator.ContactData generator = new PayloadGenerator.ContactData(PayloadGenerator.ContactData.ContactOutputType.VCard3,
                                                                                      paPerson.FirstName, paPerson.LastName, null, paPerson.Phone, null, null, paPerson.Email);
            string payload = generator.ToString();


            QRCodeGenerator qrGenerator    = new QRCodeGenerator();
            QRCodeData      qrCodeData     = qrGenerator.CreateQrCode(payload, QRCodeGenerator.ECCLevel.Q);
            QRCode          qrCode         = new QRCode(qrCodeData);
            var             qrCodeAsBitmap = qrCode.GetGraphic(20);

            using (var memory = new MemoryStream())
            {
                qrCodeAsBitmap.Save(memory, ImageFormat.Png);
                memory.Position = 0;

                var bitmapImage = new BitmapImage();
                bitmapImage.BeginInit();
                bitmapImage.StreamSource = memory;
                bitmapImage.CacheOption  = BitmapCacheOption.OnLoad;
                bitmapImage.EndInit();
                bitmapImage.Freeze();

                ImageQR.Source = bitmapImage;
            }

            ImageQR.Stretch = Stretch.Uniform;
            //ImageQR.Source = retval;
        }
예제 #33
0
        public static async Task <HtmlBackup> FromAuthenticatorList(Context context, List <Authenticator> authenticators)
        {
            var template = await GetTemplate(context);

            var itemsHtml = new StringBuilder();
            var generator = new QRCodeGenerator();

            async Task <string> GetQrCodeDataAsync(string url)
            {
                return(await Task.Run(() =>
                {
                    var qrCodeData = generator.CreateQrCode(url, QRCodeGenerator.ECCLevel.Q);
                    var qrCode = new PngByteQRCode(qrCodeData);

                    var bytes = qrCode.GetGraphic(PixelsPerModule);
                    return Convert.ToBase64String(bytes);
                }));
            }

            foreach (var auth in authenticators)
            {
                var url    = auth.GetOtpAuthUrl();
                var qrCode = await GetQrCodeDataAsync(url);

                itemsHtml.Append($@"
                    <tr>
                        <td>{auth.Issuer}</td>
                        <td>{auth.Username}</td>
                        <td><code>{url}</code></td>
                        <td><img src=""data:image/png;base64,{qrCode}""></td>
                    </tr>
                ");
            }

            var contents = template.Replace("%ITEMS", itemsHtml.ToString());

            return(new HtmlBackup(contents));
        }
예제 #34
0
        private static void Generate(int i, AsymmetricKeyParameter privKey, AsymmetricKeyParameter pubKey)
        {
            (var voucherOtc, var voucherPassword) = GenerateVouchers(privKey, pubKey);

            var qrGenerator = new QRCodeGenerator();

            using (var outDoc = new PdfDocument()) {
                outDoc.Info.Title = "WOM vouchers";

                var outPage = outDoc.AddPage();
                using (var gfx = XGraphics.FromPdfPage(outPage)) {
                    var xfont = new XFont("Open Sans", 30, XFontStyle.Bold, XPdfFontOptions.UnicodeDefault);
                    gfx.DrawString($"Vouchers {i}", xfont, XBrushes.Black,
                                   new XRect(0, 0, outPage.Width, outPage.Height * 0.1),
                                   XStringFormats.Center);
                    gfx.DrawString(voucherPassword, xfont, XBrushes.Black,
                                   new XRect(0, outPage.Height * 0.75, outPage.Width, outPage.Height * 0.25),
                                   XStringFormats.Center);

                    var payloadGenerator = new PayloadGenerator.Url(string.Format("https://wom.social/vouchers/{0:D}", voucherOtc));
                    var qrData           = qrGenerator.CreateQrCode(payloadGenerator);
                    using (var pngData = new PngByteQRCode(qrData)) {
                        var pngBytes = pngData.GetGraphic(20);
                        using (var pngByteStream = new MemoryStream(pngBytes)) {
                            using (var qrImage = XImage.FromStream(pngByteStream)) {
                                var w         = outPage.Width * 0.8;
                                var h         = outPage.Height * 0.6;
                                var finalSize = (w <= h) ? w : h;

                                gfx.DrawImage(qrImage, (outPage.Width - finalSize) / 2f, outPage.Height * 0.2, finalSize, finalSize);
                            }
                        }
                    }

                    outDoc.Save($"output-{i}.pdf");
                }
            }
        }
예제 #35
0
        /// <summary>
        /// Generate a setup code for a Google Authenticator user to scan
        /// </summary>
        /// <param name="issuer">Issuer ID (the name of the system, i.e. 'MyApp'), can be omitted but not recommended https://github.com/google/google-authenticator/wiki/Key-Uri-Format </param>
        /// <param name="accountTitleNoSpaces">Account Title (no spaces)</param>
        /// <param name="accountSecretKey">Account Secret Key as byte[]</param>
        /// <param name="QRPixelsPerModule">Number of pixels per QR Module (2 = ~120x120px QRCode)</param>
        /// <returns>SetupCode object</returns>
        public SetupCode GenerateSetupCode(string issuer, string accountTitleNoSpaces, byte[] accountSecretKey, int QRPixelsPerModule, bool generateQrCode = true)
        {
            accountTitleNoSpaces = RemoveWhitespace(Uri.EscapeUriString(accountTitleNoSpaces));
            string encodedSecretKey = Base32Encoding.ToString(accountSecretKey);
            string provisionUrl;

            if (String.IsNullOrWhiteSpace(issuer))
            {
                provisionUrl = String.Format("otpauth://totp/{0}?secret={1}", accountTitleNoSpaces, encodedSecretKey.Trim('='));
            }
            else
            {
                //  https://github.com/google/google-authenticator/wiki/Conflicting-Accounts
                // Added additional prefix to account otpauth://totp/Company:[email protected] for backwards compatibility
                provisionUrl = String.Format("otpauth://totp/{2}:{0}?secret={1}&issuer={2}", accountTitleNoSpaces, encodedSecretKey.Trim('='), UrlEncode(issuer));
            }

            string qrCodeUrl = string.Empty;

            if (generateQrCode)
            {
                using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
                    using (QRCodeData qrCodeData = qrGenerator.CreateQrCode(provisionUrl, QRCodeGenerator.ECCLevel.Q))
                        using (QRCode qrCode = new QRCode(qrCodeData))
                            using (Bitmap qrCodeImage = qrCode.GetGraphic(QRPixelsPerModule))
                                using (MemoryStream ms = new MemoryStream())
                                {
                                    qrCodeImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);

                                    qrCodeUrl = String.Format("data:image/png;base64,{0}", Convert.ToBase64String(ms.ToArray()));
                                }
            }

            return(new SetupCode(accountTitleNoSpaces, encodedSecretKey.Trim('='), qrCodeUrl)
            {
                ProvisionUrl = provisionUrl
            });
        }
예제 #36
0
 private static Bitmap CreateQrBitmap(string content)
 {
     QRCodeGenerator.ECCLevel eccLevel = QRCodeGenerator.ECCLevel.Q;
     QRCodeGenerator qrGenerator = new QRCodeGenerator();
     QRCodeData qrCodeData = qrGenerator.CreateQrCode(content, eccLevel);
     QRCode qrCode = new QRCode(qrCodeData);
     Bitmap bitmap = qrCode.GetGraphic(20);
     return bitmap;
 }
예제 #37
0
파일: Program.cs 프로젝트: yurikus/QRCoder
 private static void GenerateQRCode(string payloadString, QRCodeGenerator.ECCLevel eccLevel, string outputFileName, ImageFormat imgFormat)
 {
     using (var generator = new QRCodeGenerator())
     {
         using (var data = generator.CreateQrCode(payloadString, eccLevel))
         {
             using (var code = new QRCode(data))
             {
                 using (var bitmap = code.GetGraphic(20))
                 {
                     bitmap.Save(outputFileName, imgFormat);
                 }
             }
         }
     }
 }
예제 #38
0
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("No source file location parameter provided.");
            }
            else
            {
                try
                {
                    string sourceFile = args[0];
                    Console.WriteLine("Source file: " + args[0]);

                    TextFieldParser parser = new TextFieldParser(sourceFile);
                    parser.HasFieldsEnclosedInQuotes = true;
                    parser.SetDelimiters(",");

                    // Get headers
                    string[] headerArray = parser.ReadFields();

                    // Get contents
                    List<string[]> rowList = new List<string[]>();
                    while (!parser.EndOfData)
                    {
                        rowList.Add(parser.ReadFields());
                    }

                    Parallel.ForEach(rowList, (row) =>
                    {
                        try
                        {
                            string line = "";

                            for (int i = 0; i < row.Length; i++)
                            {
                                line += String.Format("{0}: {1}\n", headerArray[i], row[i]).ToUpper();
                            }

                            Console.Write(line);

                            // Create identifier
                            string identifier = String.Format("{0}, {1} {2}", row[2], row[0], row[1]).ToUpper().Replace("N/A", String.Empty);

                            // Generate qr code image
                            QRCodeGenerator qrGenerator = new QRCodeGenerator();
                            QRCodeData qrCodeData = qrGenerator.CreateQrCode(line, QRCodeGenerator.ECCLevel.Q);
                            QRCode qrCode = new QRCode(qrCodeData);
                            Bitmap qrCodeImage = qrCode.GetGraphic(20);

                            Directory.CreateDirectory("output");

                            // Save image to file
                            qrCodeImage.Save(String.Format("output\\{0}.jpg", identifier));
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }      
                    });
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }                           
            }

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
예제 #39
0
        private void renderQRCode()
        {
            string level = comboBox1.SelectedItem.ToString();
            QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)(level == "L" ? 0 : level == "M" ? 1 : level == "Q" ? 2 : 3);
            QRCodeGenerator qrGenerator = new QRCodeGenerator();
            QRCodeData qrCodeData = qrGenerator.CreateQrCode(textBoxQRCode.Text, eccLevel);
            QRCode qrCode = new QRCode(qrCodeData);

            pictureBoxQRCode.BackgroundImage = qrCode.GetGraphic(20, Color.Black, Color.White, getIconBitmap());

            //Image card = qrCode.GetGraphic(20, Color.Black, Color.White, getIconBitmap());

            //using (FileStream fs = new FileStream(@"D:\图片\58.png", FileMode.OpenOrCreate, FileAccess.Write))
            //{
            //    card.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg);
            //    fs.Close();
            //}
        }
예제 #40
0
        private void MontaPagina(Document document, TNFe nfe, TProtNFe protocolo, string cscId, string cscToken, bool mostrarDetalhesVenda, string via = "")
        {
            var page = document.AddSection();

            // 2.3.1 Divisão I - Informações do Cabeçalho
            var table = page.AddTable();
            table.Rows.LeftIndent = 0;

            // Before you can add a row, you must define the columns
            var column = table.AddColumn("4cm");
            column.Format.Alignment = ParagraphAlignment.Center;

            column = table.AddColumn("6cm");
            //column.Format.Alignment = ParagraphAlignment.Left;

            column = table.AddColumn("6cm");
            //column.Format.Alignment = ParagraphAlignment.Left;

            // Logo NFC-e (opcional)
            // Logo do Contribuinte (opcional)
            var row = table.AddRow();
            row.Cells[0].MergeDown = 2;
            var file = @"..\..\..\NFCerta.NFe\Resources\logo.jpg";
            var image = row.Cells[0].AddImage(file);
            image.Height = "1.3cm";

            // Razão social do Emitente
            row.Cells[1].AddParagraph(nfe.infNFe.emit.xNome);

            // Inscrição Municipal do Emitente (se houver)
            if (nfe.infNFe.emit.IM.HasValue())
            {
                row.Cells[2].AddParagraph("Inscrição Municipal - " + nfe.infNFe.emit.IM);
            }

            row = table.AddRow();

            // CNPJ do Emitente
            row.Cells[1].AddParagraph("CNPJ - " + nfe.infNFe.emit.Item);

            // Inscrição Estadual do Emitente
            row.Cells[2].AddParagraph("Inscrição Estadual - " + nfe.infNFe.emit.IE);

            row = table.AddRow();

            // Endereço Completo do Emitente 
            // Endereço Completo (Logradouro, n, bairro, municipio, sigla, uf)
            row.Cells[1].AddParagraph(nfe.infNFe.emit.enderEmit.xLgr + ", "
                                    + nfe.infNFe.emit.enderEmit.nro + ", "
                                    + nfe.infNFe.emit.enderEmit.xBairro + ", "
                                    + nfe.infNFe.emit.enderEmit.xMun + ", "
                                    + nfe.infNFe.emit.enderEmit.UF.ToString());
            row.Cells[1].MergeRight = 1;

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.2 Divisão II – Informações Fixas do DANFE NFC-e
            table = page.AddTable();
            table.Rows.LeftIndent = 0;

            column = table.AddColumn("16cm");
            column.Format.Alignment = ParagraphAlignment.Center;

            row = table.AddRow();
            row.Cells[0].AddParagraph("DANFE NFC-e - Documento Auxiliar de Nota Fiscal de Consumidor Eletrônica");

            row = table.AddRow();
            row.Cells[0].AddParagraph("Não permite aproveitamento de crédito de ICMS");

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.3 Divisão III – Informações de Detalhe da Venda
            if (mostrarDetalhesVenda || nfe.infNFe.ide.tpEmis == TipoEmissaoNFe.ContingenciaOffline)
            {
                table = page.AddTable();
                table.Rows.LeftIndent = 0;

                table.AddColumn("2cm");
                table.AddColumn("3cm");
                table.AddColumn("3cm");
                table.AddColumn("2cm");
                table.AddColumn("3cm");
                table.AddColumn("3cm");

                row = table.AddRow();
                row.HeadingFormat = true;
                row.Cells[0].AddParagraph("Código");
                row.Cells[1].AddParagraph("Descrição");
                row.Cells[2].AddParagraph("Qtde");
                row.Cells[3].AddParagraph("Un");
                row.Cells[4].AddParagraph("Valor unit.");
                row.Cells[5].AddParagraph("Valor total");

                foreach (var det in nfe.infNFe.det)
                {
                    row = table.AddRow();
                    row.Cells[0].AddParagraph(det.prod.cProd);
                    row.Cells[1].AddParagraph(det.prod.xProd);
                    row.Cells[2].AddParagraph(det.prod.qCom);
                    row.Cells[3].AddParagraph(det.prod.uCom);
                    row.Cells[4].AddParagraph(det.prod.vUnCom);
                    row.Cells[5].AddParagraph(det.prod.vProd);
                }

                table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);
            }

            // 2.3.4 Divisão IV – Informações de Total do DANFE NFC-e
            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            table.AddColumn("8cm");
            column = table.AddColumn("8cm");
            column.Format.Alignment = ParagraphAlignment.Right;

            // QTD. TOTAL DE ITENS = somatório da quantidade de itens; 
            var qtdTotal = nfe.infNFe.det.Sum(det => float.Parse(det.prod.qCom));
            row = table.AddRow();
            row.Cells[0].AddParagraph("QTD. TOTAL DE ITENS");
            row.Cells[1].AddParagraph(qtdTotal.ToString("0.####"));

            // ACRESCIMO
            row = table.AddRow();
            row.Cells[0].AddParagraph("ACRESCIMO");
            row.Cells[1].AddParagraph(nfe.infNFe.total.ICMSTot.vOutro);

            // VALOR TOTAL = somatório dos valores totais dos itens somados os acréscimos e subtraído dos descontos
            row = table.AddRow();
            row.Cells[0].AddParagraph("VALOR TOTAL R$");
            row.Cells[1].AddParagraph(nfe.infNFe.total.ICMSTot.vNF);

            row = table.AddRow();
            row.Cells[0].AddParagraph("FORMA DE PAGAMENTO");
            // VALOR PAGO = valor pago efetivamente na forma de pagamento identificada imediatamente acima
            row.Cells[1].AddParagraph("Valor Pago");

            // FORMA PAGAMENTO = forma na qual o pagamento da NFC-e foi efetuado (podem ocorrer mais de uma forma de pagamento, devendo neste caso ser indicado o montante parcial do pagamento para a respectiva forma. Exemplo: em dinheiro, em cheque, etc
            nfe.infNFe.pag.ForEach(pag =>
            {
                row = table.AddRow();
                row.Cells[0].AddParagraph(pag.tPag.ToString());
                row.Cells[1].AddParagraph(pag.vPag);
            });

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.5 Divisão V – Informações dos Tributos no DANFE NFC-e 
            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            table.AddColumn("8cm");
            column = table.AddColumn("8cm");
            column.Format.Alignment = ParagraphAlignment.Right;
            row = table.AddRow();
            row.Cells[0].AddParagraph("Informação dos TributosTotais Incedentais (Lei Federal 12.741/2012)");
            // Soma de todos os tributos incidentes na operação/prestação, contemplando toda a cadeia de fornecimento
            row.Cells[1].AddParagraph(nfe.infNFe.total.ICMSTot.vTotTrib ?? "0.00");

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.6 Divisão Va – Mensagem de Interesse do Contribuinte
            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            column = table.AddColumn("16cm");
            column.Format.Alignment = ParagraphAlignment.Center;
            row = table.AddRow();
            row.Cells[0].AddParagraph(nfe.infNFe.infAdic.infCpl);

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.7 Divisão VI – Mensagem Fiscal e Informações da Consulta via Chave de Acesso
            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            column = table.AddColumn("16cm");
            column.Format.Alignment = ParagraphAlignment.Center;

            // Área de Mensagem Fiscal. Quando for o caso deve ser incluídas as seguintes mensagens: “EMITIDA EM CONTINGÊNCIA”, “EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO – SEM VALOR FISCAL”)
            if (nfe.infNFe.ide.tpEmis == TipoEmissaoNFe.ContingenciaOffline)
            {
                row = table.AddRow();
                row.Cells[0].AddParagraph("EMITIDA EM CONTINGÊNCIA");
            }

            if (nfe.infNFe.ide.tpAmb == AmbienteSefaz.Homologacao)
            {
                row = table.AddRow();
                row.Cells[0].AddParagraph("EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO – SEM VALOR FISCAL");
            }

            // Número da NFC-e
            // Série da NFC-e
            // Data e Hora de Emissão da NFC-e (observação: a data de emissão apesar de constar no arquivo XML da NFC-  NFC-e sempre convertida para o horário local)
            var dataEmissaoLocal = nfe.infNFe.ide.dhEmi.FromSefazTime().InZone(nfe.infNFe.emit.enderEmit.UF).ToString("dd/MM/yyyy HH:mm:ss");
            row = table.AddRow();
            var text = "Número {0} Série {1} Emissão {2}".F(nfe.infNFe.ide.nNF, nfe.infNFe.ide.serie, dataEmissaoLocal);
            row.Cells[0].AddParagraph(text + via);
            row = table.AddRow();

            // O texto “Consulte pela Chave de Acesso em” seguido do endereço eletrônico para consulta pública da NFC-e no Portal da Secretaria da Fazenda do Estado do contribuinte
            row.Cells[0].AddParagraph("Consulte pela Chave de Acesso em " + ListaUrl.BuscaUrls(nfe.infNFe.ide.cUF, nfe.infNFe.ide.tpAmb).UrlNfceConsultaChaveAcesso);
            row = table.AddRow();

            // O texto “CHAVE DE ACESSO”, em caixa alta
            row.Cells[0].AddParagraph("CHAVE DE ACESSO");
            row = table.AddRow();

            // A chave de acesso impressa em 11 blocos de quatro dígitos, com um espaço entre cada bloco
            row.Cells[0].AddParagraph(protocolo.infProt.chNFe.SplitChunks(4).JoinString(" "));

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.8 Divisão VII – Informações sobre o Consumidor
            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            column = table.AddColumn("16cm");
            column.Format.Alignment = ParagraphAlignment.Center;
            row = table.AddRow();
            row.Cells[0].AddParagraph("CONSUMIDOR");

            if (nfe.infNFe.dest != null)
            {
                var doc = "";

                if (nfe.infNFe.dest.TipoDocumento == TipoDocumento.CNPJ)
                {
                    doc = "CNPJ: ";
                }

                if (nfe.infNFe.dest.TipoDocumento == TipoDocumento.CNPJ)
                {
                    doc = "CPF: ";
                }

                if (nfe.infNFe.dest.TipoDocumento == TipoDocumento.CNPJ)
                {
                    doc = "Id. Estrangeiro: ";
                }

                doc += nfe.infNFe.dest.Item;

                // Nome opcional
                row = table.AddRow();
                row.Cells[0].AddParagraph(doc + " " + nfe.infNFe.dest.xNome);
                row = table.AddRow();

                // Endereco opcional
                row.Cells[0].AddParagraph(nfe.infNFe.emit.enderEmit.xLgr + ", "
                            + nfe.infNFe.emit.enderEmit.nro + ", "
                            + nfe.infNFe.emit.enderEmit.xBairro + ", "
                            + nfe.infNFe.emit.enderEmit.xMun);
            }
            else
            {
                // Na hipótese do não preenchimento das informações de identificação do consumidor na NFCe, deverá ser impressa na área reservada apenas a mensagem “CONSUMIDOR NÃO IDENTIFICADO”.
                row = table.AddRow();
                row.Cells[0].AddParagraph("CONSUMIDOR NÃO IDENTIFICADO");
            }

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // 2.3.9 Divisão VIII – Informações da Consulta via QR Code 
            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            column = table.AddColumn("16cm");
            column.Format.Alignment = ParagraphAlignment.Center;
            row = table.AddRow();

            // O texto “Consulta via leitor de QR Code”
            row.Cells[0].AddParagraph("Consulta via leitor de QR Code");
            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);


            // A imagem do QR Code em tamanho mínimo 25 mm x 25 mm
            var url = nfe.GeraQrCode(cscId, cscToken);
            // "http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode?chNFe=99999999999999999999999999999999999999999999&nVersao=&tpAmp=2&cDest=&dhEmi=323031342D31322D32365430313A31383A33342D30323A3030&vNF=8904.50&vICMS=0.00&digVal=370032007100510061002B0062003000740061006F0051004F003900660041004A007700660064006C005800750071005100760038003D00&cIdToken=cscId&cHashQRCode=1975033D50D8B701C99A2E201E8ED85A75B0D4F4"
            var qrGenerator = new QRCodeGenerator();

            var bitmap = qrGenerator.CreateQrCode(url, QRCodeGenerator.ECCLevel.L).GetGraphic(1);

            var qrFile = new DisposableFile();
            Disposables.Add(qrFile);

            bitmap.Save(qrFile.Path);

            table = page.AddTable();
            table.Rows.LeftIndent = 0;
            column = table.AddColumn("65mm");
            column = table.AddColumn("30mm");
            column = table.AddColumn("65mm");
            row = table.AddRow();

            image = row.Cells[1].AddImage(qrFile.Path);
            image.Height = "30mm";

            table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);

            // No caso de emissão em contingência a informação sobre o protocolo de autorização será suprimida
            if (nfe.infNFe.ide.tpEmis != TipoEmissaoNFe.ContingenciaOffline)
            {
                table = page.AddTable();
                table.Rows.LeftIndent = 0;
                column = table.AddColumn("16cm");
                column.Format.Alignment = ParagraphAlignment.Center;
                row = table.AddRow();
                // O texto “Protocolo de autorização:” com o número do protocolo de autorização obtido para NFC-e e a data e hora da autorização. 
                row.Cells[0].AddParagraph("Protocolo de Autorização: " + protocolo.infProt.nProt + " " +
                                            protocolo.infProt.dhRecbto.FromSefazTime().ToString("dd/MM/yyyy HH:mm:ss"));

                table.SetEdge(0, 0, table.Columns.Count, table.Rows.Count, Edge.Box, BorderStyle.Single, 0.5);
            }
        }
예제 #41
0
파일: Form1.cs 프로젝트: yurikus/QRCoder
        private void RenderQrCode()
        {
            string level = comboBoxECC.SelectedItem.ToString();
            QRCodeGenerator.ECCLevel eccLevel = (QRCodeGenerator.ECCLevel)(level == "L" ? 0 : level == "M" ? 1 : level == "Q" ? 2 : 3);
            using (QRCodeGenerator qrGenerator = new QRCodeGenerator())
            {
                using (QRCodeData qrCodeData = qrGenerator.CreateQrCode(textBoxQRCode.Text, eccLevel))
                {
                    using (QRCode qrCode = new QRCode(qrCodeData))
                    {

                        pictureBoxQRCode.BackgroundImage = qrCode.GetGraphic(20, Color.Black, Color.White,
                            GetIconBitmap(), (int) iconSize.Value);

                         this.pictureBoxQRCode.Size = new System.Drawing.Size(pictureBoxQRCode.Width, pictureBoxQRCode.Height);
                        //Set the SizeMode to center the image.
                        this.pictureBoxQRCode.SizeMode = PictureBoxSizeMode.CenterImage;

                        pictureBoxQRCode.SizeMode = PictureBoxSizeMode.StretchImage;
                    }
                }
            }
        }
예제 #42
0
 private void LoadValues()
 {
     DataTable dt = new DataTable();
     dt = (DataTable)Session["dt"];
     username.Text = dt.Rows[0]["Username"].ToString();
     code = dt.Rows[0]["Random_No"].ToString();
     Session["code"] = code;
     QRCodeGenerator qrGenerator = new QRCodeGenerator();
     QRCodeGenerator.QRCode qrCode = qrGenerator.CreateQrCode(code, QRCodeGenerator.ECCLevel.H);
     System.Web.UI.WebControls.Image imgBarCode = new System.Web.UI.WebControls.Image();
     imgBarCode.Height = 150;
     imgBarCode.Width = 150;
     using (Bitmap bitMap = qrCode.GetGraphic(20))
     {
         using (MemoryStream ms = new MemoryStream())
         {
             bitMap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
             byte[] byteImage = ms.ToArray();
             imgBarCode.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(byteImage);
         }
         plBarCode.Controls.Add(imgBarCode);
     }
 }