I'm building an application for adding digital signature to word file, for that i'm using below code.
private void CreateNewPage()
{
object missing = System.Reflection.Missing.Value;
object fileName = @"F:\Doc\test.docx";
object readOnly = false;
object isVisible = true;
//Start Word and open a document.
Microsoft.Office.Interop.Word._Application oWord;
Microsoft.Office.Interop.Word._Document oDoc;
oWord = new Microsoft.Office.Interop.Word.Application();
oWord.Visible = true;
oDoc = oWord.Documents.Open(ref fileName, ref missing, ref readOnly,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref isVisible, ref missing,
ref missing, ref missing, ref missing);
// var numberOfPages = oDoc.ComputeStatistics(Word.WdStatistic.wdStatisticPages, false);
object oEndOfDoc = "\\endofdoc";
object paramNextPage = Microsoft.Office.Interop.Word.WdBreakType.wdSectionBreakNextPage;
oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertBreak(ref paramNextPage);
//Insert a page break
object breakPage = Microsoft.Office.Interop.Word.WdBreakType.wdPageBreak;
object saveOption = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
object originalFormat = Microsoft.Office.Interop.Word.WdOriginalFormat.wdOriginalDocumentFormat;
object routeDocument = false;
object what = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage;
object which = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToLast;
object count = 3;
oWord.Selection.GoTo(ref what, ref which, ref count, ref missing);
object sigID = "{00000000-0000-0000-0000-000000000000}";
try
{
oWord.Activate();
SignatureSet signatureSet = oWord.ActiveDocument.Signatures;
// signatureSet.ShowSignaturesPane = false;
Signature objSignature = signatureSet.AddSignatureLine(sigID);
objSignature.Setup.SuggestedSigner = "docSigner";
objSignature.Setup.SuggestedSignerEmail = "abc@xyz.com";
objSignature.Setup.ShowSignDate = true;
// dynamic shape = objSignature.SignatureLineShape;
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
oWord.Documents.Save();
oWord.Quit();
try
{
Marshal.ReleaseComObject(oWord);
}
catch (Exception e) { MessageBox.Show(e.Message); }
}
But i'm encountered an error at below location :
SignatureSet signatureSet = oWord.ActiveDocument.Signatures;
Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
Can any one having any idea, how to solve this issue. Or have any other solution to adding signature into Word/PDF file.
Or have any other solution to adding signature into Word/PDF file.
As an alternative solution, you can use GroupDocs.Signature for .NET API to add digital signatures to Word or PDF documents.
using (Signature signature = new Signature("sample.docx"))
{
// initialize digital option with certificate file path
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
{
// optional: setup image file path
ImageFilePath = "sample.jpg",
// set signature position
Left = 100,
Top = 100,
// set password
Password = "1234567890"
};
signature.Sign("sampleSigned.docx", options);
}
See this article for more details.
Disclosure: I work as a developer evangelist at GroupDocs.
User contributions licensed under CC BY-SA 3.0