コード例 #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.Filter = "PDF document (*.pdf)|*.pdf";
            DialogResult result = dialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                try
                {
                    string pdfFile = dialog.FileName;

                    List <PdfSignature> signatures = new List <PdfSignature>();

                    //open a pdf document and get its all signatures
                    using (PdfDocument pdf = new PdfDocument(pdfFile))
                    {
                        PdfFormWidget form = pdf.Form as PdfFormWidget;
                        for (int i = 0; i < form.FieldsWidget.Count; i++)
                        {
                            PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
                            if (field != null && field.Signature != null)
                            {
                                PdfSignature signature = field.Signature;
                                signatures.Add(signature);
                            }
                        }

                        //get the first signature
                        PdfSignature signatureOne = signatures[0];

                        //detect if the pdf document was modified
                        bool modified = signatureOne.VerifyDocModified();

                        if (modified)
                        {
                            MessageBox.Show("The document was modified");
                        }
                        else
                        {
                            MessageBox.Show("The document was not modified");
                        }
                    }
                }
                catch (Exception exe)
                {
                    MessageBox.Show(exe.Message, "Spire.Pdf Demo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #2
0
        private void VerifySC_Click(object sender, EventArgs e)
        {
            err = m_SecuBSP.EnumerateDevice();
            pdf = new PdfDocument();

            OpenFileDialog dialog = new OpenFileDialog();

            dialog.Filter = "PDF document (*.pdf)|*.pdf";
            DialogResult result = dialog.ShowDialog();

            if (result == DialogResult.OK)
            {
                try
                {
                    string pdfFile = dialog.FileName;

                    List <PdfSignature> signatures = new List <PdfSignature>();
                    //Open a pdf document and get its all signatures
                    using (PdfDocument pdf = new PdfDocument())
                    {
                        pdf.LoadFromFile(pdfFile);
                        PdfFormWidget form = pdf.Form as PdfFormWidget;
                        for (int i = 0; i < form.FieldsWidget.Count; i++)
                        {
                            PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
                            if (field != null && field.Signature != null)
                            {
                                PdfSignature signature = field.Signature;
                                signatures.Add(signature);
                            }
                        }

                        //Get the first signature
                        PdfSignature signatureOne = signatures[0];

                        //Detect if the pdf document was modified
                        bool modified = signatureOne.VerifyDocModified();

                        //FIND
                        err = m_SecuBSP.EnumerateDevice();
                        m_SecuBSP.DeviceID = (Int16)DeviceID.AUTO;

                        //OPEN
                        err = m_SecuBSP.OpenDevice();
                        if (err == BSPError.ERROR_NONE)
                        {
                            if (!modified)
                            {
                                PdfDocumentInformation docInfo = pdf.DocumentInformation;
                                err = m_SecuBSP.Capture(FIRPurpose.VERIFY);
                                if (err == BSPError.ERROR_NONE)
                                {
                                    err = m_SecuBSP.VerifyMatch(m_SecuBSP.FIRTextData, docInfo.Subject);

                                    if (err == BSPError.ERROR_NONE)
                                    {
                                        if (m_SecuBSP.IsMatched)
                                        {
                                            AutoClosingMessageBox.Show("The Document is Authentic", "", 1500);
                                        }
                                        else
                                        {
                                            AutoClosingMessageBox.Show("The Document is not Authentic", "", 1500);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                AutoClosingMessageBox.Show("The Document is not Authentic", "", 1500);
                            }
                        }
                        else
                        {
                            AutoClosingMessageBox.Show("No Scanner Detected", "Error!", 1000);
                        }
                    }
                }
                catch (Exception exe)
                {
                    MessageBox.Show("Document is not Authentic", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
コード例 #3
0
        private void VerifyDB_Click(object sender, EventArgs e)
        {
            if (matricTextBox.Text.Equals("") || matricTextBox.Text.Equals("Input Matric"))
            {
                MessageBox.Show("Please Input a Matric Number", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                MySqlCommand command = new MySqlCommand("SELECT * FROM `data` WHERE `matric`=@user", db.getConnection());
                command.Parameters.Add("@user", MySqlDbType.VarChar).Value = matricTextBox.Text;
                db.openConnection();
                MySqlDataReader rdr = command.ExecuteReader();
                f_data = "";
                while (rdr.Read())
                {
                    f_data = rdr.GetString(4);
                }
                rdr.Close();
                if (f_data.Equals(""))
                {
                    MessageBox.Show("Wrong Matric Number", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    pdf = new PdfDocument();

                    OpenFileDialog dialog = new OpenFileDialog();
                    dialog.Filter = "PDF document (*.pdf)|*.pdf";
                    DialogResult result = dialog.ShowDialog();

                    if (result == DialogResult.OK)
                    {
                        try
                        {
                            string pdfFile = dialog.FileName;

                            List <PdfSignature> signatures = new List <PdfSignature>();
                            //Open a pdf document and get its all signatures
                            using (PdfDocument pdf = new PdfDocument())
                            {
                                pdf.LoadFromFile(pdfFile);
                                PdfFormWidget form = pdf.Form as PdfFormWidget;
                                for (int i = 0; i < form.FieldsWidget.Count; i++)
                                {
                                    PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget;
                                    if (field != null && field.Signature != null)
                                    {
                                        PdfSignature signature = field.Signature;
                                        signatures.Add(signature);
                                    }
                                }

                                //Get the first signature
                                PdfSignature signatureOne = signatures[0];

                                //Detect if the pdf document was modified
                                bool modified = signatureOne.VerifyDocModified();

                                if (!modified)
                                {
                                    PdfDocumentInformation docInfo = pdf.DocumentInformation;
                                    err = m_SecuBSP.Capture(FIRPurpose.VERIFY);

                                    err = m_SecuBSP.VerifyMatch(f_data, docInfo.Subject);

                                    if (err == BSPError.ERROR_NONE)
                                    {
                                        if (m_SecuBSP.IsMatched)
                                        {
                                            AutoClosingMessageBox.Show("The Document is Authentic", "", 1500);
                                        }
                                        else
                                        {
                                            AutoClosingMessageBox.Show("The Document is not Authentic", "", 1500);
                                        }
                                    }
                                }
                                else
                                {
                                    AutoClosingMessageBox.Show("The Document is not Authentic", "", 1500);
                                }
                            }
                        }
                        catch (Exception exe)
                        {
                            MessageBox.Show("Document is not Authentic", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
        }
コード例 #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            //Load PDF document from disk
            PdfDocument doc = new PdfDocument();

            doc.LoadFromFile("../../../../../../Data/SignatureField.pdf");

            PdfFormWidget widgets = doc.Form as PdfFormWidget;

            for (int i = 0; i < widgets.FieldsWidget.List.Count; i++)
            {
                PdfFieldWidget widget = widgets.FieldsWidget.List[i] as PdfFieldWidget;
                if (widget is PdfSignatureFieldWidget)
                {
                    //Get the field name
                    string name = widget.Name;
                    PdfSignatureFieldWidget signWidget = widget as PdfSignatureFieldWidget;

                    //Sign with certificate selection in the windows certificate store
                    System.Security.Cryptography.X509Certificates.X509Store store = new System.Security.Cryptography.X509Certificates.X509Store(System.Security.Cryptography.X509Certificates.StoreLocation.CurrentUser);
                    store.Open(System.Security.Cryptography.X509Certificates.OpenFlags.ReadOnly);

                    //Manually chose the certificate in the store
                    System.Security.Cryptography.X509Certificates.X509Certificate2Collection sel = System.Security.Cryptography.X509Certificates.X509Certificate2UI.SelectFromCollection(store.Certificates, null, null, System.Security.Cryptography.X509Certificates.X509SelectionFlag.SingleSelection);

                    //Create a certificate using the certificate data from the store
                    PdfCertificate cert = new PdfCertificate(sel[0].RawData);

                    //Create a signature using the signature field
                    PdfSignature signature = new PdfSignature(doc, signWidget.Page, cert, name, signWidget);

                    //Load sign image source
                    signature.SignImageSource = PdfImage.FromFile("../../../../../../Data/E-iceblueLogo.png");

                    //Set the dispay mode of graphics, if not set any, the default one will be applied
                    signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;
                    signature.NameLabel    = "Signer:";

                    signature.Name = sel[0].GetNameInfo(System.Security.Cryptography.X509Certificates.X509NameType.SimpleName, true);

                    signature.ContactInfoLabel = "ContactInfo:";
                    signature.ContactInfo      = signature.Certificate.GetNameInfo(System.Security.Cryptography.X509Certificates.X509NameType.SimpleName, true);

                    signature.DateLabel = "Date:";
                    signature.Date      = DateTime.Now;

                    signature.LocationInfoLabel = "Location:";
                    signature.LocationInfo      = "Chengdu";

                    signature.ReasonLabel = "Reason: ";
                    signature.Reason      = "The certificate of this document";

                    signature.DistinguishedNameLabel = "DN: ";
                    signature.DistinguishedName      = signature.Certificate.IssuerName.Name;

                    signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill | PdfCertificationFlags.ForbidChanges;
                    signature.Certificated        = true;

                    //Set fonts, if not set, default ones will be applied
                    signature.SignDetailsFont = new PdfFont(PdfFontFamily.TimesRoman, 10f);
                    signature.SignNameFont    = new PdfFont(PdfFontFamily.Courier, 15);

                    //Set the sign image layout mode
                    signature.SignImageLayout = SignImageLayout.None;
                }
            }

            //Save the Pdf document
            string output = "SignWithSmartCardUsingSignatureField_out.pdf";

            doc.SaveToFile(output);

            //Launch the result file
            PDFDocumentViewer(output);
        }
コード例 #5
0
        private void button1_Click(object sender, EventArgs e)
        {
            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            //Create one page.
            PdfPageBase page = doc.Pages.Add();

            //Draw the page.
            DrawPage(page);

            String         pfxPath = @"..\..\..\..\..\..\Data\Demo.pfx";
            PdfCertificate cert    = new PdfCertificate(pfxPath, "e-iceblue");

            //signature fully.
            PdfSignature signature = new PdfSignature(doc, page, cert, "signature0");

            //invisible signature.
            //signature.Bounds = new RectangleF(new PointF(20, 350), new SizeF(200, 100));
            //display signature picture.
            //signature.ConfiguerGraphicPath =  @"\signature.jpg";
            //signature.ConfigGraphicType = ConfiguerGraphicType.Picture;
            //display signature text.
            signature.IsTag = true;
            signature.DigitalSignerLable = "Firmado Por:";
            signature.DigitalSigner      = "Alex Alvarado";
            signature.ContactInfo        = "Harry";
            signature.Date = DateTime.Now;

            signature.Certificated        = true;
            signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill | PdfCertificationFlags.ForbidChanges;

            //create empty signature field.
            PdfSignatureField signature1Field = new PdfSignatureField(page, "signature1");

            signature1Field.Bounds        = new RectangleF(new PointF(300, 350), new SizeF(200, 100));
            signature1Field.BorderWidth   = 1.0f;
            signature1Field.BorderStyle   = PdfBorderStyle.Solid;
            signature1Field.BorderColor   = new PdfRGBColor(System.Drawing.Color.Black);
            signature1Field.HighlightMode = PdfHighlightMode.Outline;
            // display picture.
            //signature1Field.DrawImage(new PdfBitmap(m_DataDirectory + @"\SpirePdf-815.jpg"), 0, 0);
            doc.Form.Fields.Add(signature1Field);

            doc.SaveToFile("DigitalSignature.pdf");
            doc.Close();

            /* --------------------------------------------------------------------------------------- */

            doc = new PdfDocument("DigitalSignature.pdf");

            //signature empty signature field.
            PdfSignatureFieldWidget signature1FieldWidget =
                (doc.Form as PdfFormWidget).FieldsWidget["signature1"] as PdfSignatureFieldWidget;
            PdfSignature signature1 =
                new PdfSignature(doc, signature1FieldWidget.Page, cert, signature1FieldWidget.Name, signature1FieldWidget);

            signature1.IsTag = true;
            signature1.DigitalSignerLable = "Firmado Por:";
            signature1.DigitalSigner      = "Alex Alvarado";
            signature1.ContactInfo        = "Harry";
            signature1.Date = DateTime.Now;

            //Save pdf file.
            doc.SaveToFile("DigitalSignature.pdf");
            doc.Close();

            //Launching the Pdf file.
            PDFDocumentViewer("DigitalSignature.pdf");
        }