using Microsoft.Office.Interop.Word; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Xml.Linq; using Syncfusion.DocIO; using Syncfusion.DocIO.DLS; using Shape = Syncfusion.DocIO.DLS.Shape; using Syncfusion.DocIO.ReaderWriter; using System.IO; using Syncfusion.Pdf; using Syncfusion.OfficeChart; using Syncfusion.DocToPDFConverter; using Syncfusion.OfficeChartToImageConverter; using static System.Net.WebRequestMethods; namespace ZZ_Signature_C { public partial class Form1 : Form { Microsoft.Office.Interop.Word.Application word; Microsoft.Office.Interop.Word.Document docWord; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string bmname = "Unterschrift2"; //bmname = "TGEDKNameVornameLinksB"; word = new Microsoft.Office.Interop.Word.Application(); docWord = word.Documents.Open(@"E:\Software-Projekte\OnDoc\Excel_Dateien\Signature.docx"); docWord.Activate(); word.Visible = true; insert_unterschrift("TGEDKVornameNameLinksB99"); insert_unterschrift("TGEDKVornameNameRechtsB99"); word.ActiveDocument.SaveAs2(@"E:\Software-Projekte\OnDoc\Excel_Dateien\SignatureSigned.docx"); docWord = null; word = null; } private void remove_unterschriften() { bool found = true; MessageBox.Show(word.ActiveDocument.Shapes.Count.ToString()); int i = 1; while (word.ActiveDocument.Shapes.Count > 0 && found==true) { found = false; if (word.ActiveDocument.Shapes[i].Name.Contains("Unterschrift_")) { word.ActiveDocument.Shapes[i].Delete(); found= true; } } //foreach (Microsoft.Office.Interop.Word.Shape sh in docWord.Shapes) { // if (sh.Name.Contains("Unterschrift_")){ // sh.Delete(); // } //} } private void insert_unterschrift(string tmn) { object missing = Type.Missing; Microsoft.Office.Interop.Word.Range myRange = docWord.Bookmarks[tmn].Range; Microsoft.Office.Interop.Word.Bookmark bm = docWord.Bookmarks[tmn]; float vertical = bm.Range.Information[Microsoft.Office.Interop.Word.WdInformation.wdVerticalPositionRelativeToPage]; float horizontal = bm.Range.Information[Microsoft.Office.Interop.Word.WdInformation.wdHorizontalPositionRelativeToPage]; docWord.Activate(); Microsoft.Office.Interop.Word.Range myRange3 = bm.Range; Microsoft.Office.Interop.Word.Range myRange4 = bm.Range.GoTo(); Microsoft.Office.Interop.Word.Shape myShape = docWord.Shapes.AddPicture(@"E:\Software-Projekte\OnDoc\Unterschriften\1.jpg", false, true, 0, 0, 120, 50, myRange); myShape.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapTight; myShape.RelativeHorizontalPosition = Microsoft.Office.Interop.Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage; myShape.Left = horizontal; myShape.RelativeVerticalPosition = Microsoft.Office.Interop.Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionPage; myShape.Top = vertical - myShape.Height; //myShape.LockAspectRatio = Microsoft.Office.Core.MsoTriState.msoTrue; myShape.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapBehind; myShape.ZOrder(Microsoft.Office.Core.MsoZOrderCmd.msoSendBackward); myShape.Select(); return; //vertical = vertical - 50; //word.ActiveDocument.Bookmarks[tmn].Select(); //Microsoft.Office.Interop.Word.Shape myshape1 = docWord.Shapes.AddShape(1, horizontal, vertical, 120, 50); //myshape1.Fill.UserPicture(@"E:\Software-Projekte\OnDoc\Unterschriften\1.jpg"); ////myshape1.Line.Weight = -2; //myshape1.Name = "Unterschrift" + "_" + tmn; //myshape1.Line.Visible= Microsoft.Office.Core.MsoTriState.msoFalse; ////Microsoft.Office.Interop.Word.InlineShape myshape3 = word.Selection.InlineShapes.AddPicture(@"E:\Software-Projekte\OnDoc\Unterschriften\1.jpg",false,true,myRange,); Microsoft.Office.Interop.Word.Shape myshape = docWord.Shapes.AddTextbox(Microsoft.Office.Core .MsoTextOrientation.msoTextOrientationHorizontal, (float)horizontal, (float)vertical, 120, 56, ref missing); myshape.Name = "Unterschrift" + "_" + tmn; myshape.TextFrame.ContainingRange.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleNone; myshape.TextFrame.ContainingRange.Borders.InsideLineStyle = WdLineStyle.wdLineStyleNone; myshape.Fill.UserPicture(@"E:\Software-Projekte\OnDoc\Unterschriften\1.jpg"); myshape.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapSquare; myshape.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse; } public void Lic() { // 25. string lickey = "Ngo9BigBOggjHTQxAR8/V1NCaF5cXmZCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdnWXdecXRdQ2heUU13XUI=" //string lickey = "Ngo9BigBOggjHTQxAR8/V1NCaF5cXmZCf1FpRmJGdld5fUVHYVZUTXxaS00DNHVRdkdnWXZeeXRQR2NZUEZ2WkE="; string lickey = "MzYzODg2NkAzMjM4MmUzMDJlMzBTOWljRmxNelA1d1VGOHpGR0lxQzB6UTAwKzIxK2VBNEhBZFp5alcxb1NVPQ=="; Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(lickey); } private void button2_Click(object sender, EventArgs e) { Lic(); WordDocument document = new WordDocument(); document.Open(@"E:\Software-Projekte\OnDoc\Excel_Dateien\Signature.docx"); BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document); bookmarkNavigator.MoveToBookmark("Unterschrift2"); Syncfusion.DocIO.DLS.Bookmark bm = document.Bookmarks["Unterschrift2"]; Shape signature = bm.BookmarkStart.OwnerParagraph.AppendShape(AutoShapeType.Rectangle, 120, 59); //signature.WrapFormat.AllowOverlap = true; signature.VerticalPosition = signature.VerticalPosition -50; signature.LineFormat.DashStyle = LineDashing.Solid; signature.LineFormat.Color = Color.White; IWParagraph p = signature.TextBody.AddParagraph(); System.Drawing.Image sfimage = Image.FromFile(@"E:\Software-Projekte\OnDoc\Unterschriften\1.jpg"); IWPicture pi = p.AppendPicture(sfimage); pi.Width = 120; pi.Height = 50; //Shape signature = bm.BookmarkStart.OwnerParagraph.AppendShape(Syncfusion.DocIO.DLS.AutoShapeType.Rectangle, 120, 50); ////IWParagraph p = bm.BookmarkStart.OwnerParagraph; ////IWPicture u = p.AppendPicture(img); //IWParagraph sigparagraph = signature.TextBody.AddParagraph(); //signature.WrapFormat.TextWrappingStyle = TextWrappingStyle.Behind; //signature.LineFormat.DashStyle = LineDashing.Solid; //signature.LineFormat.Color = Color.White; //signature.WrapFormat.AllowOverlap = true; //signature.VerticalPosition = signature.VerticalPosition - 50; ////signature.HorizontalPosition = signature.HorizontalPosition + 200; //sigparagraph.AppendPicture(img); //signature.Name = "Unterschrift_" + bookmark; //// signature.OwnerParagraph.AppendPicture(img); //mssign = null; //Shape signature2 = bm.BookmarkStart.OwnerParagraph.AppendShape(AutoShapeType.Rectangle, 50, 50); //signature2.WrapFormat.AllowOverlap = true; //int index = bm.BookmarkStart.OwnerParagraph.ChildEntities.IndexOf(bm.BookmarkStart); //bm.BookmarkStart.OwnerParagraph.ChildEntities.Insert(index, signature2); //Syncfusion.DocIO.DLS.Bookmark x = document.Bookmarks.FindByName("Unterschrift2"); //IWParagraph p = x.BookmarkStart.Document.CreateParagraph(); //p.AppendShape(AutoShapeType.CircularArrow, 50, 50); //bookmarkNavigator.InsertParagraph(p); //IWParagraph paragraph = document.Sections[0].Paragraphs[0]; //if (document.Sections.Count < 1) //{ // document.AddSection(); //} //IWParagraph footerparagraph; //if (document.Sections[0].HeadersFooters.Footer.Paragraphs.Count < 1) //{ // footerparagraph = document.Sections[0].HeadersFooters.Footer.AddParagraph(); //} //footerparagraph = document.Sections[0].HeadersFooters.Footer.Paragraphs[0]; //System.Drawing.Image sfimage = Image.FromFile(@"x:\gaga.png"); ////sfimage = AutoSizeImage(sfimage, Convert.ToInt32(this.width), Convert.ToInt32(this.height), false); ////sfimage = ScaleImage(sfimage, Convert.ToInt32(this.width), Convert.ToInt32(this.height)); //Shape rectangle = footerparagraph.AppendShape(AutoShapeType.Rectangle, Convert.ToInt32(this.width), Convert.ToInt32(this.height)); //paragraph = rectangle.TextBody.AddParagraph() as WParagraph; //rectangle.LineFormat.Line = false; //IWPicture pic = paragraph.AppendPicture(sfimage); //pic.Width = 160; //pic.Height = 28; //rectangle.VerticalPosition = (Convert.ToInt32(this.top) / 150 * 2.83465f); //rectangle.HorizontalPosition = Convert.ToInt32(this.left); ////rectangle.LineFormat.DashStyle = LineDashing.Dot; ////rectangle.LineFormat.Color = Color.DarkGray; ////IWParagraph rectangleparagraph = rectangle.TextBody.AddParagraph(); ////IWPicture picture = rectangleparagraph.AppendPicture(sfimage); ////footerparagraph.AppendShape document.Save(@"x:\gaga.docx"); document.Close(); System.Diagnostics.Process.Start("winword.exe", "/w " + @"x:\gaga.docx"); return; //WordDocument document = new WordDocument(); //document.Open(@"E:\Software-Projekte\OnDoc\Excel_Dateien\empty.docx"); ////Add a new section to the document. //IWSection section = document.AddSection(); ////Add a new paragraph to the section. //IWParagraph paragraph = section.AddParagraph() as WParagraph; //Shape rectangle = paragraph.AppendShape(AutoShapeType.RoundedRectangle, 150, 100); //rectangle.VerticalPosition = 72; //rectangle.HorizontalPosition = 72; //paragraph = section.AddParagraph() as WParagraph; //paragraph = rectangle.TextBody.AddParagraph() as WParagraph; //System.Drawing.Image sfimage = Image.FromFile(@"x:\gaga.png"); //paragraph.AppendPicture(sfimage); //IWTextRange text = paragraph.AppendText("This text is in rounded rectangle shape"); //text.CharacterFormat.TextColor = Color.Green; //text.CharacterFormat.Bold = true; ////Apply fill color for shape. //rectangle.FillFormat.Fill = true; //rectangle.FillFormat.Color = Color.LightGray; ////Set transparency (opacity) to the shape fill color. //rectangle.FillFormat.Transparency = 75; ////Apply wrap formats. //rectangle.WrapFormat.TextWrappingStyle = TextWrappingStyle.Square; //rectangle.WrapFormat.TextWrappingType = TextWrappingType.Right; ////Set horizontal and vertical origin. //rectangle.HorizontalOrigin = HorizontalOrigin.Margin; //rectangle.VerticalOrigin = VerticalOrigin.Page; ////Set line format. //rectangle.LineFormat.DashStyle = LineDashing.Dot; //rectangle.LineFormat.Color = Color.DarkGray; ////Set the left internal margin for the shape. //rectangle.TextFrame.InternalMargin.Left = 30; ////Set the right internal margin for the shape. //rectangle.TextFrame.InternalMargin.Right = 24; ////Set the bottom internal margin for the shape. //rectangle.TextFrame.InternalMargin.Bottom = 18; ////Set the top internal margin for the shape. //rectangle.TextFrame.InternalMargin.Top = 6; ////Saves the Word document to MemoryStream //document.Save(@"x:\gaga.docx", FormatType.Docx); ////Closes the Word document //document.Close(); } private void button3_Click(object sender, EventArgs e) { word = new Microsoft.Office.Interop.Word.Application(); docWord = word.Documents.Open(@"E:\Software-Projekte\OnDoc\Excel_Dateien\Signature.docx"); docWord.Activate(); docWord = word.Documents.Open(@"x:\gaga.docx"); word.Visible = true; remove_unterschriften(); docWord = null; word = null; } private void button4_Click(object sender, EventArgs e) { WordDocument wordDocument = new WordDocument(@"E:\Software-Projekte\OnDoc\Excel_Dateien\SignatureSigned.docx", Syncfusion.DocIO.FormatType.Automatic); wordDocument.ChartToImageConverter = new ChartToImageConverter(); wordDocument.ChartToImageConverter.ScalingMode = ScalingMode.Normal; Syncfusion.DocToPDFConverter.DocToPDFConverter converter = new Syncfusion.DocToPDFConverter.DocToPDFConverter(); converter.Settings.EmbedFonts = true; converter.Settings.UpdateDocumentFields = false; converter.Settings.EnableAlternateChunks = true; converter.Settings.AutoDetectComplexScript = true; converter.Settings.ImageResolution = 1280; converter.Settings.ImageQuality = 100; using (PdfDocument pdfDocument = converter.ConvertToPDF(wordDocument)) { pdfDocument.Save(Path.GetFullPath(@"E:\Software-Projekte\OnDoc\Excel_Dateien\SignatureSigned.pdf")); this.pdfViewerControl1.Load(@"E:\Software-Projekte\OnDoc\Excel_Dateien\SignatureSigned.pdf"); } } } }