Update 20250606

This commit is contained in:
Stefan Hutter
2025-06-06 09:13:32 +02:00
parent 10343fcbab
commit 85ff87dc62
106 changed files with 1312 additions and 298 deletions

View File

@@ -119,7 +119,7 @@ if (docdata.Bezeichnung.Contains("QDF"))
dt.Rows[0][0] = fh.Base64FromFile(filename);
ws = null;
}
dok.dokument = sfword.Generate_Word(dt.Rows[0][0].ToString(), docdata);
dok.dokument = sfword.Generate_Word(dt.Rows[0][0].ToString(), docdata,"","","",false,editdoc);
Logging.Logging.Debug("Generate_Word", "Ende", dokumentid);
Thread.Sleep(OfficeSleep);
}

View File

@@ -226,7 +226,7 @@ namespace DOCGEN.Klassen
// 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)
public string Generate_Word(string base64, clsDocData docdata, string img_UL = "", string img_UR = "", string img_faktura = "", bool serienbrief=false, bool editdoc=false)
{
string formattype = "";
MemoryStream ms = new MemoryStream(Helper.EncodeExtensions.DecodeBase642ByteArray(base64));
@@ -275,7 +275,8 @@ namespace DOCGEN.Klassen
if (docdata.Barcode == true)
{
Insert_Barcode(document, docdata);
//20250531 - Barcode nicht beim Serienbrief
if (!serienbrief && !editdoc) Insert_Barcode(document, docdata);
}
if (docdata.PrintLogo == true)
{
@@ -543,26 +544,56 @@ namespace DOCGEN.Klassen
}
if (dm.BookMark != "")
{
string variable = "";
string inhalt = "";
if (dm.BookMark.Contains(":"))
{
string phrase = dm.BookMark;
string[] parts = phrase.Split(':');
variable= parts[0];
inhalt= parts[1];
} else { }
if (document.ProtectionType == ProtectionType.NoProtection)
{
WParagraph paragraph = document.Sections[0].Paragraphs[0] as WParagraph;
//BookmarkStart bookmarkStart = new BookmarkStart(document, dm.BookMark);
//paragraph.Items.Insert(0, bookmarkStart);
BookmarkStart bookmarkStart = new BookmarkStart(document, dm.BookMark);
BookmarkEnd bookmarkEnd = new BookmarkEnd(document, dm.BookMark);
paragraph.Items.Insert(0, bookmarkStart);
paragraph.Items.Insert(2, bookmarkEnd);
if (variable != "")
{
try
{
document.Variables.Add(variable, inhalt);
}
catch { }
}
if (variable == "")
{
WParagraph paragraph = document.Sections[0].Paragraphs[0] as WParagraph;
BookmarkStart bookmarkStart = new BookmarkStart(document, dm.BookMark);
BookmarkEnd bookmarkEnd = new BookmarkEnd(document, dm.BookMark);
paragraph.Items.Insert(0, bookmarkStart);
paragraph.Items.Insert(1, bookmarkEnd);
}
}
else
{
document.Protect(ProtectionType.NoProtection, "Australia");
WParagraph paragraph = document.Sections[0].Paragraphs[0] as WParagraph;
BookmarkStart bookmarkStart = new BookmarkStart(document, dm.BookMark);
BookmarkEnd bookmarkEnd = new BookmarkEnd(document, dm.BookMark);
paragraph.Items.Insert(0, bookmarkStart);
paragraph.Items.Insert(2, bookmarkEnd);
if (variable != "")
{
try
{
document.Variables.Add(variable, inhalt);
}
catch { }
}
if (variable == "")
{
WParagraph paragraph = document.Sections[0].Paragraphs[0] as WParagraph;
BookmarkStart bookmarkStart = new BookmarkStart(document, dm.BookMark);
BookmarkEnd bookmarkEnd = new BookmarkEnd(document, dm.BookMark);
paragraph.Items.Insert(0, bookmarkStart);
paragraph.Items.Insert(1, bookmarkEnd);
}
document.Protect(ProtectionType.AllowOnlyFormFields, "Australia");
}
}
@@ -885,7 +916,112 @@ namespace DOCGEN.Klassen
}
}
public System.Drawing.Image Get_Barcodeimage(clsDocData docData)
{
System.Drawing.Image barcodeimage;
BarcodeLib.Barcode Barcode = new BarcodeLib.Barcode();
switch (docData.barcode_type)
{
case "0":
barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5, docData.Dokumentid.Substring(6, 16), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.Zusatz_Font, Convert.ToInt32(docData.Zusatz_FontSize), 0);
BarcodeLib.clsBarI25 barbarcode = new BarcodeLib.clsBarI25();
if (docData.barcode_horizontal == 0)
{
barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 66, 600, 100, docData.barcode_zusatz, "Futur Book", 16, 270);
}
else
{
barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 66, 600, 100, docData.barcode_zusatz, "Futur Book", 16, 0);
}
//barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5C, docData.Dokumentid.Substring(9, 13), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.barcode_font, Convert.ToInt32(docData.barcode_fontsize), 0);
return barcodeimage;
break;
case "1":
barcodeimage = Barcode.Get_Datamatrix(DataMatrix.net.DmtxScheme.DmtxSchemeAscii, docData.barcode_content, 6, 6, 0, "Right", docData.barcode_text + docData.barcode_zusatz, docData.Zusatz_Font, docData.Zusatz_FontSize);
barcodeimage = AutoSizeImage(barcodeimage, docData.barcode_width, docData.barcode_height, false);
return barcodeimage;
break;
default:
barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5C, docData.Dokumentid.Substring(9, 13), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.barcode_font, Convert.ToInt32(docData.barcode_fontsize), 0);
return barcodeimage;
break;
}
// System.Drawing.Image barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5C, docData.Dokumentid.Substring(9, 13), docData.Dokumentid.Substring(9, 13), docData.barcode_textposition "Below", "Arial", 6, 0);
}
public void Insert_Barcode(WordDocument document, clsDocData docData)
{
System.Drawing.Image barcodeimage;
barcodeimage = Get_Barcodeimage(docData);
System.Drawing.Image barcodeimage2;
barcodeimage2 = barcodeimage;
WPicture picture = new WPicture(document);
WPicture picture2 = new WPicture(document);
picture.LoadImage(barcodeimage);
picture2.LoadImage(barcodeimage);
picture.VerticalPosition = docData.barcode_left;
picture.HorizontalPosition = docData.barcode_top;
picture.HorizontalOrigin = HorizontalOrigin.Page;
picture.VerticalOrigin = VerticalOrigin.Page;
picture.TextWrappingStyle = TextWrappingStyle.Square;
picture.TextWrappingType = TextWrappingType.Largest;
picture2.VerticalPosition = docData.barcode_left;
picture2.HorizontalPosition = docData.barcode_top;
picture2.HorizontalOrigin = HorizontalOrigin.Page;
picture2.VerticalOrigin = VerticalOrigin.Page;
picture2.TextWrappingStyle = TextWrappingStyle.Square;
picture2.TextWrappingType = TextWrappingType.Largest;
if (docData.barcode_horizontal == 0)
{
picture.Rotation = 0;
picture.Height = docData.barcode_height; ;
picture.Width = docData.barcode_width;
picture.VerticalPosition = docData.barcode_top; ;
picture.HorizontalPosition = docData.barcode_left;
picture2.Rotation = 0;
picture2.Height = docData.barcode_height; ;
picture2.Width = docData.barcode_width;
picture2.VerticalPosition = docData.barcode_top; ;
picture2.HorizontalPosition = docData.barcode_left;
}
else
{
picture.Rotation = 0;
picture.Height = docData.barcode_height;
picture.Width = docData.barcode_width;
picture.VerticalPosition = docData.barcode_top; ;
picture.HorizontalPosition = docData.barcode_left;
picture2.Rotation = 0;
picture2.Height = docData.barcode_height;
picture2.Width = docData.barcode_width;
picture2.VerticalPosition = docData.barcode_top; ;
picture2.HorizontalPosition = docData.barcode_left;
}
if (docData.barcode_type == "0")
{
}
//foreach (IWSection section in document.Sections)
//{
IWSection section = document.Sections[0];
if (section.PageSetup.DifferentFirstPage == true)
{
WParagraph FirstfooterPar = new WParagraph(document);
FirstfooterPar.ChildEntities.Add(picture);
section.HeadersFooters.FirstPageFooter.Paragraphs.Add(FirstfooterPar);
}
WParagraph footerPar = new WParagraph(document);
footerPar.ChildEntities.Add(picture2);
section.HeadersFooters.Footer.Paragraphs.Add(footerPar);
//}
}
public void xInsert_Barcode(WordDocument document, clsDocData docData)
{
System.Drawing.Image barcodeimage;
BarcodeLib.Barcode Barcode = new BarcodeLib.Barcode();
@@ -894,7 +1030,6 @@ namespace DOCGEN.Klassen
case "0":
//int rotation = 0;
//if (docData.barcode_horizontal == 0) { rotation = 270; }
barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5, docData.Dokumentid.Substring(6, 16), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.Zusatz_Font, Convert.ToInt32(docData.Zusatz_FontSize), 0);
BarcodeLib.clsBarI25 barbarcode = new BarcodeLib.clsBarI25();
//barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 36, 350, 50, " "+docData.barcode_zusatz, docData.Zusatz_Font, Convert.ToInt32(docData.Zusatz_FontSize), 0);
@@ -906,16 +1041,17 @@ namespace DOCGEN.Klassen
if (docData.barcode_horizontal == 0)
{
barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 33, 300, 50, docData.barcode_zusatz, "Futur Book", 8,270);
barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 66, 600, 100, docData.barcode_zusatz, "Futur Book", 16,0);
//barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 33, 429, 52, docData.barcode_zusatz, "Futur Book", 8, 270);
}
else
{
barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 33, 300, 50, docData.barcode_zusatz, "Futur Book", 8, 0);
barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 66, 600, 100, docData.barcode_zusatz, "Futur Book", 16, 0);
//barcodeimage = barbarcode.GetBarI25(Color.Black, Color.White, docData.Dokumentid.Substring(6, 16), "Bar 25i c HR", 33, 429, 52, docData.barcode_zusatz, "Futur Book", 8, 0);
}
//barcodeimage = Barcode.Get_LinerBarcode(Barcoded.Symbology.I2of5, docData.Dokumentid.Substring(6, 16), docData.Dokumentid.Substring(6, 16) + docData.barcode_zusatz, docData.barcode_textposition, docData.Zusatz_Font, Convert.ToInt32(docData.Zusatz_FontSize), 0);
//barcodeimage = ScaleImage(barcodeimage, docData.barcode_width, docData.barcode_height);
//barcodeimage = resizeImage(barcodeimage, new Size(docData.barcode_width,docData.barcode_height));
@@ -947,6 +1083,7 @@ namespace DOCGEN.Klassen
WPicture picture = new WPicture(document);
picture.LoadImage(barcodeimage);
//picture.Height = docData.barcode_height;
//picture.Width = docData.barcode_width;
@@ -961,9 +1098,9 @@ namespace DOCGEN.Klassen
//picture.Height = barcodeimage.Height;
if (docData.barcode_horizontal == 0)
{
picture.Rotation = 0;
// picture.Height = docData.barcode_width;
//picture.Width = docData.barcode_height;
picture.Rotation = 270;
picture.Height = docData.barcode_height; ;
picture.Width = docData.barcode_width;
picture.VerticalPosition = docData.barcode_top; ;
picture.HorizontalPosition = docData.barcode_left;
@@ -994,11 +1131,11 @@ namespace DOCGEN.Klassen
section.HeadersFooters.Footer.AddParagraph().ChildEntities.Add(picture);
section.HeadersFooters.FirstPageFooter.AddParagraph().ChildEntities.Add(picture2);
if (section.HeadersFooters.FirstPageFooter.Paragraphs.Count < 1)
{
section.HeadersFooters.FirstPageFooter.AddParagraph();
section.HeadersFooters.FirstPageFooter.Paragraphs[0].ChildEntities.Add(picture);
}
//if (section.HeadersFooters.FirstPageFooter.Paragraphs.Count < 1)
//{
section.HeadersFooters.FirstPageFooter.AddParagraph();
section.HeadersFooters.FirstPageFooter.Paragraphs[0].ChildEntities.Add(picture);
//}
Syncfusion.DocIO.DLS.IWParagraph paragraph = section.Body.LastParagraph;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -117,6 +117,8 @@ namespace DOCGEN
return Convert.ToBase64String(bytes);
}
}
public string generate_serienbrief(string vorlage,serienbrief sb, string dokumentid, string resturi, string apikey)
{
SyncFWord sfword = new SyncFWord(resturi,apikey);
@@ -145,8 +147,45 @@ namespace DOCGEN
dd.barcode_text = sb.barcode_text;
dok.dokument = sfword.Generate_Word(vorlage,dd, sb.img_unterschriftlinks,sb.img_unterschrfitrechts,sb.img_faktura,true);
DocGet dget = new DocGet(this.connectionstring);
string pdfdoc = dget.Convert_Word_To_PDF(dok.dokument);
if (dd.Barcode)
{
System.Drawing.Image barcode = sfword.Get_Barcodeimage(dd);
var stream = new MemoryStream(Convert.FromBase64String(pdfdoc));
PdfLoadedDocument loadedDocument = new PdfLoadedDocument(stream);
PdfBitmap image = new PdfBitmap(barcode);
for (int i = 0; i < loadedDocument.Pages.Count; i++)
{
PdfLoadedPage loadedPage = loadedDocument.Pages[i] as PdfLoadedPage;
PdfGraphics graphics = loadedPage.Graphics;
if (dd.barcode_horizontal == 1)
{
graphics.DrawImage(image, dd.barcode_left, dd.barcode_top, dd.barcode_width, dd.barcode_height);
}
else
{
graphics.DrawImage(image, dd.barcode_left, dd.barcode_top, dd.barcode_width, dd.barcode_height);
}
}
loadedDocument.ConvertToPDFA(PdfConformanceLevel.Pdf_A1B);
MemoryStream outputStream = new MemoryStream();
loadedDocument.Save(outputStream);
byte[] bytes;
bytes = outputStream.ToArray();
dok.dokument = Convert.ToBase64String(bytes);
dget = null;
outputStream = null;
} else
{
dok.dokument = pdfdoc;
}
db = null;
dok.doktype = "W";
dok.doktype = "P";
sfword = null;
return dok.dokument;

Binary file not shown.

Binary file not shown.