This commit is contained in:
2025-03-27 10:31:19 +01:00
parent 3ed6810423
commit a8207eeb09

View File

@@ -3,6 +3,7 @@ Imports System.IO
Imports System.Reflection
Imports System.Windows.Documents
Imports com.sun.tools.corba.se.idl.constExpr
Imports IKVM.internal
Imports itextsharp.text.pdf
Imports itextsharp.text.pdf.parser
Imports Microsoft.Office.Interop
@@ -1667,7 +1668,7 @@ Public Class frmMDM_USTVAntrag
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Dim pdf As String = ""
pdf = getPDF(dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_SchnittstellenNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReDat").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_daId").Value, False)
pdf = getPDF(dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_SchnittstellenNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReNr").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_ReDat").Value, dgvUSTVPositionen.Rows(e.RowIndex).Cells("UStVPo_daId").Value, False, False)
If IO.File.Exists(pdf) Then
Process.Start(pdf)
@@ -1723,7 +1724,7 @@ Public Class frmMDM_USTVAntrag
For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index)
Dim pdf As String = ""
pdf = getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1))
pdf = getPDF(row.Cells("UStVPo_SchnittstellenNr").Value, row.Cells("UStVPo_ReNr").Value, row.Cells("UStVPo_ReDat").Value, row.Cells("UStVPo_daId").Value, IIf(nummerierung, row.Cells("UStVPo_ID").Value, -1), IIf(row.Cells("UStVPo_Leistender").Value.ToString.ToLower.Contains("wag"), True, False))
If pdf <> "" Then list.Add(pdf)
@@ -1772,7 +1773,7 @@ Public Class frmMDM_USTVAntrag
End Sub
Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung) As String
Private Function getPDF(schnittstellenNr, ReNr, ReDat, daId, nummierung, PDFisProtected) As String
Dim schnnittstellenNr = schnittstellenNr
@@ -1805,6 +1806,7 @@ Public Class frmMDM_USTVAntrag
If nummierung > 0 Then
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path)
PdfReader.unethicalreading = True
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
@@ -1874,17 +1876,37 @@ Public Class frmMDM_USTVAntrag
End If
If nummierung > 0 Then
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
End If
Next
srcDoc.Close()
pdfReader.Close()
Return TMP_Path_New
If nummierung > 0 Then
Dim pdfReadernNew As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(TMP_Path_New)
pdfReadernNew.unethicalreading = True
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
For page As Integer = 1 To pdfReadernNew.NumberOfPages
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y - 6, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
Next
pdfReader.Close()
Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(TMP_Path_New, listTowrite, , , , ,)
Return PdfTmp
Else
Return TMP_Path_New
End If
@@ -1897,23 +1919,55 @@ Public Class frmMDM_USTVAntrag
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
If nummierung > 0 Then
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
'wenn PDF nicht beschreibbar, dann mittels Stamp!
If PDFisProtected Then
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA")
For page As Integer = 1 To pdfReader.NumberOfPages
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
Next
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
PdfReader.unethicalreading = True
pdfReader.Close()
Dim fs = New FileStream(tempPathNew, FileMode.Create, FileAccess.Write, FileShare.None)
Dim stamper = New PdfStamper(pdfReader, fs)
For page As Integer = 1 To pdfReader.NumberOfPages
Dim canvas As PdfContentByte = stamper.GetOverContent(page)
Dim bf As BaseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.EMBEDDED)
canvas.SetFontAndSize(bf, 12)
canvas.BeginText()
'The origin (0,0) is at the bottom-left corner of the page and represent coordinates in points!!!!!!!
canvas.ShowTextAligned(PdfContentByte.ALIGN_CENTER, nummierung, 350, 550, 0)
canvas.EndText()
'listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
Next
stamper.Close()
pdfReader.Close()
Return tempPathNew
Else
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
For page As Integer = 1 To pdfReader.NumberOfPages
listTowrite.Add(New VERAG_PROG_ALLGEMEIN.cPDFWriteValues(nummierung, x, y, width, height, mFont, mSize, , itextsharp.text.Element.ALIGN_LEFT, page))
Next
pdfReader.Close()
Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,)
Return PdfTmp
End If
Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,)
Return PdfTmp
Else
Return DS.GET_TOP1_PATH
Return DS.GET_TOP1_PATH
End If