update 20241127
This commit is contained in:
@@ -22,6 +22,8 @@ namespace DOCGEN.Generator
|
||||
public string DokumentID;
|
||||
public string tempdir;
|
||||
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
|
||||
public string apikey = "";
|
||||
public string resturi = "";
|
||||
|
||||
public void Lic()
|
||||
{
|
||||
@@ -36,11 +38,20 @@ namespace DOCGEN.Generator
|
||||
this.connectionstring = connectionstring;
|
||||
Lic();
|
||||
}
|
||||
public DocGenerator_from_EDOKA(string connectionstring, string RestUri, string ApiKey)
|
||||
{
|
||||
this.connectionstring = connectionstring;
|
||||
Lic();
|
||||
this.apikey= ApiKey;
|
||||
this.resturi= RestUri;
|
||||
}
|
||||
|
||||
public DocGenerator_from_EDOKA(string connectionstring, string tempdir)
|
||||
public DocGenerator_from_EDOKA(string connectionstring, string tempdir, string RestUri, string ApiKey)
|
||||
{
|
||||
this.connectionstring = connectionstring;
|
||||
this.tempdir = tempdir;
|
||||
this.resturi = RestUri;
|
||||
this.apikey = ApiKey;
|
||||
}
|
||||
|
||||
public clsdok Generate_Doc_EDOKA(string dokumentid, ref clsDocData docdata, bool useoffice = false )
|
||||
@@ -57,7 +68,7 @@ namespace DOCGEN.Generator
|
||||
{
|
||||
case "DOCX": case "DOCM": case "DOC": case "DOT":
|
||||
case "WORD": case "DOTM":
|
||||
SyncFWord sfword = new SyncFWord();
|
||||
SyncFWord sfword = new SyncFWord(resturi,apikey);
|
||||
generate_docdata(dokumentid, ref docdata);
|
||||
clsdok dok = new clsdok("", "", "");
|
||||
if (useoffice == false) {
|
||||
|
||||
@@ -30,6 +30,8 @@ using Syncfusion.XlsIO.Implementation.TemplateMarkers;
|
||||
using System.Drawing.Printing;
|
||||
using Syncfusion.XlsIO;
|
||||
using System.Security.Permissions;
|
||||
using System.Net;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
|
||||
|
||||
@@ -37,6 +39,15 @@ namespace DOCGEN.Klassen
|
||||
{
|
||||
public class SyncFWord
|
||||
{
|
||||
public string resturi = "";
|
||||
public string apikey = "";
|
||||
|
||||
public SyncFWord(string resturi, string apikey)
|
||||
{
|
||||
this.resturi = resturi;
|
||||
this.apikey=apikey;
|
||||
}
|
||||
|
||||
public bool create_nativ(string property, string value, string base64, string originalfile, string destfile)
|
||||
{
|
||||
FileStream ms = new FileStream(originalfile, FileMode.Open, FileAccess.Read);
|
||||
@@ -66,16 +77,79 @@ namespace DOCGEN.Klassen
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
private string get_unterschrift(string MaNr)
|
||||
{
|
||||
|
||||
string URL = resturi + "API/GetUnterschriftAsBase64ByMitarbeiternr?MaNr=" + MaNr;
|
||||
|
||||
HttpWebRequest webRequest = HttpWebRequest.Create(URL) as HttpWebRequest;
|
||||
webRequest.Method = WebRequestMethods.Http.Get;
|
||||
webRequest.Headers["Authorization"] = "Bearer " + apikey;
|
||||
try
|
||||
{
|
||||
using (HttpWebResponse response = webRequest.GetResponse() as HttpWebResponse)
|
||||
{
|
||||
if (response.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
StreamReader reader = new StreamReader(response.GetResponseStream());
|
||||
string responseContent = reader.ReadToEnd();
|
||||
|
||||
return responseContent;
|
||||
}
|
||||
else
|
||||
{
|
||||
Logging.Logging.Error(URL + ": " + response.StatusCode.ToString() + " / " + response.StatusDescription, "Clinet - DokList GetDocument", "");
|
||||
return "";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
//private Image resizeImage(Image imgToResize, Size size)
|
||||
//{
|
||||
// return (Image)new Bitmap(imgToResize, size);
|
||||
|
||||
//}
|
||||
public string Generate_Word(string base64, clsDocData docdata)
|
||||
{
|
||||
string formattype = "";
|
||||
MemoryStream ms = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(base64));
|
||||
WordDocument document = new WordDocument(ms, FormatType.Automatic);
|
||||
CompatibilityMode compatibilityMode = document.Settings.CompatibilityMode;
|
||||
switch (compatibilityMode)
|
||||
{
|
||||
case CompatibilityMode.Word2010:
|
||||
document.Settings.CompatibilityMode = CompatibilityMode.Word2010;
|
||||
break;
|
||||
case CompatibilityMode.Word2013:
|
||||
|
||||
break;
|
||||
default:
|
||||
document.Settings.CompatibilityMode = CompatibilityMode.Word2010;
|
||||
break;
|
||||
}
|
||||
if (compatibilityMode == CompatibilityMode.Word2010) { document.Settings.CompatibilityMode = CompatibilityMode.Word2010; }
|
||||
if (compatibilityMode > CompatibilityMode.Word2010) { document.Settings.CompatibilityMode = CompatibilityMode.Word2010; }
|
||||
formattype = document.ActualFormatType.ToString();
|
||||
var formattype_original = document.ActualFormatType;
|
||||
|
||||
foreach (clsDocValue dv in docdata.DocValues)
|
||||
{
|
||||
if (docdata.Form_ohne_Unterschrift == "True")
|
||||
{
|
||||
foreach (clsDocValue dv2 in docdata.DocValues)
|
||||
{
|
||||
if (dv2.TMBeginn.ToString() == "TGEDKVornameNameLinksB99") { dv2.Value = "(Gültig ohne Unterschrift)"; }
|
||||
if (dv2.TMBeginn.ToString() == "TGEDKVornameNameRechtsB99") { dv2.Value = ""; }
|
||||
if (dv2.TMBeginn.ToString() == "TGEDKFunktionLinksB99") { dv2.Value = ""; }
|
||||
if (dv2.TMBeginn.ToString() == "TGEDKFunktionRechtsB99") { dv2.Value = ""; }
|
||||
}
|
||||
}
|
||||
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() == "")
|
||||
{
|
||||
try
|
||||
@@ -83,21 +157,76 @@ namespace DOCGEN.Klassen
|
||||
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
|
||||
if ((dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99" || dv.TMBeginn.ToString() == "TGEDKVornameNameRechtsB99") && docdata.As_Faksimile == "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(); }
|
||||
}
|
||||
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
|
||||
IWParagraph paragraph = new WParagraph(document);
|
||||
paragraph.AppendBreak(BreakType.LineBreak);
|
||||
System.Drawing.Image image = System.Drawing.Image.FromFile(@"x:\docdemo\unterschriften\kube1.png");
|
||||
paragraph.AppendPicture(image);
|
||||
|
||||
if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
|
||||
{
|
||||
string unterschrift = get_unterschrift(docdata.Unterschrift_Links);
|
||||
if (unterschrift != "")
|
||||
{
|
||||
string ss = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(unterschrift);
|
||||
|
||||
MemoryStream mssign = new MemoryStream(Convert.FromBase64String(ss));
|
||||
System.Drawing.Image img = System.Drawing.Image.FromStream(mssign);
|
||||
paragraph.AppendPicture(img);
|
||||
mssign.Dispose();
|
||||
img.Dispose();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
string unterschrift = get_unterschrift(docdata.Unterschrift_Rechts);
|
||||
if (unterschrift != "")
|
||||
{
|
||||
string ss = Newtonsoft.Json.JsonConvert.DeserializeObject<string>(unterschrift);
|
||||
MemoryStream mssign = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(ss));
|
||||
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());
|
||||
bookmarkNavigator.InsertParagraph(paragraph);
|
||||
if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
|
||||
{
|
||||
paragraph.AppendBreak(BreakType.LineBreak);
|
||||
paragraph.AppendText(funktionlinks);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
paragraph.AppendBreak(BreakType.LineBreak);
|
||||
paragraph.AppendText(funktionrechts);
|
||||
|
||||
}
|
||||
//paragraph.rep
|
||||
bookmarkNavigator.InsertParagraph(paragraph);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
|
||||
bookmarkNavigator.InsertText(dv.Value.ToString());
|
||||
if (docdata.As_Faksimile=="True" && (dv.TMBeginn.ToString() == "TGEDKFunktionLinksB99" || dv.TMBeginn.ToString() == "TGEDKFunktionRechtsB99"))
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
|
||||
bookmarkNavigator.InsertText(dv.Value.ToString());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
Reference in New Issue
Block a user