Trang 1 trên 1

Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Hai 30/04/2018 2:35 pm
gửi bởi muaphonui_2010
Chào các bạn.
Hiện tại mình thử ký vào file PDF dùng chữ ký số ở trong cái USB token (không phải dùng file .PFX).
Mình tìm trên mạng thì thấy code này để ký.

Mã: Chọn hết

    Private Sub code1()
        Dim ps As PdfSignature = New PdfSignature("Số sê ri")
        ps.LoadPdfDocument("C:\Users\Phi Long\Downloads\Demo.pdf")
        ps.SignatureText = "Ký bởi: Công Ty Thử Nghiệm" + vbLf & "Ngày: " + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + vbCr + "Lý do: thử nghiệm"

        'Canh trái phải...
        ps.TextDirection = TextDirection.RightToLeft

        ps.SignaturePosition = SignaturePosition.BottomRight
        'Chọn chữ ký Token
        ps.DigitalSignatureCertificate = DigitalCertificate.LoadCertificate(True, "", "Chọn chữ ký", "")
        'Xuất ra file mới
        File.WriteAllBytes("C:\Users\Phi Long\Downloads\Demo1.pdf", ps.ApplyDigitalSignature())

    End Sub


Nhưng khi mình ký xong nó xuất hiện dòng "SignLib.dll DEMO VERSION" như hình đính kèm bên dưới

==> Nhờ bạn nào biết chỉ giúp mình làm sao bỏ dòng chữ đó với. Ngâm cứu gần được rồi, chỉ còn cái dòng chữ đó nữa thôi hjhj.
Xin chân thành cảm ơn.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Tư 02/05/2018 4:08 pm
gửi bởi muaphonui_2010
Cái link có cái file SignLib.dll mình tải ở link này:
.NET Digital Signature Library: http://www.signfiles.com/sdk/SignatureLibrary.zip
.NET Digital Signature Library main page: http://www.signfiles.com/ signature-library /
Có bạn nào biết giúp mình với nhé. đang cần quá mà không biết cách làm.
Xin cảm ơn.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Năm 03/05/2018 11:13 am
gửi bởi nhatlinh0207
Mua bản quyền :D hoặc dùng loại khác :D

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Sáu 04/05/2018 7:44 am
gửi bởi muaphonui_2010
có bạn nào có file Cr... không cho mình xin với.
Còn dùng loại khác thì không biết dùng loại nào hết,
Vì mình cũng có ngâm cứu thử cái khác nhưng thấy toán ký file dùng file .pfx để ký không ah. cái của mình cần là dùng USB token chữ ký số.
VD: link này thì dùng file .PFX để ký: https://documentation.devexpress.com/Of ... F-Document

Hy vọng có 1 người hào phóng nào đó giúp đỡ hjhjhj.
Xin cảm ơn và hậu tạ.
Mail của mình: rongbien8332010@gmail.com.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Ba 08/05/2018 11:14 am
gửi bởi muaphonui_2010
Chào các bạn.
Mình có tìm thấy code này để ký. Khi ký thì thấy nó cũng chạy ngon lành, nhưng mở lên không thấy chữ ký hiện lên, nhưng kiểm tra file đó đã ký chưa thì thấy đã ký rồi. nhưng nó ẩn đi khi nhìn thì ko thấy.
Cho hỏi thuộc tính nào để nó hiện chữ ký lên vậy các bạn.

Mã: Chọn hết

Imports System
Imports System.Windows.Forms
Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates
Imports iTextSharp.text.pdf
Imports iTextSharp.text.pdf.security

