gpt4 book ai didi

pdf - PDF 中的数字签名

转载 作者:行者123 更新时间:2023-12-03 17:21:54 24 4
gpt4 key购买 nike

我正在尝试使用 THIS 对 PDF 文件进行数字签名项目为例。

当它执行 st.Close();我得到了臭名昭著的“对象引用未设置为对象的实例”。

我不知道为什么会发生这种情况,st 是一个对象的实例,上面使用了它。这个异常发生在 .Close() 内部,因为我没有源代码,我只能试着猜测为什么......

我只能说:

  • 正在成功读取原始 PDF。
  • 正在生成一个空的 pdf(我猜 .Close() 将写入文件)。
  • 我的证书正在加载,但我不确定这是正确的方法。

  • 这是我加载证书的方式:

    private void processCert(X509Certificate2 card)
    {
    X509CertificateParser cp = new org.bouncycastle.x509.X509CertificateParser(card.RawData);
    chain = new org.bouncycastle.x509.X509Certificate[] { cp.ReadCertificate() };
    }

    这就是我试图签署 PDF 的方式。

    public string Sign(string SigReason, string SigContact, string SigLocation, bool visible)
    {
    string bugLog ="";
    try
    {
    PdfReader reader = new PdfReader(this.inputPDF);

    //Activate MultiSignatures
    PdfStamper st = PdfStamper.CreateSignature(reader, new FileStream(this.outputPDF, FileMode.Create, FileAccess.Write), '\0', null, true);

    FileStream(this.outputPDF, FileMode.Create, FileAccess.Write), '\0');

    st.MoreInfo = this.metadata.getMetaData();

    st.XmpMetadata = this.metadata.getStreamedMetaData();

    PdfSignatureAppearance sap = st.SignatureAppearance;

    sap.SetCrypto(this.myCert.Akp, this.myCert.Chain, null, PdfSignatureAppearance.WINCER_SIGNED);

    sap.Reason = SigReason;
    sap.Contact = SigContact;
    sap.Location = SigLocation;

    if (visible)
    sap.SetVisibleSignature(new iTextSharp.text.Rectangle(100, 100, 250, 150), 1, null);

    st.Close();
    }
    catch (Exception e)
    {
    bugLog += " ERROR Sign: " + e.Message;
    }

    return buglog;
    }

    有没有人知道为什么我会收到这个异常,或者我应该怎么做才能克服这个问题?

    iTextSharp 文档并没有太大帮助...

    最佳答案

    我现在已经设法完成了这项工作:) 对这个例子的一些小改动起到了作用 ;)

    http://itextpdf.sourceforge.net/howtosign.html#signextitextsharp2

    关于pdf - PDF 中的数字签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/386622/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com