update 20250224
This commit is contained in:
@@ -1616,13 +1616,15 @@ namespace OnDocOffice
|
||||
}
|
||||
bool is_protected = false;
|
||||
Microsoft.Office.Interop.Word.Document docWord;
|
||||
Microsoft.Office.Interop.Word.Application word;
|
||||
public bool sign_doc(ref Microsoft.Office.Interop.Word.Application word, string imagepath_ul, string imagepath_ur, string dokumentid, string dokumenttypnr)
|
||||
{
|
||||
Logging.Logging.Debug("Sign_Doc", "OnDoc", dokumentid);
|
||||
docWord = word.ActiveDocument;
|
||||
this.word = word;
|
||||
|
||||
DB db = new DB(this.ConnectionString);
|
||||
db.Get_Tabledata("Select * from OnDocSignaturePosition where dokumenttypnr=1089");
|
||||
db.Get_Tabledata("Select * from OnDocSignaturePosition where dokumenttypnr=" + dokumenttypnr+" order by id",false,true);
|
||||
System.Data.DataTable position = db.dsdaten.Tables[0];
|
||||
db = null;
|
||||
Thread.Sleep(1000);
|
||||
@@ -1636,37 +1638,48 @@ namespace OnDocOffice
|
||||
int h = 0;
|
||||
int l = 0;
|
||||
int t = 0;
|
||||
int type = 1;
|
||||
try
|
||||
{
|
||||
List<string> list = new List<string>();
|
||||
foreach (Microsoft.Office.Interop.Word.Bookmark bm in docWord.Bookmarks)
|
||||
{
|
||||
if (bm.Name.Contains("VornameNameLinks") || bm.Name.Contains("UnterschriftLinks"))
|
||||
if (bm.Name.Contains("VornameNameLinks") || bm.Name.Contains("UnterschriftLinks") || bm.Name == "TGEDKVornameNameL") { list.Add(bm.Name); }
|
||||
if (bm.Name.Contains("VornameNameRechts") || bm.Name.Contains("UnterschriftRechts") || bm.Name == "TGEDKVornameNameR") { list.Add(bm.Name); }
|
||||
|
||||
}
|
||||
list.Sort();
|
||||
foreach (string bm in list)
|
||||
{
|
||||
if (bm.Contains("VornameNameLinks") || bm.Contains("UnterschriftLinks") || bm=="TGEDKVornameNameL")
|
||||
{
|
||||
foreach (System.Data.DataRow dr in position.Rows)
|
||||
{
|
||||
if (bm.Name.ToUpper() == dr["bookmark"].ToString().ToUpper())
|
||||
if (bm.ToUpper() == dr["bookmark"].ToString().ToUpper())
|
||||
{
|
||||
l = Convert.ToInt32("posleft");
|
||||
t = Convert.ToInt32("postop");
|
||||
w = Convert.ToInt32("width");
|
||||
h = Convert.ToInt32("height");
|
||||
l = Convert.ToInt32(dr["posleft"]);
|
||||
t = Convert.ToInt32(dr["postop"]);
|
||||
w = Convert.ToInt32(dr["width"]);
|
||||
h = Convert.ToInt32(dr["height"]);
|
||||
type = Convert.ToInt32(dr["type"]);
|
||||
}
|
||||
}
|
||||
insert_unterschrift(bm.Name, imagepath_ul,l,t,w,h);
|
||||
insert_unterschrift(bm, imagepath_ul,l,t,w,h,type);
|
||||
}
|
||||
if (bm.Name.Contains("VornameNameRechts") || bm.Name.Contains("UnterschriftRechts"))
|
||||
if (bm.Contains("VornameNameRechts") || bm.Contains("UnterschriftRechts") || bm == "TGEDKVornameNameR")
|
||||
{
|
||||
foreach (System.Data.DataRow dr in position.Rows)
|
||||
{
|
||||
if (bm.Name.ToUpper() == dr["bookmark"].ToString().ToUpper())
|
||||
if (bm.ToUpper() == dr["bookmark"].ToString().ToUpper())
|
||||
{
|
||||
l = Convert.ToInt32("posleft");
|
||||
t = Convert.ToInt32("postop");
|
||||
w = Convert.ToInt32("width");
|
||||
h = Convert.ToInt32("height");
|
||||
l = Convert.ToInt32(dr["posleft"]);
|
||||
t = Convert.ToInt32(dr["postop"]);
|
||||
w = Convert.ToInt32(dr["width"]);
|
||||
h = Convert.ToInt32(dr["height"]);
|
||||
type = Convert.ToInt32(dr["type"]);
|
||||
}
|
||||
}
|
||||
insert_unterschrift(bm.Name, imagepath_ur,l,t,w,h);
|
||||
insert_unterschrift(bm, imagepath_ur,l,t,w,h,type);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1691,65 +1704,51 @@ namespace OnDocOffice
|
||||
}
|
||||
}
|
||||
|
||||
public void insert_unterschrift(string bookmark, string imagepath, int l, int t, int w, int h)
|
||||
|
||||
|
||||
public void insert_unterschrift(string bookmark, string imagepath, int l, int t, int w, int h, int type)
|
||||
{
|
||||
if (imagepath == "") return;
|
||||
|
||||
|
||||
|
||||
|
||||
object missing = Type.Missing;
|
||||
Microsoft.Office.Interop.Word.Range myRange = docWord.Bookmarks[bookmark].Range;
|
||||
|
||||
///
|
||||
Microsoft.Office.Interop.Word.Bookmark bm = docWord.Bookmarks[bookmark];
|
||||
bm.Range.GoTo();
|
||||
bm.Select();
|
||||
|
||||
Microsoft.Office.Interop.Word.Shape myShape1 = docWord.Shapes.AddPicture(imagepath, false, true, 0, 0, 120, 50, missing);
|
||||
//myShape1.Top = myShape1.Top - myShape1.Height;
|
||||
myShape1.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapBehind;
|
||||
|
||||
return;
|
||||
///
|
||||
|
||||
// Microsoft.Office.Interop.Word.InlineShape myinlineshape = myRange.InlineShapes.AddPicture(imagepath, false, false, missing);
|
||||
|
||||
float vertical = bm.Range.Information[Microsoft.Office.Interop.Word.WdInformation.wdVerticalPositionRelativeToPage];
|
||||
float horizontal = bm.Range.Information[Microsoft.Office.Interop.Word.WdInformation.wdHorizontalPositionRelativeToPage];
|
||||
float marigntop = docWord.PageSetup.TopMargin;
|
||||
float marginleft = docWord.PageSetup.LeftMargin;
|
||||
|
||||
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( imagepath, false, true, 0, 0, 120, 50, myRange4);
|
||||
|
||||
|
||||
Microsoft.Office.Interop.Word.Shape myShape = docWord.Shapes.AddPicture(imagepath, false, true, 0, 0, 120, 50, missing);
|
||||
//myShape.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapTight;
|
||||
myShape.RelativeHorizontalPosition = Microsoft.Office.Interop.Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage;
|
||||
myShape.RelativeVerticalPosition = Microsoft.Office.Interop.Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionPage;
|
||||
if (bookmark.Contains("Rechts"))
|
||||
if (type == 1)
|
||||
{
|
||||
myShape.Left = horizontal-marginleft ;
|
||||
Microsoft.Office.Interop.Word.Range myRange = docWord.Bookmarks[bookmark].Range;
|
||||
Microsoft.Office.Interop.Word.Bookmark bm = docWord.Bookmarks[bookmark];
|
||||
bm.Range.GoTo();
|
||||
bm.Select();
|
||||
Thread.Sleep(500);
|
||||
System.Windows.Forms.Application.DoEvents();
|
||||
Microsoft.Office.Interop.Word.Shape myShape1 = docWord.Shapes.AddPicture(imagepath, false, true, 0, 0, 120, 50, missing);
|
||||
//myShape1.Top = myShape1.Top - myShape1.Height;
|
||||
myShape1.Top = myShape1.Top + t;
|
||||
myShape1.Left = myShape1.Left + l;
|
||||
myShape1.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapBehind;
|
||||
}
|
||||
else
|
||||
if (type == 2)
|
||||
{
|
||||
//myShape.Left = horizontal - marginleft;
|
||||
myShape.Left = horizontal;
|
||||
Microsoft.Office.Interop.Word.Bookmark bm = docWord.Bookmarks[bookmark];
|
||||
float vertical = bm.Range.Information[Microsoft.Office.Interop.Word.WdInformation.wdVerticalPositionRelativeToPage];
|
||||
float horizontal = bm.Range.Information[Microsoft.Office.Interop.Word.WdInformation.wdHorizontalPositionRelativeToPage];
|
||||
float marigntop = docWord.PageSetup.TopMargin;
|
||||
float marginleft = docWord.PageSetup.LeftMargin;
|
||||
|
||||
docWord.Activate();
|
||||
bm.Range.GoTo();
|
||||
bm.Select();
|
||||
|
||||
Microsoft.Office.Interop.Word.Shape myShape = docWord.Shapes.AddPicture(imagepath, false, true, 0, 0, 120, 50, missing);
|
||||
myShape.RelativeHorizontalPosition = Microsoft.Office.Interop.Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage;
|
||||
myShape.RelativeVerticalPosition = Microsoft.Office.Interop.Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionPage;
|
||||
myShape.Left = horizontal + l;
|
||||
myShape.Top = vertical + t;
|
||||
myShape.Name = "Unterschrift_" + bookmark;
|
||||
|
||||
Logging.Logging.Debug(horizontal.ToString() + "/" + vertical.ToString() + "/" + marginleft.ToString() + "/" + marigntop.ToString() + "/" + myShape.Top.ToString() + "/" + myShape.Left.ToString(), "OnDoc", "");
|
||||
|
||||
myShape.LockAspectRatio = Microsoft.Office.Core.MsoTriState.msoTrue;
|
||||
myShape.WrapFormat.Type = Microsoft.Office.Interop.Word.WdWrapType.wdWrapBehind;
|
||||
}
|
||||
myShape.Name = "Unterschrift_" + bookmark;
|
||||
|
||||
myShape.Top = vertical - (myShape.Height + marigntop + 7);
|
||||
|
||||
Logging.Logging.Debug(horizontal.ToString() + "/" + vertical.ToString() + "/" + marginleft.ToString() + "/" + marigntop.ToString()+"/"+myShape.Top.ToString()+"/"+myShape.Left.ToString(), "OnDoc", "");
|
||||
|
||||
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;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user