Public Class Form1
    Private Function GetSecurePin(ByVal PinCode As String) As SecureString
        Dim pwd As SecureString = New SecureString
        For Each c In PinCode.ToCharArray
            pwd.AppendChar(c)
        Next
        Return pwd
    End Function

    Private Sub SignWithThisCert(ByVal cert As X509Certificate2)
        Dim SourcePdfFileName As String = textBox1.Text
        Dim DestPdfFileName As String = (textBox1.Text + "-Signed.pdf")
        Dim cp As Org.BouncyCastle.X509.X509CertificateParser = New Org.BouncyCastle.X509.X509CertificateParser
        Dim chain() As Org.BouncyCastle.X509.X509Certificate = New Org.BouncyCastle.X509.X509Certificate() {cp.ReadCertificate(cert.RawData)}
        Dim externalSignature As IExternalSignature = New X509Certificate2Signature(cert, "SHA-1")
        Dim pdfReader As PdfReader = New PdfReader(SourcePdfFileName)
        Dim signedPdf As FileStream = New FileStream(DestPdfFileName, FileMode.Create)
        'the output pdf file
        Dim pdfStamper As PdfStamper = PdfStamper.CreateSignature(pdfReader, signedPdf, Microsoft.VisualBasic.ChrW(92))
        Dim signatureAppearance As PdfSignatureAppearance = pdfStamper.SignatureAppearance
        'here set signatureAppearance at your will
        signatureAppearance.Reason = "Because I can"
        signatureAppearance.Location = "My location"
        signatureAppearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.DESCRIPTION
        MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, Nothing, Nothing, Nothing, 0, CryptoStandard.CMS)
        signatureAppearance.SetVisibleSignature(New iTextSharp.text.Rectangle(20, 10, 170, 1), 1, "Icsi-Vendor")
        'MakeSignature.SignDetached(signatureAppearance, externalSignature, chain, null, null, null, 0, CryptoStandard.CADES);
        MessageBox.Show("Done")
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)

    End Sub

    Private Sub button1_Click_1(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        OpenFileDialog1.ShowDialog()
        TextBox1.Text = OpenFileDialog1.FileName
        'Sign with certificate selection in the windows certificate store
        Dim store As X509Store = New X509Store(StoreLocation.CurrentUser)
        store.Open(OpenFlags.ReadOnly)
        Dim cert As X509Certificate2 = Nothing
        'manually chose the certificate in the store
        Dim sel As X509Certificate2Collection = X509Certificate2UI.SelectFromCollection(store.Certificates, "thu nghiem", "thu ngiem 1", X509SelectionFlag.SingleSelection)
        'Dim sel As X509Certificate2Collection = X509Certificate.SelectFromCollection(store.Certificates, Nothing, Nothing, X509SelectionFlag.SingleSelection)

        If (sel.Count > 0) Then
            cert = sel(0)
        Else
            MessageBox.Show("Certificate not found")
            Return
        End If

        Me.SignWithThisCert(cert)
    End Sub


End Class

Xin cảm ơn

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Tư 09/05/2018 7:49 pm
gửi bởi FlyingFox
Nó sẽ tạo ra trong file mới (textBox1.Text + "-Signed.pdf").
Trong function SignWithThisCert ở dòng dưới đây để hiển thị chữ ký
signatureAppearance.SetVisibleSignature(New iTextSharp.text.Rectangle(20, 10, 170, 1), 1, "Icsi-Vendor")

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Năm 10/05/2018 1:56 pm
gửi bởi vietteiv
thử cái số serial này xem :)

Mã: Chọn hết

'serialNo = "ffe019eac76d706ec5ec"
Dim ps As New PdfSignature(serialNo)


Hình ảnh

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Năm 10/05/2018 9:26 pm
gửi bởi muaphonui_2010
Oh, Cảm ơn anh "vietteiv = Hãy nói theo cách của bạn" hjhj.
Em thử gán cái seri của anh cho em. Nó hoạt động rất tốt.
Hóa ra là chổ seri đó là cái mã số mình phải mua mới có. mà em không biết cái số đó là số gì, em tường đó là số seri của USB token hjhjhj.
Xin chân thành cảm ơn anh.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Năm 10/05/2018 9:32 pm
gửi bởi muaphonui_2010
Nó sẽ tạo ra trong file mới (textBox1.Text + "-Signed.pdf").
Trong function SignWithThisCert ở dòng dưới đây để hiển thị chữ ký
signatureAppearance.SetVisibleSignature(New iTextSharp.text.Rectangle(20, 10, 170, 1), 1, "Icsi-Vendor")

