MS Jobs Sichtbeleg
This commit is contained in:
@@ -17,7 +17,7 @@ Public Class XRechnungViewDocument
|
||||
Private fontResName As String
|
||||
Private fontResNameBold As String
|
||||
Private fontResNameItalic As String
|
||||
Private MyGDPicturePDF As GdPicturePDF
|
||||
|
||||
|
||||
Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer, GDPictureLicenseKey As String)
|
||||
_logConfig = LogConfig
|
||||
@@ -31,6 +31,8 @@ Public Class XRechnungViewDocument
|
||||
_logger.Debug("Create_PDFfromXML() Start")
|
||||
|
||||
Try
|
||||
Dim LicenseManager = New LicenseManager()
|
||||
LicenseManager.RegisterKEY(_gdpictureLicenseKey)
|
||||
Dim oXRechnungFile = pXmlFile.FullName
|
||||
Dim oNewFileinfo As FileInfo
|
||||
Dim oXmlFilePath = pXmlFile.FullName
|
||||
@@ -45,13 +47,21 @@ Public Class XRechnungViewDocument
|
||||
File.Delete(oTempFilePath)
|
||||
End If
|
||||
|
||||
_logger.Debug("Vor MOVE... oxmlFilePath: [{0}] / oTempFilePath: [{1}]", oXmlFilePath, oTempFilePath)
|
||||
|
||||
File.Move(oXmlFilePath, oTempFilePath)
|
||||
|
||||
|
||||
pXmlFile = New FileInfo(oTempFilePath)
|
||||
|
||||
'oViewRecieptFilename = oViewRecieptFilename.Replace(".xml", ".pdf")
|
||||
oViewRecieptFilename = Regex.Replace(oViewRecieptFilename, ".xml", ".pdf", RegexOptions.IgnoreCase)
|
||||
Dim MyGDPicturePDF = New GdPicturePDF
|
||||
|
||||
Dim oPDFStatus As GdPictureStatus = MyGDPicturePDF.NewPDF(PdfConformance.PDF_A_3a)
|
||||
|
||||
If oPDFStatus <> GdPictureStatus.OK Then
|
||||
_logger.Warn($"Error initializing PDF: {oPDFStatus}")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim oOutputPath = Path.Combine(Path.GetDirectoryName(oXmlFilePath), oViewRecieptFilename)
|
||||
_logger.Debug("Create_PDFfromXML() Resulting PDF Filepath: [{0}]", oOutputPath)
|
||||
@@ -59,13 +69,13 @@ Public Class XRechnungViewDocument
|
||||
File.Delete(oOutputPath)
|
||||
End If
|
||||
|
||||
MyGDPicturePDF = New GdPicturePDF()
|
||||
MyGDPicturePDF.NewPDF(PdfConformance.PDF_A_2a)
|
||||
Dim oPDFStatus As GdPictureStatus = MyGDPicturePDF.NewPDF()
|
||||
If oPDFStatus <> GdPictureStatus.OK Then
|
||||
_logger.Warn($"Error initializing PDF: {oPDFStatus}")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim oCreatedString = $"Maschinell erstellt durch / Automatically created by Digital Data E-Rechnung Parser: {Now.ToString}"
|
||||
|
||||
|
||||
|
||||
MyGDPicturePDF.EnableCompression(True)
|
||||
|
||||
MyGDPicturePDF.SetOrigin(PdfOrigin.PdfOriginTopLeft)
|
||||
MyGDPicturePDF.SetMeasurementUnit(PdfMeasurementUnit.PdfMeasurementUnitMillimeter)
|
||||
MyGDPicturePDF.SetLineWidth(1)
|
||||
@@ -77,9 +87,24 @@ Public Class XRechnungViewDocument
|
||||
'Create a New page
|
||||
MyGDPicturePDF.NewPage(PdfPageSizes.PdfPageSizeA4)
|
||||
' Dim oCurrent As Integer = MyGDPicturePDF.GetCurrentPage()
|
||||
'Den HEader erzeugen
|
||||
Dim yPosition As Integer = 15
|
||||
MyGDPicturePDF.SetTextSize(18)
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, "xRechnung Sichtbeleg - xInvoice Visual Receipt")
|
||||
yPosition += 10
|
||||
MyGDPicturePDF.SetTextSize(10)
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_DE_Row1)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_DE_Row2)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_EN_Row1)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_EN_Row2)
|
||||
'Den Footer erzeugen
|
||||
MyGDPicturePDF.DrawLine(10, 280, 200, 280)
|
||||
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, 285, oCreatedString)
|
||||
|
||||
Dim yPosition As Single = Create_PageHeader(False)
|
||||
Create_PageFooter()
|
||||
|
||||
Dim oArea As String = ""
|
||||
Dim oIsPosition As Boolean = False
|
||||
@@ -95,6 +120,7 @@ Public Class XRechnungViewDocument
|
||||
Dim oIndex As Integer = 0
|
||||
Dim oYPlus As Integer = 0
|
||||
Dim oCreateTextBox As Boolean = False
|
||||
Dim oInvHasDiscount As Boolean = False
|
||||
For Each oRow As DataRow In pDTItemValues.Rows
|
||||
Dim Y_eq_lastrow As Boolean = CBool(oRow.Item("Y_eq_lastrow"))
|
||||
Dim oRowCaption As String = oRow.Item("Row_Caption")
|
||||
@@ -102,7 +128,9 @@ Public Class XRechnungViewDocument
|
||||
Dim oItemValue As String = oRow.Item("ITEM_VALUE")
|
||||
Dim oDisplay As Boolean = oRow.Item("Display")
|
||||
Dim oAreaSwitch As Boolean = False
|
||||
|
||||
If oItemSPECNAME = "RECEIPT_ALLOWANCE_REASON" Then
|
||||
Console.WriteLine("Uiuiu")
|
||||
End If
|
||||
If oRow.Item("Area") = "INTERNAL" Then
|
||||
If oItemSPECNAME = "STATIC_Y_SWITCH" Then
|
||||
yPosition = oItemValue
|
||||
@@ -114,8 +142,23 @@ Public Class XRechnungViewDocument
|
||||
_logger.Warn($"Could not create a second page. The error was: {oPDFStatus}")
|
||||
Exit For
|
||||
Else
|
||||
yPosition = Create_PageHeader(True)
|
||||
Create_PageFooter()
|
||||
'Wieder einen Header und Footer erzeugen
|
||||
yPosition = 15
|
||||
MyGDPicturePDF.SetTextSize(18)
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, "xRechnung Sichtbeleg - xInvoice Visual Receipt")
|
||||
yPosition += 10
|
||||
MyGDPicturePDF.SetTextSize(10)
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_DE_Row1)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_DE_Row2)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_EN_Row1)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_EN_Row2)
|
||||
|
||||
MyGDPicturePDF.DrawLine(10, 280, 200, 280)
|
||||
'Footer erzeugen
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, 285, oCreatedString)
|
||||
End If
|
||||
'oCurrent = MyGDPicturePDF.GetCurrentPage()
|
||||
End If
|
||||
@@ -144,7 +187,17 @@ Public Class XRechnungViewDocument
|
||||
oAREACaption = "Positionen / Positions:"
|
||||
oIsPosition = True
|
||||
ElseIf oArea = "ALLOWANCE" Then
|
||||
oAREACaption = "Zu- oder Abschlag/Surcharge or Discount:"
|
||||
If oItemSPECNAME = "RECEIPT_ALLOWANCE_CHARGE_INDICATOR" Then
|
||||
If oItemValue = "False" Then
|
||||
oAREACaption = "Rabatt/Discount:"
|
||||
oInvHasDiscount = True
|
||||
Else
|
||||
oAREACaption = "Zuschlag/Surcharge:"
|
||||
End If
|
||||
Else
|
||||
oAREACaption = "Zu- oder Abschlag/Surcharge or Discount:"
|
||||
End If
|
||||
oIsPosition = True
|
||||
ElseIf oArea = "AMOUNT" Then
|
||||
oAREACaption = "Beträge / Amounts:"
|
||||
oCreateTextBox = True
|
||||
@@ -173,15 +226,23 @@ Public Class XRechnungViewDocument
|
||||
' gdpicturePDF.DrawText(fontResName, 10, yPosition, XRechnungStrings.Seperator_Line)
|
||||
yPosition += 5
|
||||
ElseIf oArea = "POSITION" Then
|
||||
'Tabellendarstellung
|
||||
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, "Pos#")
|
||||
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, "Anz./am.")
|
||||
MyGDPicturePDF.DrawText(fontResName, 35, yPosition, "Einh/unt")
|
||||
MyGDPicturePDF.DrawText(fontResName, 35, yPosition, "Einh/Unit")
|
||||
MyGDPicturePDF.DrawText(fontResName, 50, yPosition, "Pos.Text")
|
||||
MyGDPicturePDF.DrawText(fontResName, 164, yPosition, "Steuer/tax")
|
||||
MyGDPicturePDF.DrawText(fontResName, 181, yPosition, "Betrag/sum")
|
||||
MyGDPicturePDF.DrawText(fontResName, 163, yPosition, "Steuer/Tax")
|
||||
MyGDPicturePDF.DrawText(fontResName, 181, yPosition, "Betrag/Sum")
|
||||
yPosition += 5
|
||||
'Tabellendarstellung Ende
|
||||
ElseIf oArea = "ALLOWANCE" Then
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, "Pos#")
|
||||
' MyGDPicturePDF.DrawText(fontResName, 20, yPosition, "Betrag/Amount")
|
||||
MyGDPicturePDF.DrawText(fontResName, 20, yPosition, "Grund/Reason")
|
||||
MyGDPicturePDF.DrawText(fontResName, 163, yPosition, "Steuer/Tax")
|
||||
MyGDPicturePDF.DrawText(fontResName, 163, yPosition, "Steuer/Tax")
|
||||
MyGDPicturePDF.DrawText(fontResName, 181, yPosition, "Betrag/Sum")
|
||||
yPosition += 5
|
||||
oPosCount = 0
|
||||
ElseIf oArea = "EXEMPTION" Then
|
||||
|
||||
End If
|
||||
@@ -196,9 +257,9 @@ Public Class XRechnungViewDocument
|
||||
oIsPosition = True
|
||||
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
||||
oPosCount += 1
|
||||
'oPosTerm = $"{oPosCount}. {oItemValue} * "
|
||||
'oItemValue = oPosTerm
|
||||
'Tabellendarstellung
|
||||
|
||||
|
||||
|
||||
oPosTerm = ""
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
||||
'
|
||||
@@ -211,6 +272,18 @@ Public Class XRechnungViewDocument
|
||||
oDisplay = False
|
||||
' yPosition -= 5
|
||||
End If
|
||||
ElseIf oArea = "ALLOWANCE" Then
|
||||
oIsPosition = True
|
||||
Dim validNames As String() = {"POSITION_ALLOWANCE_ACTUAL_AMOUNT", "RECEIPT_ALLOWANCE_RECEIPT_ALLOWANCE_CHARGE_INDICATOR"}
|
||||
If validNames.Contains(oItemSPECNAME) Then
|
||||
oPosCount += 1
|
||||
oPosTerm = ""
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
||||
'
|
||||
Dim oCurrTerm = FormatCurrency(oItemValue, oCurrencySymbol)
|
||||
MyGDPicturePDF.DrawText(fontResName, 20, yPosition, oCurrTerm)
|
||||
oDisplay = False
|
||||
End If
|
||||
ElseIf oArea = "TAXPOS" Then
|
||||
oIsPosition = True
|
||||
If oItemSPECNAME = "INVOICE_TAXPOS_RATE" Then
|
||||
@@ -226,29 +299,50 @@ Public Class XRechnungViewDocument
|
||||
'INDIVIDUELLES VERHALTEN BEI Folge-ITEMS
|
||||
_logger.Debug($"FollowItem - Area: [{oArea}] - ItemSpecname: [{oItemSPECNAME}] - ItemValue: [{oItemValue}]")
|
||||
'Dim otextBoxYPos As Integer
|
||||
If oArea = "POSITION" Then
|
||||
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
||||
If oArea = "POSITION" Or oArea = "ALLOWANCE" Then
|
||||
|
||||
If {"INVOICE_POSITION_AMOUNT", "POSITION_ALLOWANCE_ACTUAL_AMOUNT", "RECEIPT_ALLOWANCE_ACTUAL_AMOUNT"}.Contains(oItemSPECNAME) Then
|
||||
oPosCount += 1
|
||||
oYPlus = 0
|
||||
'Tabellendarstellung
|
||||
|
||||
yPosition += 5
|
||||
oPosTerm = ""
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
||||
'otextBoxYPos = yPosition - 3.5
|
||||
'MyGDPicturePDF.DrawTextBox(fontResName, 10, otextBoxYPos, 16, YCoo_TextBoxPlus5(otextBoxYPos),
|
||||
' TextAlignment.TextAlignmentFar, TextAlignment.TextAlignmentNear,
|
||||
' oPosCount)
|
||||
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, oItemValue)
|
||||
'Tabellendarstellung Ende
|
||||
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
||||
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, oItemValue)
|
||||
ElseIf {"POSITION_ALLOWANCE_ACTUAL_AMOUNT", "RECEIPT_ALLOWANCE_ACTUAL_AMOUNT"}.Contains(oItemSPECNAME) Then
|
||||
Dim oTerm = FormatCurrency(oItemValue, oCurrencySymbol)
|
||||
If oInvHasDiscount And oItemSPECNAME = "RECEIPT_ALLOWANCE_ACTUAL_AMOUNT" And Not oTerm.StartsWith("-") Then
|
||||
oTerm = "-" + oTerm
|
||||
End If
|
||||
MyGDPicturePDF.DrawText(fontResName, 181, yPosition, oTerm)
|
||||
Else
|
||||
Dim oYDyn As Integer = yPosition - 5
|
||||
Dim oPartsNL As List(Of String) = StringFunctions.SplitTextByNewLine(oItemValue)
|
||||
For Each olinepart As String In oPartsNL
|
||||
Dim oParts As List(Of String) = StringFunctions.SplitText_Length(olinepart, 67)
|
||||
' Durchlaufen der einzelnen Teile in einer Schleife
|
||||
For Each part As String In oParts
|
||||
oYDyn += 5
|
||||
oYPlus += 5
|
||||
MyGDPicturePDF.DrawText(fontResName, 19, oYDyn, part)
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
|
||||
oDisplay = False
|
||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_UNIT_TYPE" Then
|
||||
oYPlus = 0
|
||||
Dim oUnit = Return_UnitType(oItemValue)
|
||||
MyGDPicturePDF.DrawText(fontResName, 35, yPosition, oUnit)
|
||||
oDisplay = False
|
||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_ARTICLE" Then
|
||||
ElseIf {"POSITION_ALLOWANCE_REASON", "RECEIPT_ALLOWANCE_REASON", "INVOICE_POSITION_ARTICLE", "INVOICE_POSITION_ARTICLE_DESCRIPTION"}.Contains(oItemSPECNAME) Then
|
||||
'Tabellendarstellung
|
||||
oYPlus = 0
|
||||
Dim oX = 50
|
||||
If oItemSPECNAME.Contains("ALLOWANCE") Then
|
||||
oX = 20
|
||||
End If
|
||||
oPosDesc = ""
|
||||
oPosDesc = oItemValue
|
||||
Dim oYDyn As Integer = yPosition - 5
|
||||
@@ -259,11 +353,11 @@ Public Class XRechnungViewDocument
|
||||
For Each part As String In oParts
|
||||
oYDyn += 5
|
||||
oYPlus += 5
|
||||
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
||||
MyGDPicturePDF.DrawText(fontResName, oX, oYDyn, part)
|
||||
Next
|
||||
Next
|
||||
'Tabellendarstellung Ende
|
||||
' oPosTerm += $" {oItemValue}"
|
||||
|
||||
|
||||
oDisplay = False
|
||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_NOTE" Then
|
||||
'Tabellendarstellung
|
||||
@@ -300,29 +394,22 @@ Public Class XRechnungViewDocument
|
||||
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
||||
Next
|
||||
Next
|
||||
|
||||
'oPosTerm += $" {oItemValue}"
|
||||
oDisplay = False
|
||||
ElseIf oItemSPECNAME = "INVOICE_TAXPOS_TAX_RATE" Or oItemSPECNAME = "INVOICE_TAXPOS_RATE" Then
|
||||
'Tabellendarstellung
|
||||
MyGDPicturePDF.DrawText(fontResName, 164, yPosition, $"{oItemValue} %")
|
||||
'Tabellendarstellung ENDE
|
||||
' oPosTerm += $" - {oItemValue} %"
|
||||
ElseIf {"INVOICE_TAXPOS_TAX_RATE", "INVOICE_TAXPOS_RATE", "POSITION_ALLOWANCE_CALCULATION_PERCENT", "RECEIPT_ALLOWANCE_CALCULATION_PERCENT", "RECEIPT_ALLOWANCE_VAT_RATE"}.Contains(oItemSPECNAME) Then
|
||||
MyGDPicturePDF.DrawText(fontResName, 163, yPosition, $"{oItemValue} %")
|
||||
oDisplay = False
|
||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_TAX_AMOUNT" Then
|
||||
'Tabellendarstellung
|
||||
ElseIf {"INVOICE_POSITION_TAX_AMOUNT"}.Contains(oItemSPECNAME) Then
|
||||
|
||||
Dim oYPos = yPosition - 3.5
|
||||
Dim TAXTERM = FormatCurrency(oItemValue, oCurrencySymbol)
|
||||
MyGDPicturePDF.DrawTextBox(fontResName, 177, oYPos, 198, YCoo_TextBoxPlus5(oYPos),
|
||||
TextAlignment.TextAlignmentFar, TextAlignment.TextAlignmentNear,
|
||||
TAXTERM)
|
||||
' MyGDPicturePDF.DrawText(fontResName, 180, yPosition, $"{oItemValue} {oCurrencySymbol}")
|
||||
|
||||
'Tabellendarstellung Ende
|
||||
End If
|
||||
oItemValue = oPosTerm
|
||||
ElseIf oArea = "HEAD" Then
|
||||
If oItemSPECNAME = "INVOICE_DATE" Or oItemSPECNAME = "INVOICE_SERVICE_DATE" Then
|
||||
If {"INVOICE_DATE", "INVOICE_SERVICE_DATE"}.Contains(oItemSPECNAME) Then
|
||||
oItemValue = StringFunctions.DatetimeStringToGermanStringConverter(oItemValue, _logger)
|
||||
End If
|
||||
ElseIf oArea = "TAXPOS" Then
|
||||
@@ -348,14 +435,12 @@ Public Class XRechnungViewDocument
|
||||
End If
|
||||
If oArea = "AMOUNT" Or oArea = "ALLOWANCE" Then
|
||||
|
||||
Dim oCURRENCYFORMAT = {"INVOICE_TOTAL_TAX", "INVOICE_TOTAL_NET", "INVOICE_TOTAL_GROSS", "RECEIPT_ALLOWANCE_ACTUAL_AMOUNT",
|
||||
"RECEIPT_ALLOWANCE_CALCULATION_PERCENT"}
|
||||
Dim oCURRENCYFORMAT = {"INVOICE_TOTAL_TAX", "INVOICE_TOTAL_NET", "INVOICE_TOTAL_GROSS", "POSITION_ALLOWANCE_ACTUAL_AMOUNT", "RECEIPT_ALLOWANCE_ACTUAL_AMOUNT",
|
||||
"POSITION_ALLOWANCE_CALCULATION_PERCENT", "RECEIPT_ALLOWANCE_CALCULATION_PERCENT"}
|
||||
If oCURRENCYFORMAT.Contains(oItemSPECNAME) Then
|
||||
oItemValue = FormatCurrency(oItemValue, oCurrencySymbol)
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If oRowCaption <> String.Empty Then
|
||||
'Zuerst die RowCaption
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oRowCaption)
|
||||
@@ -368,7 +453,6 @@ Public Class XRechnungViewDocument
|
||||
Else
|
||||
MyGDPicturePDF.DrawText(fontResName, 70, yPosition, oItemValue)
|
||||
End If
|
||||
|
||||
Else
|
||||
If Y_eq_lastrow = True Then
|
||||
MyGDPicturePDF.DrawText(fontResName, oRow.Item("xPosition"), yPosition, oItemValue)
|
||||
@@ -396,35 +480,41 @@ Public Class XRechnungViewDocument
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
'Tabellendarstellung
|
||||
If oItemSPECNAME = "INVOICE_POSITION_TAX_AMOUNT" And oYPlus > 0 Then
|
||||
yPosition += oYPlus - 5
|
||||
ElseIf oItemSPECNAME = "RECEIPT_ALLOWANCE_CHARGE_INDICATOR" Then
|
||||
yPosition -= 5
|
||||
End If
|
||||
'Tabellendarstellung Ende
|
||||
End If
|
||||
oIndex += 1
|
||||
Next
|
||||
' Dim oeinv_Format As PdfInvoiceDataFormat = PdfInvoiceDataFormat.ZUGFeRD_2_0
|
||||
Dim oAttString = "E-invoice XML attachment"
|
||||
If File.Exists(oXmlFilePath) Then
|
||||
MyGDPicturePDF.EmbedFile(oXmlFilePath, oAttString)
|
||||
Else
|
||||
_logger.Info("XML File is not existing and could not be embedded!")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Dim oeinv_Format As PdfInvoiceDataFormat = PdfInvoiceDataFormat.ZUGFeRD_2_0
|
||||
MyGDPicturePDF.EmbedFile(oTempFilePath, "Rechnungsdaten im ZUGFeRD-XML-Format")
|
||||
'Finalize And save the PDF
|
||||
oPDFStatus = MyGDPicturePDF.SaveToFile(oOutputPath)
|
||||
If oPDFStatus = GdPictureStatus.OK Then
|
||||
_logger.Info("PDF VisualReceipt generated successfully!")
|
||||
_logger.Debug("Vor MOVE... oxmlFilePath: [{0}] / oTempFilePath: [{1}]", oXmlFilePath, oTempFilePath)
|
||||
File.Move(oXmlFilePath, oTempFilePath)
|
||||
Else
|
||||
_logger.Warn($"Error generating PDF VisualReceipt: {oPDFStatus}")
|
||||
End If
|
||||
|
||||
'Release resources
|
||||
MyGDPicturePDF.CloseDocument()
|
||||
If oPDFStatus = GdPictureStatus.OK Then
|
||||
File.Delete(oXRechnungFile)
|
||||
' File.Delete(oXRechnungFile)
|
||||
oNewFileinfo = New FileInfo(oOutputPath)
|
||||
|
||||
_logger.Debug("Create_PDFfromXML() End successfully. File [{0}] written.", oNewFileinfo.FullName)
|
||||
_logger.Info("Create_PDFfromXML() End successfully. File [{0}] written.", oNewFileinfo.FullName)
|
||||
Return oNewFileinfo
|
||||
Else
|
||||
_logger.Debug("Create_PDFfromXML() Ends with nothing")
|
||||
_logger.Warn("Create_PDFfromXML() Ends with nothing")
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
@@ -434,7 +524,7 @@ Public Class XRechnungViewDocument
|
||||
End Try
|
||||
End Function
|
||||
Private Function FormatCurrency(ByVal pValue As String, pCurrencySymbol As String) As String
|
||||
pValue = pValue.replace(".", ",")
|
||||
pValue = pValue.Replace(".", ",")
|
||||
Dim oBetrag As Decimal = pValue
|
||||
Dim oFormatiert As String = oBetrag.ToString("N2", New Globalization.CultureInfo("de-DE"))
|
||||
oFormatiert = $"{oFormatiert} {pCurrencySymbol}"
|
||||
@@ -463,28 +553,28 @@ Public Class XRechnungViewDocument
|
||||
Dim lines As List(Of String) = text.Split({vbCrLf, vbLf, vbCr}, StringSplitOptions.None).ToList()
|
||||
Return lines
|
||||
End Function
|
||||
Public Function Create_PageHeader(pFollowPage As Boolean) As Integer
|
||||
'Draw content on the PDF
|
||||
Dim yPosition As Integer = 15
|
||||
MyGDPicturePDF.SetTextSize(18)
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, "xRechnung Sichtbeleg - xInvoice Visual Receipt")
|
||||
yPosition += 10
|
||||
MyGDPicturePDF.SetTextSize(10)
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_DE_Row1)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_DE_Row2)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_EN_Row1)
|
||||
yPosition += 5
|
||||
MyGDPicturePDF.DrawText(fontResNameItalic, 10, yPosition, XRechnungStrings.CommentSichtbeleg_EN_Row2)
|
||||
Return yPosition
|
||||
End Function
|
||||
|
||||
Public Sub Create_PageFooter()
|
||||
MyGDPicturePDF.DrawLine(10, 280, 200, 280)
|
||||
Dim oCreatedString = $"Maschinell erstellt durch / Automatically created by Digital Data E-Rechnung Parser: {Now.ToString}"
|
||||
MyGDPicturePDF.DrawText(fontResName, 10, 285, oCreatedString)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Private Function Return_InvType(pType As String) As String
|
||||
Dim oReturn As String = "Rechnung/invoice"
|
||||
|
||||
Reference in New Issue
Block a user