Digitally signing a docx with no need to open the document with C#

旧巷老猫 提交于 2019-12-11 01:35:24

问题


I tried this the code below but I failed to sign a document without opening it. Is it possible to sign a document with a certificate without opening it.

object TempFilePath = TemporaryFolder + FileTempName;
object Visible = false;
object readonlyfile = false;

try
{
    object missing = System.Reflection.Missing.Value;
    Microsoft.Office.Interop.Word.ApplicationClass wordapp = new
    Microsoft.Office.Interop.Word.ApplicationClass();
    Microsoft.Office.Interop.Word.Document wordDocument = wordapp.Documents.Open(ref
TempFilePath, ref missing,
    ref readonlyfile, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref missing, ref missing, ref missing,
    ref Visible, ref missing, ref missing,
    ref missing, ref missing);

    //    wordDocument.Activate();

    //  object sigID = "{00000000-0000-0000-0000-000000000000}";

    //   wordDocument.ActiveWindow.Application.ActiveDocument.Signatures.AddSignatureLine(sigID);
    //   wordDocument.ActiveWindow.Application.ActiveDocument.Signatures.Commit();
    SignatureSet signatureSet = wordDocument.Signatures;
    Signature objSignature = signatureSet.Add();


    if (objSignature == null)
    {
        DocumentNotSigned(item);
        return false;
    }
    else
    {
        signatureSet.Commit();
        object saveChanges = true;
        wordDocument.Close(ref saveChanges, ref missing, ref missing);
        wordapp.Quit(ref missing, ref missing, ref missing);
        return true;
    }

来源:https://stackoverflow.com/questions/12258106/digitally-signing-a-docx-with-no-need-to-open-the-document-with-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!