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.Reflection
Imports System.Windows.Documents Imports System.Windows.Documents
Imports com.sun.tools.corba.se.idl.constExpr Imports com.sun.tools.corba.se.idl.constExpr
Imports IKVM.internal
Imports itextsharp.text.pdf Imports itextsharp.text.pdf
Imports itextsharp.text.pdf.parser Imports itextsharp.text.pdf.parser
Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop
@@ -1667,7 +1668,7 @@ Public Class frmMDM_USTVAntrag
If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then If e.RowIndex >= 0 AndAlso e.ColumnIndex >= 0 Then
Dim pdf As String = "" 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 If IO.File.Exists(pdf) Then
Process.Start(pdf) 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) For Each row As DataGridViewRow In dgvUSTVPositionen.SelectedRows.Cast(Of DataGridViewRow)().OrderBy(Function(dgvr) dgvr.Index)
Dim pdf As String = "" 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) If pdf <> "" Then list.Add(pdf)
@@ -1772,7 +1773,7 @@ Public Class frmMDM_USTVAntrag
End Sub 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 Dim schnnittstellenNr = schnittstellenNr
@@ -1805,6 +1806,7 @@ Public Class frmMDM_USTVAntrag
If nummierung > 0 Then If nummierung > 0 Then
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(path) 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 fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues) Dim listTowrite As New List(Of VERAG_PROG_ALLGEMEIN.cPDFWriteValues)
@@ -1874,18 +1876,38 @@ Public Class frmMDM_USTVAntrag
End If 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 Next
srcDoc.Close() srcDoc.Close()
pdfReader.Close() pdfReader.Close()
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 Return TMP_Path_New
End If
Catch ex As Exception Catch ex As Exception
@@ -1897,6 +1919,35 @@ Public Class frmMDM_USTVAntrag
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID) Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(dsID)
If nummierung > 0 Then If nummierung > 0 Then
'wenn PDF nicht beschreibbar, dann mittels Stamp!
If PDFisProtected Then
Dim tempPathNew = VERAG_PROG_ALLGEMEIN.DATENVERVER_OPTIONS.getTMPPath(DS.da_name & "_modified", ".pdf", True, False, "USTVA")
Dim pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
PdfReader.unethicalreading = True
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 pdfReader As itextsharp.text.pdf.PdfReader = New itextsharp.text.pdf.PdfReader(DS.GET_TOP1_PATH)
Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager Dim fm As New VERAG_PROG_ALLGEMEIN.cFormularManager
@@ -1911,6 +1962,9 @@ Public Class frmMDM_USTVAntrag
Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,) Dim PdfTmp = fm.fillPDFVorhandenesLokalesPDF_Path(DS.GET_TOP1_PATH, listTowrite, , , , ,)
Return PdfTmp Return PdfTmp
End If
Else Else
Return DS.GET_TOP1_PATH Return DS.GET_TOP1_PATH