Chào anh.
Đoạn code của em ở trên cũng đã có dòng đó rồi, nhưng nó vẫn không hiển thị đó anh ah.
Em có tham khảo link này
https://social.msdn.microsoft.com/Forums/en-US/59fff6f8-c981-4c54-931a-963b420c4a46/sign-a-pdf-using-usb-token?forum=Offtopic
Em cũng đã chuyển nó xuống phiên bản 5.3.3
Nhưng khi em ký thì nó không hiển thị cho mình thấy.
Nhưng khi em kiểm tra file đó ký chưa thì thấy đã ký rồi.
Em nghĩ nó thiếu đoạn nào đó hay code em convert qua vb.net nó sai chổ nào ấy.
Nếu anh hay mọi người có cách làm cho chạy thì càng tốt, không thì em dùng cái mã của anh Viettel cho ở trên, em thấy nó chạy cũng ok rồi.
Xin chân thành cảm ơn anh và mọi người đã quan tâm giúp đỡ.
Cái dụ này em mò 5 ngày rồi mà vẫn không được gì hết nên lên nhà mình hỏi đó hjhjhj.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Bảy 12/05/2018 5:35 pm
gửi bởi FlyingFox
Chạy thử cái demo này coi?

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Hai 14/05/2018 10:12 am
gửi bởi muaphonui_2010
Chào Anh.
Em dùng code này, ký mà nó chưa hiện nè anh. (file đính kèm theo link ở dưới)
https://drive.google.com/open?id=1nhBbI ... xFUy-peXxA
Cảm ơn anh

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Hai 14/05/2018 10:45 am
gửi bởi FlyingFox
Sorry quên upload cái file demo ở trên.
https://drive.google.com/open?id=1ChGFG ... 6T6ORDPfuC

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Hai 14/05/2018 9:13 pm
gửi bởi muaphonui_2010
Chào anh.
Em đã thử dự án mẫu của anh.
Chức năng ở button1 và button2 thì nó chạy ok, nhưng button3 em ko biết nhập ở TextBox3.Text là gì.
Có vẻ như ở button3 anh thiết kế là để ký file bằng USB token phải ko anh.

Mã: Chọn hết

 Private Sub button3_Click(sender As Object, e As EventArgs) Handles button3.Click
        Cursor.Current = Cursors.WaitCursor
        Try
            Dim pdf = New PdfDigitalSignature(TextBox1.Text, TextBox2.Text)
            pdf.SignWithCert(TextBox3.Text, "password")
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        Cursor.Current = Cursors.Default
    End Sub

Nhưng em thử găm token vào , nó cũng không thấy mở danh sách chữ ký lên để chọn và bắt đầu ký.
Thực tế của em là ký file từ chữ ký số USB token.
+ Găm chữ ký số vào
+ Nhấn button ký, nó sẽ hiện lên các chữ ký đang có
+ CHọn chữ ký và gỏ mật khẩu
+ Nhấn ok để ký.
Cảm ơn anh.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Ba 15/05/2018 8:04 am
gửi bởi FlyingFox
Dùng function SignFromSmartCard thay vì SignWithCert như sau:
pdf.SignWithCert("providerName", "keyContainerName", "password")

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Ba 15/05/2018 11:47 am
gửi bởi FlyingFox

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Tư 16/05/2018 11:19 am
gửi bởi muaphonui_2010
Cảm ơn anh.
Em đã thử thấy chạy ok.
Nhưng còn muốn thay chữ "Digitally signes by" = Ký bởi"
Ngày tháng định dạng lại thành "dd/MM/yyyy HH:mm:ss"
Font chữ nếu em ghi là tiếng việt có dấu nó hiện ra bị lỗi"
Hình ảnh muốn xuất hiện phía trước đầu dòng cảu các chữ.
Không biết mấy cái đó nó hỗ trợ không nữa. Nếu anh biết thì giúp luôn để sau này có ai cần giống em người ta dùng cho đỡ khổ hjhjhj.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Năm 17/05/2018 7:14 pm
gửi bởi FlyingFox
Download lại cái link trên đi.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Sáu 18/05/2018 9:24 pm
gửi bởi muaphonui_2010
Cảm ơn anh.
Em text thấy nó chạy rất ok rồi.

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: CN 20/05/2018 11:45 am
gửi bởi vietteiv
nhân cái vụ chữ ký số này cho mình hỏi xíu:
1/ cái usb token gắn máy nào thì khi ký sẽ chọn các chữ ký đã cài trên máy đó, gõ mật khẩu rồi ký
-> vậy có cách nào gắn usb ở máy chủ rồi ký ở 1 máy trạm ko gắn usb nhưng có cài cer rồi xác nhận được ko?

2/ cái mã chứng thực cer đó phải cài thủ công trên tất cả các máy trạm (máy muốn sử dụng chữ ký) hay có cách nào nhanh hơn ko?

Re: Nhờ giúp về SignLib.dll (ký file pdf)

Đã gửi: T.Hai 21/05/2018 11:11 am
gửi bởi nhatlinh0207
Nếu cắm usb ở máy chủ mình nghĩ chỉ làm bằng cách gửi file lên máy chủ, sau khi ký xong thì gửi lại file thôi.