Update 20241229

This commit is contained in:
Stefan Hutter
2024-12-29 23:03:57 +01:00
parent 4455cca85a
commit 2feaf6cc29
140 changed files with 12447 additions and 556552 deletions
+18
View File
@@ -48,11 +48,24 @@
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>..\..\..\EDOKA\Cleint_Erneuerung_DMS_Framwork48 - Kopie\EDOKA\bin\Microsoft.Office.Interop.Word.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" />
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DOCGEN\bin\Debug\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>True</EmbedInteropTypes>
<HintPath>..\..\..\EDOKA\Cleint_Erneuerung_DMS_Framwork48\EDOKA\bin\Office.dll</HintPath>
</Reference>
<Reference Include="Syncfusion.Compression.Base, Version=28.1462.33.0, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\DOCGEN\bin\Debug\Syncfusion.Compression.Base.dll</HintPath>
</Reference>
<Reference Include="Syncfusion.DocIO.Base, Version=28.1462.33.0, Culture=neutral, PublicKeyToken=3d67ed1f87d44c89, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files (x86)\Syncfusion\Essential Studio\Windows\28.1.33\Assemblies\4.6.2\Syncfusion.DocIO.Base.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
@@ -66,12 +79,17 @@
<ItemGroup>
<Compile Include="clsoffice.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Strings.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Helper\Helper.csproj">
<Project>{216c1660-5ad5-4a5e-80e4-150ccf673cbc}</Project>
<Name>Helper</Name>
</ProjectReference>
<ProjectReference Include="..\Logging\Logging.csproj">
<Project>{9a58502e-ac8b-4103-ae5e-f4bac4b65820}</Project>
<Name>Logging</Name>
</ProjectReference>
<ProjectReference Include="..\Model\Model.csproj">
<Project>{a1fd0973-89a7-4588-877d-373835d6e00c}</Project>
<Name>Model</Name>
+1
View File
@@ -0,0 +1 @@

Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
Binary file not shown.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+571 -85
View File
@@ -16,6 +16,10 @@ using Font = System.Drawing.Font;
using System.Xml.Linq;
using BarcodeLib;
using System.Drawing.Drawing2D;
using Syncfusion.DocIO;
using Syncfusion.DocIO.DLS;
using System.IO;
using Microsoft.VisualBasic;
namespace OnDocOffice
{
@@ -83,6 +87,168 @@ namespace OnDocOffice
{
}
public bool IsNumeric(string value)
{
return value.All(char.IsNumber);
}
public string Bar25I(string BarTextIn)
{
string Bar25IRet = default;
string BarTextOut = "";
string TempString = "";
long CharValue = 0;
string barcodeout = "";
// Initialize input and output strings
BarTextOut = "";
BarTextIn = BarTextIn.Trim();
// Throw away non-numeric data
TempString = "";
for (int II = 1, loopTo = BarTextIn.Length; II <= loopTo; II++)
{
if (IsNumeric(BarTextIn.Substring(II - 1, 1)))
{
TempString = TempString + BarTextIn.Substring(II - 1, 1);
}
}
// If not an even number of digits, add a leading 0
if (TempString.Length % 2 == 1)
{
TempString = "0" + TempString;
}
// Break digit pairs up and convert to characters- build output string
for (int II = 1, loopTo1 = TempString.Length; II <= loopTo1; II += 2)
{
// Break string into pairs of digits and get value
CharValue = Convert.ToInt32(TempString.Substring(II - 1, 2));
// translate value to ASCII and save in BarTextOut
if (CharValue < 90)
{
BarTextOut = BarTextOut + (char)(CharValue + 33);
}
else
{
BarTextOut = BarTextOut + (char)(CharValue + 71);
}
}
// Build ouput string, trailing space for Windows rasterization bug
barcodeout = "{" + BarTextOut + "} ";
// Return the string
Bar25IRet = barcodeout;
return Bar25IRet;
}
public string convert_excel(string x)
{
string s;
string s1;
int i;
s = x;
i = Microsoft.VisualBasic.Strings.InStr(s, Strings.Chr(13).ToString());
while (i > 0)
{
s = Strings.Left(s, i - 1) + "#" + Strings.Right(s, Strings.Len(s) - (i));
if (Strings.Mid(s, i + 1, 1) == Strings.Chr(10).ToString())
s = Strings.Left(s, i) + Strings.Right(s, Strings.Len(s) - (i + 1));
i = Microsoft.VisualBasic.Strings.InStr(s, Strings.Chr(13).ToString());
}
i = Microsoft.VisualBasic.Strings.InStr(s, "#");
while (i > 0)
{
s = Strings.Left(s, i - 1) + Strings.Chr(10) + Strings.Right(s, Strings.Len(s) - (i));
i = Microsoft.VisualBasic.Strings.InStr(s, "#");
}
return s;
}
public string Generate_Excel_in_Office(ref clsDocData docdata, ref clsdok dok, string vorlage, string connectionstring, string tempdir, string dokumentid, string apptype, string extension, int OfficeSleep, int bookmarks_docio)
{
this.dokumentid = docdata.Dokumentid;
string filename = tempdir + dokumentid + "." + extension;
bool cursor = false;
int sheetcursor = 0;
int i = 0;
Helper.clsFileHelper fh = new Helper.clsFileHelper();
fh.SaveBase64ToFile(vorlage, filename);
Start_Application();
workBook = excel.Workbooks.Open(filename);
foreach (Worksheet ws in workBook.Sheets)
{
ws.Activate();
foreach (clsDocValue dv in docdata.DocValues)
{
try
{
if (dv.TMBeginn == "TGEDKCursor" || dv.TMBeginn == "TGEDKCursorB" || dv.FieldName == "TGEDKCursor" || dv.FieldName == "TGEDKCursorB")
{
try
{
excel.Range[workBook.Names.Item(dv.FieldName).NameLocal].Select();
cursor = true;
sheetcursor = i;
}
catch
{
}
}
else
{
excel.Range[workBook.Names.Item(dv.FieldName).NameLocal].Select();
excel.ActiveCell.FormulaR1C1 = convert_excel(dv.Value);
}
}
catch { }
}
i = i + 1;
}
if (docdata.Barcode == true)
{
string barcode = Bar25I(dokumentid.Substring(6, 16));
foreach (Worksheet ws in workBook.Sheets)
{
ws.Activate();
int i1 = 0;
int i2 = 0;
for (i1 = 1; i1 < workBook.Names.Count; i1++)
{
string na = workBook.Names.Item(i1).NameLocal;
if (na.Substring(0, 7) == "TGEDKBC")
{
excel.Range[excel.Names.Item(na).NameLocal].Select();
excel.ActiveCell.FormulaR1C1 = barcode;
try
{
excel.Selection.Characters.Font.Name = docdata.barcode_font;
}
catch { }
}
if (na.Substring(0, 7) == "TGEDKAR")
{
excel.Range[excel.Names.Item(na).NameLocal].Select();
excel.ActiveCell.FormulaR1C1 = convert_excel(docdata.barcode_zusatz);
}
}
}
}
workBook.Save();
workBook.Close();
workBook = null;
string b64 = fh.Base64FromFile(filename);
excel.Workbooks.Open(filename);
excel.Visible= true;
excel = null;
Logging.Logging.Debug("Generierung abgeschlossen", "clsOffice", dokumentid);
return b64;
//return fh.Base64FromFile(filename);
}
}
public class clsWordEdit
@@ -92,7 +258,7 @@ namespace OnDocOffice
public string dokumentid { get; set; }
public bool is_protected { get; set; } = false;
public
public
Microsoft.Office.Interop.Word.Application word;
Microsoft.Office.Interop.Word.Document worddoc;
Document doc = null;
@@ -124,6 +290,7 @@ namespace OnDocOffice
{
Start_Application();
doc = word.Documents.Open(filename);
word.Visible = true;
if (runmacros == true)
@@ -166,11 +333,11 @@ namespace OnDocOffice
public void run_macros(ref clsDocData docdata, string connectionstring)
{
Database.DB db = new Database.DB(connectionstring);
db.Get_Tabledata("select * from view_idv_makros where office_vorlagenr="+docdata.VorlageNr.ToString()+" order by reihenfolge asc", false, true);
db.Get_Tabledata("select * from view_idv_makros where office_vorlagenr=" + docdata.VorlageNr.ToString() + " order by reihenfolge asc", false, true);
if (db.dsdaten.Tables[0].Rows.Count > 0) { word.Visible = true; word.Activate(); }
foreach (DataRow dr in db.dsdaten.Tables[0].Rows)
{
if (dr[0].ToString() == "DokumentSchuetzen")
if (dr[0].ToString() == "DokumentSchuetzen")
{
worddoc.Range(0, 0).Select();
worddoc.Protect(Type: Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyFormFields, NoReset: true, Password: "Australia");
@@ -183,21 +350,91 @@ namespace OnDocOffice
}
}
public string Generate_Word_in_Office(ref clsDocData docdata, ref clsdok dok, string vorlage, string connectionstring, string tempdir, string dokumentid, string apptype, string extension, int OfficeSleep)
public string Generate_Word_in_Office(ref clsDocData docdata, ref clsdok dok, string vorlage, string connectionstring, string tempdir, string dokumentid, string apptype, string extension, int OfficeSleep, int bookmarks_docio)
{
this.dokumentid = docdata.Dokumentid;
string filename = tempdir + dokumentid + "." + extension;
int pos = 0;
int pos2 = 0;
Helper.clsFileHelper fh = new Helper.clsFileHelper();
fh.SaveBase64ToFile(vorlage, filename);
Logging.Logging.Debug("Generate_Word_in_Office", "clsOffice", dokumentid);
Start_Application();
Thread.Sleep(OfficeSleep);
Logging.Logging.Debug("Ende Start_Application", "clsOffice", dokumentid);
// Thread.Sleep(OfficeSleep);
worddoc = word.Documents.Open(filename);
string ext = System.IO.Path.GetExtension(filename).ToUpper();
switch (word.ActiveDocument.CompatibilityMode)
{
case 14:
switch (ext)
{
case ".DOCX":
word.ActiveDocument.SaveAs2(filename, CompatibilityMode: 14, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLDocument);
break;
case ".DOCM":
word.ActiveDocument.SaveAs2(filename, CompatibilityMode: 14, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLDocumentMacroEnabled);
break;
case ".DOTX":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLTemplate, CompatibilityMode: 14);
break;
case "DOTM":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLTemplateMacroEnabled, CompatibilityMode: 14);
break;
}
break;
case 15:
case 16:
case 17:
case 18:
switch (ext)
{
case ".DOCX":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLDocument);
break;
case ".DOCM":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLDocumentMacroEnabled);
break;
case ".DOTX":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLTemplate);
break;
case "DOTM":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLTemplateMacroEnabled);
break;
}
break;
default:
switch (ext)
{
case ".DOCX":
word.ActiveDocument.SaveAs2(filename, CompatibilityMode: 11, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLDocument);
break;
case ".DOCM":
word.ActiveDocument.SaveAs2(filename, CompatibilityMode: 11, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLDocumentMacroEnabled);
break;
case ".DOTX":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLTemplate, CompatibilityMode: 11);
break;
case "DOTM":
word.ActiveDocument.SaveAs2(filename, FileFormat: Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatXMLTemplateMacroEnabled, CompatibilityMode: 11);
break;
}
break;
}
Logging.Logging.Debug("Word Open", "clsOffice", dokumentid);
Thread.Sleep(OfficeSleep);
Logging.Logging.Debug("Word befüllen", "clsOffice", dokumentid);
if (worddoc.ProtectionType != Microsoft.Office.Interop.Word.WdProtectionType.wdNoProtection)
{
@@ -210,46 +447,50 @@ namespace OnDocOffice
{
Kopfzeile_generieren();
}
foreach (clsDocValue dv in docdata.DocValues)
//word.Visible = false;
word.ScreenUpdating = false;
if (bookmarks_docio == 1)
{
try
worddoc.Save();
worddoc.Close();
Fill_Bookmarks_from_Word(filename, docdata, "", "");
worddoc = word.Documents.Open(filename);
}
else
{
foreach (clsDocValue dv in docdata.DocValues)
{
if (dv.TMBeginn.ToString() == "TGEDKCursor" || dv.TMBeginn.ToString() == "TGEDKCursorB" ||
dv.FieldName.ToString() == "TGEDKCursor" || dv.FieldName.ToString() == "TGEDKCursorB") { cursorpositionieren = true; }
}
catch { }
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() == "")
{
try
{
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
word.Selection.Text = dv.Value.ToString();
if (dv.TMBeginn.ToString() == "TGEDKCursor" || dv.TMBeginn.ToString() == "TGEDKCursorB" ||
dv.FieldName.ToString() == "TGEDKCursor" || dv.FieldName.ToString() == "TGEDKCursorB") { cursorpositionieren = true; }
}
catch { }
Logging.Logging.Debug(dv.TMBeginn.ToString() + " / " + dv.TMEnd.ToString(), dv.Value.ToString(), dokumentid);
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() == "")
{
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
pos2 = word.Selection.End;
if (dv.TMBeginn.ToString().Substring(0, 19) == "XTGEDKDirektTelefonB" ||
dv.TMBeginn.ToString().Substring(0, 23) == "XTGEDKVornameNameBetreue" ||
dv.TMBeginn.ToString().Substring(0, 19) == "XTGEDKDirektTelefonZ")
try
{
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.TypeText(Text: "");
word.Selection.SetRange(Start: pos + 1, End: pos2 + 1);
var withBlock = worddoc.Bookmarks;
withBlock.Add(Range: word.Selection.Range, Name: dv.TMBeginn.ToString());
withBlock.DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName;
withBlock.ShowHidden = false;
}
else
{
if (dv.TMBeginn.ToString().Substring(0, 22) == "XTGEDKDirektTelefonDokZ" ||
dv.TMBeginn.ToString().Substring(0, 20) == "XTGEDKVornameNameDokZ")
//Logging.Logging.Debug(dv.TMBeginn.ToString() ,"Select" , dokumentid);
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
//Logging.Logging.Debug(dv.TMBeginn.ToString(), "Select-End", dokumentid);
word.Selection.Text = dv.Value.ToString();
//Logging.Logging.Debug(dv.TMBeginn.ToString(), "Text-End", dokumentid);
//pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
//pos2 = word.Selection.End;
Logging.Logging.Debug(dv.TMBeginn.ToString(), "Selection-End", dokumentid);
//------------------------------
if (dv.TMBeginn.ToString().Substring(0, 19) == "XTGEDKDirektTelefonB" ||
dv.TMBeginn.ToString().Substring(0, 23) == "XTGEDKVornameNameBetreue" ||
dv.TMBeginn.ToString().Substring(0, 19) == "XTGEDKDirektTelefonZ")
{
word.Selection.Text = dv.Value.ToString();
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
pos2 = word.Selection.End;
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.TypeText(Text: "");
word.Selection.SetRange(Start: pos + 1, End: pos2 + 1);
@@ -261,63 +502,96 @@ namespace OnDocOffice
}
else
{
//objWord.Visible = True
// objWord.Selection.SetRange(Start:= pos, End:= pos2)
// With docWord.Bookmarks
// .Add(Range:= objWord.Selection.Range, Name:= Dokumentdaten.Rows(i).Item("beginntextmarke"))
// .DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName
// .ShowHidden = False
// End With
if (dv.TMBeginn.ToString().Substring(0, 22) == "XTGEDKDirektTelefonDokZ" ||
dv.TMBeginn.ToString().Substring(0, 20) == "XTGEDKVornameNameDokZ")
{
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
pos2 = word.Selection.End;
word.Selection.Text = dv.Value.ToString();
word.Selection.MoveLeft(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.TypeText(Text: "");
word.Selection.SetRange(Start: pos + 1, End: pos2 + 1);
var withBlock = worddoc.Bookmarks;
withBlock.Add(Range: word.Selection.Range, Name: dv.TMBeginn.ToString());
withBlock.DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName;
withBlock.ShowHidden = false;
}
else
{
//objWord.Visible = True
// objWord.Selection.SetRange(Start:= pos, End:= pos2)
// With docWord.Bookmarks
// .Add(Range:= objWord.Selection.Range, Name:= Dokumentdaten.Rows(i).Item("beginntextmarke"))
// .DefaultSorting = Microsoft.Office.Interop.Word.WdBookmarkSortBy.wdSortByName
// .ShowHidden = False
// End With
}
}
//-------------------------------
//objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 2, Extend:= Microsoft.Office.Interop.Word.WdMovementType.wdExtend)
// If objWord.Selection.Text = " " Then
// objWord.Selection.MoveRight(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1, Extend:= Microsoft.Office.Interop.Word.WdMovementType.wdExtend)
// objWord.Selection.Delete(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// End If
}
//objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 2, Extend:= Microsoft.Office.Interop.Word.WdMovementType.wdExtend)
// If objWord.Selection.Text = " " Then
// objWord.Selection.MoveRight(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// objWord.Selection.MoveLeft(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1, Extend:= Microsoft.Office.Interop.Word.WdMovementType.wdExtend)
// objWord.Selection.Delete(Unit:= Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count:= 1)
// End If
catch { }
}
catch { }
}
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() != "")
{
try
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() != "")
{
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
worddoc.Bookmarks[dv.TMEnd.ToString()].Select();
pos2 = worddoc.Bookmarks[dv.TMEnd.ToString()].Start;
word.Selection.SetRange(pos, pos2);
word.Selection.TypeText(Text: dv.Value.ToString());
try
{
worddoc.Bookmarks[dv.TMBeginn.ToString()].Select();
pos = worddoc.Bookmarks[dv.TMBeginn.ToString()].Start;
worddoc.Bookmarks[dv.TMEnd.ToString()].Select();
pos2 = worddoc.Bookmarks[dv.TMEnd.ToString()].Start;
word.Selection.SetRange(pos, pos2);
word.Selection.TypeText(Text: dv.Value.ToString());
}
catch { }
}
catch { }
}
if (dv.FieldName.ToString() != "")
{
try
if (dv.FieldName.ToString() != "")
{
worddoc.FormFields[dv.FieldName.ToString()].Result = dv.Value;
try
{
worddoc.FormFields[dv.FieldName.ToString()].Result = dv.Value;
}
catch { }
}
catch { }
}
}
word.ScreenUpdating = true;
Logging.Logging.Debug("Word Befüllen Ende", "clsOffice", dokumentid);
if (docdata.Barcode == true) { Generate_Barcodes(ref docdata); }
Logging.Logging.Debug("Barcodes", "clsOffice", dokumentid);
if (is_protected)
{
worddoc.Protect(Type: Microsoft.Office.Interop.Word.WdProtectionType.wdAllowOnlyFormFields, NoReset: true, Password: "Australia");
}
//word.Visible = true;
Logging.Logging.Debug("Start Macros", "clsOffice", dokumentid);
run_macros(ref docdata, connectionstring);
worddoc.Save();
Logging.Logging.Debug("Word Saved", "clsOffice", dokumentid);
worddoc.Close();
Logging.Logging.Debug("Word geschlossen", "clsOffice", dokumentid);
Thread.Sleep(OfficeSleep);
string b64 = fh.Base64FromFile(filename);
word.Documents.Open(filename);
Logging.Logging.Debug("Word geöffnet", "clsOffice", dokumentid);
worddoc = null;
word = null;
Logging.Logging.Debug("Generierung abgeschlossen", "clsOffice", dokumentid);
return b64;
//return fh.Base64FromFile(filename);
}
@@ -357,7 +631,7 @@ namespace OnDocOffice
}
private void HeaderFooterAnzeigen()
{
if (word.ActiveWindow.View.SplitSpecial != Microsoft.Office.Interop.Word.WdSpecialPane.wdPaneNone)
{
word.ActiveWindow.Panes[2].Close();
@@ -413,7 +687,7 @@ namespace OnDocOffice
word.Selection.HomeKey(Unit: Microsoft.Office.Interop.Word.WdUnits.wdLine, Extend: Microsoft.Office.Interop.Word.WdMovementType.wdExtend);
word.Selection.Delete(Unit: Microsoft.Office.Interop.Word.WdUnits.wdCharacter, Count: 1);
word.Selection.InlineShapes.AddPicture(filename, LinkToFile: false, SaveWithDocument: true);
break;
}
case 2:
@@ -466,7 +740,7 @@ namespace OnDocOffice
return (System.Drawing.Image)b;
}
private void Generate_Barcodes(ref clsDocData docdata)
{
{
float left = 360;
float top = 793;
float width = 200;
@@ -476,9 +750,13 @@ namespace OnDocOffice
int pages = worddoc.ComputeStatistics(stat, null);
for (int i = 1; i <= pages; i++)
{
string xname = i.ToString().Trim();
word.Selection.GoTo(What:Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage,xname);
try
{
word.Selection.GoTo(What: Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage, xname);
}
catch { }
HeaderFooterAnzeigen();
if (docdata.barcode_type == "1")
{
@@ -491,7 +769,8 @@ namespace OnDocOffice
System.IO.File.Delete(word.ActiveDocument.FullName + ".png");
return;
} else
}
else
{
//System.Drawing.Image barcodeimage;
//BarcodeLib.Barcode Barcode = new BarcodeLib.Barcode();
@@ -502,7 +781,7 @@ namespace OnDocOffice
//return;
}
word.Selection.HeaderFooter.Shapes.AddTextbox(Microsoft.Office.Core.MsoTextOrientation.msoTextOrientationHorizontal, docdata.barcode_left, docdata.barcode_top, docdata.barcode_width, docdata.barcode_height).Select();
word.Selection.HeaderFooter.Shapes.AddTextbox(Microsoft.Office.Core.MsoTextOrientation.msoTextOrientationHorizontal, docdata.barcode_left, docdata.barcode_top, docdata.barcode_width, docdata.barcode_height).Select();
word.Selection.ShapeRange.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse;
word.Selection.ShapeRange.TextFrame.MarginLeft = 0;
@@ -510,7 +789,7 @@ namespace OnDocOffice
word.Selection.ShapeRange.TextFrame.MarginRight = 0;
word.Selection.ShapeRange.TextFrame.MarginBottom = 0;
word.ActiveDocument.Tables.Add(Range:word.Selection.Range, NumRows:1, NumColumns:1);
word.ActiveDocument.Tables.Add(Range: word.Selection.Range, NumRows: 1, NumColumns: 1);
if (docdata.barcode_horizontal == 0)
{
@@ -525,7 +804,7 @@ namespace OnDocOffice
word.Selection.Tables[1].Rows.Height = 150;
}
word.Selection.TypeText(Bar25I(dokumentid.Substring(6,16)));
word.Selection.TypeText(Bar25I(dokumentid.Substring(6, 16)));
word.Selection.HomeKey(Unit: Microsoft.Office.Interop.Word.WdUnits.wdLine, Extend: Microsoft.Office.Interop.Word.WdMovementType.wdExtend);
word.Selection.Font.Name = docdata.barcode_font;
word.Selection.Font.Size = docdata.barcode_fontsize;
@@ -557,9 +836,9 @@ namespace OnDocOffice
TempString = "";
for (int II = 1, loopTo = BarTextIn.Length; II <= loopTo; II++)
{
if (IsNumeric(BarTextIn.Substring(II-1,1)))
if (IsNumeric(BarTextIn.Substring(II - 1, 1)))
{
TempString = TempString + BarTextIn.Substring(II - 1 ,1);
TempString = TempString + BarTextIn.Substring(II - 1, 1);
}
}
@@ -573,11 +852,11 @@ namespace OnDocOffice
for (int II = 1, loopTo1 = TempString.Length; II <= loopTo1; II += 2)
{
// Break string into pairs of digits and get value
CharValue = Convert.ToInt32(TempString.Substring(II-1,2));
CharValue = Convert.ToInt32(TempString.Substring(II - 1, 2));
// translate value to ASCII and save in BarTextOut
if (CharValue < 90)
{
BarTextOut = BarTextOut + (char)(CharValue+33);
BarTextOut = BarTextOut + (char)(CharValue + 33);
}
else
{
@@ -591,7 +870,214 @@ namespace OnDocOffice
// Return the string
Bar25IRet = barcodeout;
return Bar25IRet;
}
public string get_unterschrift(string input)
{
return "";
}
public void Replace_Text(ref WordDocument wordDocument, string TextToReplace, string NewText)
{
wordDocument.Replace(TextToReplace, NewText, true, true);
}
public void ReplaceBookmarkContent(ref WordDocument document, String bookmark1, String bookmark2, String replacementContent)
{
//Temp Bookmark.
String tempBookmarkName = "tempBookmark";
#region Insert bookmark start after bookmark1.
//Get the bookmark instance by using FindByName method of BookmarkCollection with bookmark name.
Syncfusion.DocIO.DLS.Bookmark firstBookmark = document.Bookmarks.FindByName(bookmark1);
//Access the bookmark ends owner paragraph by using bookmark.
WParagraph firstBookmarkOwnerPara = firstBookmark.BookmarkEnd.OwnerParagraph;
//Get the index of bookmark end of bookmark1.
int index = firstBookmarkOwnerPara.Items.IndexOf(firstBookmark.BookmarkEnd);
//Create and add new bookmark start after bookmark1.
BookmarkStart newBookmarkStart = new BookmarkStart(document, tempBookmarkName);
firstBookmarkOwnerPara.ChildEntities.Insert(index + 1, newBookmarkStart);
#endregion
#region Insert bookmark end before bookmark2.
//Get the bookmark instance by using FindByName method of BookmarkCollection with bookmark name.
Syncfusion.DocIO.DLS.Bookmark secondBookmark = document.Bookmarks.FindByName(bookmark2);
//Access the bookmark starts owner paragraph by using bookmark.
WParagraph secondBookmarkOwnerPara = secondBookmark.BookmarkStart.OwnerParagraph;
//Get the index of bookmark start of bookmark2.
index = secondBookmarkOwnerPara.Items.IndexOf(secondBookmark.BookmarkStart);
//Create and add new bookmark end before bookmark2.
BookmarkEnd newBookmarkEnd = new BookmarkEnd(document, tempBookmarkName);
secondBookmarkOwnerPara.ChildEntities.Insert(index, newBookmarkEnd);
#endregion
#region Select bookmark content and replace.
//Create the bookmark navigator instance to access the newly created bookmark.
BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);
//Move the virtual cursor to the location of the temp bookmark.
bookmarkNavigator.MoveToBookmark(tempBookmarkName);
//Replace the bookmark content.
bookmarkNavigator.ReplaceBookmarkContent(replacementContent, true);
#endregion
#region Remove that temporary bookmark.
//Get the bookmark instance by using FindByName method of BookmarkCollection with bookmark name.
Syncfusion.DocIO.DLS.Bookmark bookmark = document.Bookmarks.FindByName(tempBookmarkName);
//Remove the temp bookmark named from Word document.
document.Bookmarks.Remove(bookmark);
#endregion
}
public void Fill_Bookmarks_from_Word(string filename, clsDocData docdata, string img_UL = "", string img_UR = "")
{
using (FileStream inputFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) ;
WordDocument document = new WordDocument();
document.Open(filename, FormatType.Automatic);
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 = ""; }
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
{
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);
if (dv.TMBeginn.ToString() == "TGEDKVornameNameLinksB99")
{
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")
{
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"))
{
}
else
{
bookmarkNavigator.MoveToBookmark(dv.TMBeginn.ToString());
bookmarkNavigator.InsertText(dv.Value.ToString());
}
}
}
catch { }
}
if (dv.TMBeginn.ToString() != "" && dv.TMEnd.ToString() != "")
{
try
{
ReplaceBookmarkContent(ref document, dv.TMBeginn.ToString(), dv.TMEnd.ToString(), dv.Value.ToString());
}
catch { }
}
if (dv.FieldName.ToString() != "")
{
if (dv.FieldName.ToString().Substring(0, 2) == "$$")
{
Replace_Text(ref document, dv.FieldName.ToString(), dv.Value.ToString());
}
try
{
foreach (WSection section in document.Sections)
//Iterates through section child elements
foreach (WTextBody textBody in section.ChildEntities)
{
//Iterates through form fields
foreach (WFormField formField in textBody.FormFields)
{
if (formField.Name == dv.FieldName.ToString())
{
formField.Text = dv.Value.ToString();
break;
}
}
}
}
catch { }
}
}
document.Save(filename);
document.Dispose();
document = null;
return;
}
}
}
}
@@ -1 +1 @@
8713253443b4d3f4dba2f9ae33aaee946dd31de434ce61f7edf0a6e542733710
eb32d9bf6208a44886b912603a96aa2b1a08a09956beecde6f8f08a4d00296ba
@@ -5,18 +5,19 @@ E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\OnDocOffice.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\BarcodeLib.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Database.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Helper.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Logging.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Model.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\NLog.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\NLog.Database.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\FastReport.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\QRCoder.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\VBFileManagement.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Logging.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\FastReport.Compat.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\FastReport.Bars.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\FastReport.DataVisualization.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\FastReport.Editor.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Helper.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Logging.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Model.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\BarcodeLib.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Database.pdb
@@ -25,7 +26,14 @@ E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\NLog.Database.xml
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\FastReport.xml
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\VBFileManagement.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\VBFileManagement.xml
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Logging.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\obj\Debug\OnDocOff.BFE3F2F7.Up2Date
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\obj\Debug\OnDocOffice.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\obj\Debug\OnDocOffice.pdb
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Newtonsoft.Json.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Syncfusion.Compression.Base.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Syncfusion.DocIO.Base.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Syncfusion.OfficeChart.Base.dll
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Newtonsoft.Json.xml
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Syncfusion.Compression.Base.xml
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Syncfusion.DocIO.Base.xml
E:\Software-Projekte\OnDoc\OnDoc\OnDocOffice\bin\Debug\Syncfusion.OfficeChart.Base.xml
Binary file not shown.
Binary file not shown.