update 20250202

This commit is contained in:
Stefan Hutter
2025-02-02 18:07:10 +01:00
parent f1f74f8cc5
commit 293b615547
133 changed files with 333088 additions and 333 deletions

View File

@@ -13,6 +13,7 @@ using NLog;
using System.Security.Policy;
using OfficePrinter;
using Syncfusion.XlsIO.Implementation.PivotAnalysis;
using OnDocOffice;
namespace DOCGEN.Generator
{
@@ -94,6 +95,17 @@ namespace DOCGEN.Generator
clsdok dok = new clsdok("", "", "");
if (useoffice == false) {
Logging.Logging.Debug("Generate_Word", "Start", dokumentid);
if (docdata.remove_signature)
{
Helper.clsFileHelper fh = new Helper.clsFileHelper();
string filename = tempdir + dokumentid + ".tmp";
fh.SaveBase64ToFile(dt.Rows[0][0].ToString(), filename);
word_signature ws = new word_signature();
ws.remove_unterschriften_synfusion(filename);
dt.Rows[0][0] = fh.Base64FromFile(filename);
ws = null;
}
dok.dokument = sfword.Generate_Word(dt.Rows[0][0].ToString(), docdata);
Logging.Logging.Debug("Generate_Word", "Ende", dokumentid);

View File

@@ -194,6 +194,38 @@ namespace DOCGEN.Klassen
}
}
private void insert_signature(string bookmark, string unterschrift, ref WordDocument document)
{
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
Syncfusion.DocIO.DLS.Bookmark bm = document.Bookmarks[bookmark];
MemoryStream mssign = new MemoryStream(Convert.FromBase64String(unterschrift));
System.Drawing.Image img = System.Drawing.Image.FromStream(mssign);
Shape signature = bm.BookmarkStart.OwnerParagraph.AppendShape(Syncfusion.DocIO.DLS.AutoShapeType.Rectangle,135,55);
//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;
IWPicture p = sigparagraph.AppendPicture(img);
p.Width = 120;
p.Height = 50;
signature.Name = "Unterschrift_" + bookmark;
// signature.OwnerParagraph.AppendPicture(img);
mssign = null;
}
public string Generate_Word(string base64, clsDocData docdata, string img_UL = "", string img_UR = "", string img_faktura = "", bool serienbrief=false)
{
string formattype = "";
@@ -238,6 +270,9 @@ namespace DOCGEN.Klassen
var formattype_original = document.ActualFormatType;
string ppimg = "";
string ppimg64 = "";
if (docdata.Barcode == true)
{
Insert_Barcode(document, docdata);
@@ -280,10 +315,17 @@ namespace DOCGEN.Klassen
//{
// insert_ppfaktura(document, img_faktura);
//}
if (docdata.Form_ohne_Unterschrift == "True" || docdata.As_Faksimile == "True")
{
//DB db = new DB();
}
//List<Entity> shapes = document.FindAllItemsByProperty(EntityType.Shape, null, null);
//for (int i = 0; i < shapes.Count; i++)
//{
// Shape sh = shapes[i] as Shape;
// if (sh.Name.Contains("Unterschrift_")){
// int i1 = sh.OwnerParagraph.ChildEntities.Count;
// }
//}
foreach (clsDocValue dv in docdata.DocValues)
@@ -320,22 +362,9 @@ namespace DOCGEN.Klassen
{
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
// if ((dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99" || dv.TMBeginn.ToString() == "TGEDKVornameNameRechtsB99") && docdata.As_Faksimile == "True")
if ((dv.TMBeginn.ToString().Contains("VornameNameLinks") || dv.TMBeginn.ToString().Contains("VornameNameRechts")) && docdata.As_Faksimile == "True" && serienbrief==true)
if ((dv.TMBeginn.ToString().Contains("VornameNameLinks") || dv.TMBeginn.ToString().Contains("VornameNameRechts")) && docdata.As_Faksimile == "True" && (docdata.sign == true || serienbrief==true))
{
string funktionlinks = "";
string funktionrechts = "";
foreach (clsDocValue dv2 in docdata.DocValues)
{
//if (dv2.TMBeginn.ToString() == "TGEDKFunktionLinksB99") { funktionlinks = dv2.Value.ToString(); }
//if (dv2.TMBeginn.ToString() == "TGEDKFunktionRechtsB99") { funktionrechts = dv2.Value.ToString(); }
if (dv2.TMBeginn.ToString().Contains("FunktionLinks")) { funktionlinks = dv2.Value.ToString(); }
if (dv2.TMBeginn.ToString().Contains("FunktionRecht")) { funktionrechts = dv2.Value.ToString(); }
}
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
IWParagraph paragraph = new WParagraph(document);
paragraph.AppendBreak(BreakType.LineBreak);
// if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
if (dv.TMBeginn.ToString().Contains("VornameNameLinks"))
{
string unterschrift = "";
@@ -344,63 +373,113 @@ namespace DOCGEN.Klassen
{
unterschrift = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(get_unterschrift(docdata.Unterschrift_Links));
}
if (unterschrift != "")
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
bookmarkNavigator.ReplaceBookmarkContent(dv.Value.ToString(),true);
if (docdata.Unterschrift_Links != "-1")
{
MemoryStream mssign = new MemoryStream(Convert.FromBase64String(unterschrift));
System.Drawing.Image img = System.Drawing.Image.FromStream(mssign);
paragraph.AppendPicture(img);
mssign.Dispose();
img.Dispose();
insert_signature(dv.TMBeginn.ToLower(), unterschrift, ref document);
}
}
else
if (dv.TMBeginn.ToString().Contains("VornameNameRechts"))
{
string unterschrift = "";
if (img_UR != "") { unterschrift = img_UR; }
if (img_UL != "") { unterschrift = img_UL.ToString(); }
else
{
unterschrift = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(get_unterschrift(docdata.Unterschrift_Rechts));
}
if (unterschrift != "")
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
bookmarkNavigator.ReplaceBookmarkContent(dv.Value.ToString(),true);
if (docdata.Unterschrift_Rechts != "-1")
{
MemoryStream mssign = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(unterschrift));
System.Drawing.Image img = System.Drawing.Image.FromStream(mssign);
mssign.Dispose();
paragraph.AppendPicture(img);
img.Dispose();
insert_signature(dv.TMBeginn.ToLower(), unterschrift, ref document);
}
}
// System.Drawing.Image image = System.Drawing.Image.FromFile(@"x:\docdemo\unterschriften\kube1.png");
//paragraph.AppendPicture(image);
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendText(dv.Value.ToString());
//if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
if (dv.TMBeginn.ToString().Contains("VornameNameLinks"))
{
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendText(funktionlinks);
}
else
{
paragraph.AppendBreak(BreakType.LineBreak);
paragraph.AppendText(funktionrechts);
}
//paragraph.rep
bookmarkNavigator.InsertParagraph(paragraph);
//string funktionlinks = "";
//string funktionrechts = "";
//foreach (clsDocValue dv2 in docdata.DocValues)
//{
// //if (dv2.TMBeginn.ToString() == "TGEDKFunktionLinksB99") { funktionlinks = dv2.Value.ToString(); }
// //if (dv2.TMBeginn.ToString() == "TGEDKFunktionRechtsB99") { funktionrechts = dv2.Value.ToString(); }
// if (dv2.TMBeginn.ToString().Contains("FunktionLinks")) { funktionlinks = dv2.Value.ToString(); }
// if (dv2.TMBeginn.ToString().Contains("FunktionRecht")) { funktionrechts = dv2.Value.ToString(); }
//}
//bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
//IWParagraph paragraph = new WParagraph(document);
//paragraph.AppendBreak(BreakType.LineBreak);
//// if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
//if (dv.TMBeginn.ToString().Contains("VornameNameLinks"))
//{
// string unterschrift = "";
// if (img_UL != "") { unterschrift = img_UL.ToString(); }
// else
// {
// unterschrift = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(get_unterschrift(docdata.Unterschrift_Links));
// }
// if (unterschrift != "")
// {
// MemoryStream mssign = new MemoryStream(Convert.FromBase64String(unterschrift));
// System.Drawing.Image img = System.Drawing.Image.FromStream(mssign);
// paragraph.AppendPicture(img);
// mssign.Dispose();
// img.Dispose();
// }
//}
//else
//{
// string unterschrift = "";
// if (img_UR != "") { unterschrift = img_UR; }
// else
// {
// unterschrift = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(get_unterschrift(docdata.Unterschrift_Rechts));
// }
// if (unterschrift != "")
// {
// MemoryStream mssign = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(unterschrift));
// System.Drawing.Image img = System.Drawing.Image.FromStream(mssign);
// mssign.Dispose();
// paragraph.AppendPicture(img);
// img.Dispose();
// }
//}
//// System.Drawing.Image image = System.Drawing.Image.FromFile(@"x:\docdemo\unterschriften\kube1.png");
////paragraph.AppendPicture(image);
//paragraph.AppendBreak(BreakType.LineBreak);
//paragraph.AppendText(dv.Value.ToString());
////if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
//if (dv.TMBeginn.ToString().Contains("VornameNameLinks"))
//{
// paragraph.AppendBreak(BreakType.LineBreak);
// paragraph.AppendText(funktionlinks);
//}
//else
//{
// paragraph.AppendBreak(BreakType.LineBreak);
// paragraph.AppendText(funktionrechts);
//}
////paragraph.rep
//bookmarkNavigator.InsertParagraph(paragraph);
}
else
{
//if (docdata.As_Faksimile=="True" && (dv.TMBeginn.ToString() == "TGEDKFunktionLinksB99" || dv.TMBeginn.ToString() == "TGEDKFunktionRechtsB99"))
if (docdata.As_Faksimile == "True" && (dv.TMBeginn.ToString().Contains("FunktionLinks") || dv.TMBeginn.ToString().Contains("FunktionRechts")) && serienbrief == true)
{
//if (docdata.As_Faksimile == "True" && (dv.TMBeginn.ToString().Contains("FunktionLinks") || dv.TMBeginn.ToString().Contains("FunktionRechts")) && serienbrief == true)
//{
}
else
{
//}
//else
//{
//if (dv.TMBeginn.ToString() == "TGEDKAdresseZustellungB99")
if (dv.TMBeginn.ToString() == "TGEDKZustellungB99")
{
@@ -445,7 +524,7 @@ namespace DOCGEN.Klassen
}
}
}
//}
}
}
@@ -491,38 +570,39 @@ namespace DOCGEN.Klassen
}
}
if (docdata.As_Faksimile == "True" && serienbrief==true)
{
//gaga
//if (docdata.As_Faksimile == "True" && serienbrief==true)
//{
TextSelection[] textSelections = document.FindAll("Thurgauer Kantonalbank", false, true);
foreach (TextSelection selection in textSelections)
{
WTextRange textRange = selection.GetAsOneRange();
WTextBody ownerTextBody = textRange.OwnerParagraph.OwnerTextBody;
//Get the index of the paragraph with specified text
int ownerParaIndex = ownerTextBody.ChildEntities.IndexOf(textRange.OwnerParagraph);
//Check whether the previous and next paragraphs are empty and remove them
if (ownerParaIndex > 0 && ownerTextBody.ChildEntities[ownerParaIndex - 1] is WParagraph &&
(ownerTextBody.ChildEntities[ownerParaIndex - 1] as WParagraph).Items.Count == 0)
{
ownerTextBody.ChildEntities.RemoveAt(ownerParaIndex - 1);
}
if (ownerParaIndex + 1 < ownerTextBody.ChildEntities.Count &&
ownerTextBody.ChildEntities[ownerParaIndex + 1] is WParagraph &&
(ownerTextBody.ChildEntities[ownerParaIndex + 1] as WParagraph).Items.Count == 0)
{
for (int i = 0; i < 4; i++)
{
try
{
ownerTextBody.ChildEntities.RemoveAt(ownerParaIndex + 1);
// TextSelection[] textSelections = document.FindAll("Thurgauer Kantonalbank", false, true);
// foreach (TextSelection selection in textSelections)
// {
// WTextRange textRange = selection.GetAsOneRange();
// WTextBody ownerTextBody = textRange.OwnerParagraph.OwnerTextBody;
// //Get the index of the paragraph with specified text
// int ownerParaIndex = ownerTextBody.ChildEntities.IndexOf(textRange.OwnerParagraph);
// //Check whether the previous and next paragraphs are empty and remove them
// if (ownerParaIndex > 0 && ownerTextBody.ChildEntities[ownerParaIndex - 1] is WParagraph &&
// (ownerTextBody.ChildEntities[ownerParaIndex - 1] as WParagraph).Items.Count == 0)
// {
// ownerTextBody.ChildEntities.RemoveAt(ownerParaIndex - 1);
// }
// if (ownerParaIndex + 1 < ownerTextBody.ChildEntities.Count &&
// ownerTextBody.ChildEntities[ownerParaIndex + 1] is WParagraph &&
// (ownerTextBody.ChildEntities[ownerParaIndex + 1] as WParagraph).Items.Count == 0)
// {
// for (int i = 0; i < 4; i++)
// {
// try
// {
// ownerTextBody.ChildEntities.RemoveAt(ownerParaIndex + 1);
}
catch { }
}
}
}
}
// }
// catch { }
// }
// }
// }
//}
foreach (clsDocMacro dm in docdata.DocMacros)
{