• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

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

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Hai 30/04/2018 2:35 pm

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.
Tập tin đính kèm
KyFilePDF.png



muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Tư 02/05/2018 4:08 pm

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.

Hình đại diện của người dùng
nhatlinh0207
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 411
Ngày tham gia: T.Tư 15/08/2012 7:54 pm
Has thanked: 55 time
Been thanked: 50 time

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

Gửi bàigửi bởi nhatlinh0207 » T.Năm 03/05/2018 11:13 am

Mua bản quyền :D hoặc dùng loại khác :D

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Sáu 04/05/2018 7:44 am

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.

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Ba 08/05/2018 11:14 am

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

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

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

Gửi bàigửi bởi FlyingFox » T.Tư 09/05/2018 7:49 pm

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")

Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1323
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 time
Been thanked: 71 time
Liên hệ:

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

Gửi bàigửi bởi vietteiv » T.Năm 10/05/2018 1:56 pm

thử cái số serial này xem :)

Mã: Chọn hết

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


Hình ảnh

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Năm 10/05/2018 9:26 pm

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.

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Năm 10/05/2018 9:32 pm

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.

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

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

Gửi bàigửi bởi FlyingFox » T.Bảy 12/05/2018 5:35 pm

Chạy thử cái demo này coi?

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Hai 14/05/2018 10:12 am

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

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

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

Gửi bàigửi bởi FlyingFox » T.Hai 14/05/2018 10:45 am

Sorry quên upload cái file demo ở trên.
https://drive.google.com/open?id=1ChGFG ... 6T6ORDPfuC

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Hai 14/05/2018 9:13 pm

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.

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

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

Gửi bàigửi bởi FlyingFox » T.Ba 15/05/2018 8:04 am

Dùng function SignFromSmartCard thay vì SignWithCert như sau:
pdf.SignWithCert("providerName", "keyContainerName", "password")

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

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

Gửi bàigửi bởi FlyingFox » T.Ba 15/05/2018 11:47 am


muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Tư 16/05/2018 11:19 am

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.

FlyingFox
Guru
Guru
Bài viết: 808
Ngày tham gia: T.Tư 20/04/2011 9:56 am
Been thanked: 320 time

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

Gửi bàigửi bởi FlyingFox » T.Năm 17/05/2018 7:14 pm

Download lại cái link trên đi.

muaphonui_2010
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 496
Ngày tham gia: T.Sáu 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 181 time
Been thanked: 27 time
Liên hệ:

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

Gửi bàigửi bởi muaphonui_2010 » T.Sáu 18/05/2018 9:24 pm

Cảm ơn anh.
Em text thấy nó chạy rất ok rồi.

Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1323
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 time
Been thanked: 71 time
Liên hệ:

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

Gửi bàigửi bởi vietteiv » CN 20/05/2018 11:45 am

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?

Hình đại diện của người dùng
nhatlinh0207
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 411
Ngày tham gia: T.Tư 15/08/2012 7:54 pm
Has thanked: 55 time
Been thanked: 50 time

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

Gửi bàigửi bởi nhatlinh0207 » T.Hai 21/05/2018 11:11 am

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.


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.3 khách