This commit is contained in:
2019-11-06 16:32:20 +01:00
parent 12f63bb4bc
commit bd77a8a525
20 changed files with 652 additions and 380 deletions

View File

@@ -110,30 +110,6 @@ Public Class frmSendungAnhangImport
Return Nothing
End Function
'Public Function ExtractPdfPages(ByVal SourceFile As String, ByVal TargetFile As String, ByVal IntStr As Integer, ByVal IntEnd As Integer)
' Try
' Dim impPage As pdf.PdfImportedPage = Nothing
' Dim Reader As New PdfReader(SourceFile)
' Dim srcDoc As New Document(Reader.GetPageSizeWithRotation(IntStr))
' Dim PdfCopyProvider As New PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
' PdfCopyProvider.SetFullCompression()
' srcDoc.Open()
' For X = IntStr To IntEnd
' impPage = PdfCopyProvider.GetImportedPage(Reader, X)
' ' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
' PdfCopyProvider.SetPageSize(New Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height))
' ' ----- PDF Seite in das neue Dokument einfügen
' PdfCopyProvider.AddPage(impPage)
' Next
' ' ----- neues PDF Dokument und den Reader schließen
' srcDoc.Close()
' Reader.Close()
' Catch ex As Exception
' Throw ex
' End Try
'End Function
Function getPDFSplitName(FILE_NAME)
If txtBezeichnung.Text <> "" Then
@@ -195,36 +171,43 @@ Public Class frmSendungAnhangImport
End If
End If
initLocationViewer("", "PDF")
' initLocationViewer("", "PDF")
End If
'-------------
End If
Next
clearPnlAnfuegen()
' initSendungen()
initFlpANH_LIST(, False)
initFlpANH_LIST(flpnlSendungen, False)
If flpnlAviso.Controls.Count > 0 Then
If Not setAvtiveById(flpnlAviso, CurrentPageNumber, pages, cntlID) Then
DirectCast(flpnlAviso.Controls(0), usrCntlSendungAnhangElement).CLICK_Me()
End If
Else
initLocationViewer("", "PDF")
End If
clearPnlAnfuegen()
End Sub
Function setAvtiveById(pnl As FlowLayoutPanel, CurrentPageNumber As Integer, listDelPages As List(Of Integer), anhId As Integer) As Boolean
Try
For Each p As usrCntlSendungAnhangElement In flpnlAviso.Controls
If p.FILE_ANHID = anhId Then
'p.ACTIVE = True
p.CLICK_Me()
Dim newCurrentPageNumber = CurrentPageNumber
For Each s In getPagesFromText() ' vorheirge Seiten, die gelöscht wurden werden abgezogen
If s < CurrentPageNumber Then CurrentPageNumber -= 1
Next
If PdfViewer.IsDocumentLoaded Then
If newCurrentPageNumber > 0 Then PdfViewer.GoToPage(newCurrentPageNumber)
If p.FILE_TYPE = "PDF" Then
If p.ACTIVE Then
initLocationViewer(p.FILE_PATH, p.FILE_TYPE)
Else
p.CLICK_Me()
End If
Dim newCurrentPageNumber = CurrentPageNumber
For Each s In getPagesFromText() ' vorheirge Seiten, die gelöscht wurden werden abgezogen
If s < CurrentPageNumber Then CurrentPageNumber -= 1
Next
If PdfViewer.IsDocumentLoaded Then
If newCurrentPageNumber > 0 Then PdfViewer.GoToPage(newCurrentPageNumber)
End If
End If
Return True
End If
@@ -284,9 +267,9 @@ Public Class frmSendungAnhangImport
ANH.anh_SendungsId = SendngsId
If cboArt._value <> "" Then ANH.anh_Art = cboArt._value
ANH.anh_id = -1 'neuer Eintrag
ANH.SAVE()
End If
ANH.SAVE()
End If
End If
Next
clearPnlAnfuegen()
' initSendungen()
@@ -298,7 +281,6 @@ Public Class frmSendungAnhangImport
txtSeiten.Text = ""
cboArt.Text = ""
txtBezeichnung.Text = ""
txtSeiten.Focus()
Dim u As usrCntlSendungAnhangElement = getAcitveCntl()
If u IsNot Nothing Then
@@ -308,9 +290,9 @@ Public Class frmSendungAnhangImport
End If
MyTextBox2.Text = cboSendungen.Text
txtSeiten.Focus()
End Sub
Sub tryDelete(TMP_Path_New)
Try
File.Delete(TMP_Path_New)
Catch ex As Exception
@@ -466,6 +448,7 @@ Public Class frmSendungAnhangImport
If delSource Then tryDelete(sourceFile)
'GC.Collect()
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Return False
@@ -529,7 +512,6 @@ Public Class frmSendungAnhangImport
Next
pdf1.SaveToFile(destinationFile)
'MsgBox("P: " &pdf.Pages.Count)
'Dim pdf1 As New PdfDocument()
''Dim page As New PdfPageBase
@@ -561,10 +543,12 @@ Public Class frmSendungAnhangImport
' doc.Close()
' End Using
' End Using
'End Using
pdf.Dispose()
pdf1.Dispose()
'GC.Collect()
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
Return False
@@ -572,11 +556,37 @@ Public Class frmSendungAnhangImport
Return True
End Function
'Public Function ExtractPdfPages(ByVal SourceFile As String, ByVal TargetFile As String, ByVal IntStr As Integer, ByVal IntEnd As Integer)
' Try
' Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing
' Dim Reader As New iTextSharp.text.pdf.PdfReader(SourceFile)
' Dim srcDoc As New iTextSharp.text.Document(Reader.GetPageSizeWithRotation(IntStr))
' Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
' PdfCopyProvider.SetFullCompression()
' srcDoc.Open()
' For X = IntStr To IntEnd
' impPage = PdfCopyProvider.GetImportedPage(Reader, X)
' ' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
' PdfCopyProvider.SetPageSize(New iTextSharp.text.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height))
' ' ----- PDF Seite in das neue Dokument einfügen
' PdfCopyProvider.AddPage(impPage)
' Next
' ' ----- neues PDF Dokument und den Reader schließen
' srcDoc.Close()
' Reader.Close()
' Catch ex As Exception
' Throw ex
' End Try
'End Function
'Public Sub removePagesFromPdf(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer)
' Try
' PagesLeft = 0
' Dim r As PdfReader = New PdfReader(sourceFile)
' Dim r As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(sourceFile)
' Dim pagesToKeep As New List(Of Integer)
' For p = 1 To r.NumberOfPages
' Dim del = False
@@ -591,9 +601,9 @@ Public Class frmSendungAnhangImport
' Next
' Using fs As FileStream = New FileStream(destinationFile, FileMode.Create, FileAccess.Write, FileShare.None)
' Using doc As Document = New Document()
' Using doc As iTextSharp.text.Document = New iTextSharp.text.Document()
' Using w As PdfWriter = PdfWriter.GetInstance(doc, fs)
' Using w As iTextSharp.text.pdf.PdfWriter = iTextSharp.text.pdf.PdfWriter.GetInstance(doc, fs)
' doc.Open()
' For Each page As Integer In pagesToKeep
' doc.NewPage()
@@ -696,7 +706,7 @@ Public Class frmSendungAnhangImport
cboArt.Items.Clear()
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATR", "ATR"))
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("ATR-EUR1", "ATR-EUR1"))
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Rechnung", "Rechnung"))
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("CMR", "CMR"))
cboArt.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Ausfuhr", "Ausfuhr"))
@@ -762,34 +772,41 @@ Public Class frmSendungAnhangImport
For Each a In ANH_LIST
Dim USRCNTL As New usrCntlSendungAnhangElement
USRCNTL.FILE_PATH = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(a.anh_docId)
USRCNTL.FILE_NAME = a.anh_Name
USRCNTL.FILE_TYPE = a.anh_Typ
USRCNTL.FILE_ANHID = a.anh_id
USRCNTL.FILE_DOCID = a.anh_docId
If keepActive Then
If a.anh_id = aktiveId Then
USRCNTL.ACTIVE = True
End If
End If
initElement(USRCNTL)
If If(a.anh_SendungsId, 0) > 0 Then
If cboSendungen._value <> "" AndAlso cboSendungen._value = a.anh_SendungsId Then
If pnl Is Nothing OrElse pnl Is flpnlSendungen Then flpnlSendungen.Controls.Add(USRCNTL)
If pnl Is Nothing OrElse pnl Is flpnlSendungen Then
addtoPnl(a, flpnlSendungen, keepActive, aktiveId)
End If
End If
Else
If pnl Is Nothing OrElse pnl Is flpnlAviso Then flpnlAviso.Controls.Add(USRCNTL)
If pnl Is Nothing OrElse pnl Is flpnlAviso Then
addtoPnl(a, flpnlAviso, keepActive, aktiveId)
End If
End If
Next
'If act Is Nothing Then initLocationViewer("", "PDF")
End Sub
Sub addtoPnl(a As VERAG_PROG_ALLGEMEIN.cAvisoAnhaenge, pnl As FlowLayoutPanel, keepActive As Boolean, aktiveId As Integer)
Dim USRCNTL As New usrCntlSendungAnhangElement
USRCNTL.FILE_PATH = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(a.anh_docId)
USRCNTL.FILE_NAME = a.anh_Name
USRCNTL.FILE_TYPE = a.anh_Typ
USRCNTL.FILE_ANHID = a.anh_id
USRCNTL.FILE_DOCID = a.anh_docId
If keepActive Then
If a.anh_id = aktiveId Then
USRCNTL.ACTIVE = True
End If
End If
initElement(USRCNTL)
pnl.Controls.Add(USRCNTL)
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnAnfuegenAll.Click
clearPnlAnfuegen()
End Sub
@@ -904,10 +921,10 @@ Public Class frmSendungAnhangImport
' MsgBox(TMP_Path)
' File.Copy(F_listItem, TMP_Path)
Dim da_id = -1
Dim anhId = -1
Dim destPath = ""
Dim anhId = -1
Dim destPath = ""
Dim Typ = ""
Dim Typ = ""
If getFileTypeValid(fi.Extension.Replace(".", ""), Typ) Then
If saveToDS(AvisoId, filename, F_listItem, "", Typ, da_id, anhId, destPath) Then
addUsrcnlToPnl(destPath, da_id, anhId, filename, Typ)
@@ -1129,6 +1146,27 @@ Public Class frmSendungAnhangImport
End Sub
Private Sub Button1_Click_2(sender As Object, e As EventArgs) Handles Button1.Click
For Each u As usrCntlSendungAnhangElement In flpnlAviso.Controls
If u.ACTIVE Then
If u.FILE_TYPE <> "PDF" Then Exit Sub
' Dim fi As New FileInfo(u.FILE_PATH)
Dim pdf As New PdfDocument()
pdf.LoadFromFile(u.FILE_PATH)
For Each p In pdf.Pages
txtSeiten.Text = "1"
btnAnfuegen.PerformClick()
Next
End If
Next
End Sub
'Private Sub txtBezeichnung_GotFocus(sender As Object, e As EventArgs) Handles txtBezeichnung.GotFocus
' txtBezeichnung.SelectAll()
'End Sub