This commit is contained in:
2020-08-04 16:33:49 +02:00
parent 0a7e4feedd
commit 81905f2f44
24 changed files with 985 additions and 596 deletions

View File

@@ -619,8 +619,7 @@ Public Class frmSendungAnhangImport
Return True
End Function
Public Function ExtractPdfPages_NEW(ByVal SourceFile As String, ByVal TargetFile As String, pagesToExtract As List(Of Integer)) As Boolean
Public Function ExtractPdfPages_NEW(ByVal SourceFile As String, ByVal TargetFile As String, pagesToExtract As List(Of Integer)) As Boolean 'ITEXTSHARP
Try
Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing
Dim Reader As New iTextSharp.text.pdf.PdfReader(SourceFile)
@@ -651,6 +650,103 @@ Public Class frmSendungAnhangImport
End Try
Return False
End Function
'ITEXT 7 :::::
'Public Function ExtractPdfPages_NEW(ByVal SourceFile As String, ByVal TargetFile As String, pagesToExtract As List(Of Integer)) As Boolean
' Try
' If Not TargetFile.ToLower.EndsWith(".pdf") Then TargetFile = TargetFile & ".pdf"
' Dim Reader = New iText.Kernel.Pdf.PdfReader(SourceFile)
' Dim srcDoc As New iText.Kernel.Pdf.PdfDocument(Reader)
' Dim srcDocsp As New iText.Kernel.Utils.PdfSplitter(srcDoc)
' ' Dim splitRanges As IList(Of iText.Kernel.Utils.PageRange) = New List(Of iText.Kernel.Utils.PageRange)()
' Dim splitRange As New iText.Kernel.Utils.PageRange
' For Each p In pagesToExtract
' ' pageRanges.Add(p)
' splitRange.AddSinglePage(p)
' Next
' ' splitRange.Add(nextRange)
' Dim PDFTarget As iText.Kernel.Pdf.PdfDocument = srcDocsp.ExtractPageRange(splitRange)
' Dim PdfWriter = New iText.Kernel.Pdf.PdfWriter(TargetFile)
' Dim PdfWriter2 As iText.Kernel.Pdf.PdfWriter = PDFTarget.GetWriter()
' 'Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
' PdfWriter.Close()
' srcDoc.Close()
' Reader.Close()
' PDFTarget.Close()
' ''PdfDocument pdf = New iText.Kernel.Pdf.PdfDocument(writer)
' ''Dim impPage As iTextSharp.text.pdf.PdfImportedPage = Nothing
' ''Dim Reader As New iTextSharp.text.pdf.PdfReader(SourceFile)
' 'Dim impPage As iText.Kernel.Pdf.PdfPage = Nothing
' 'Dim Reader = New iText.Kernel.Pdf.PdfReader(SourceFile)
' 'If Not TargetFile.ToLower.EndsWith(".pdf") Then TargetFile = TargetFile & ".pdf"
' ''Dim srcDoc As New iTextSharp.text.Document()
' 'Dim srcDoc As New iText.Kernel.Pdf.PdfDocument(Reader)
' 'Dim srcDocsp As New iText.Kernel.Utils.PdfSplitter(Reader)
' 'srcDocsp.ExtractPageRanges()
' 'Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
' 'PdfCopyProvider.SetFullCompression()
' 'srcDoc.Open()
' 'For Each p In pagesToExtract
' ' If p > Reader.NumberOfPages Then
' ' MsgBox("Seitenanzahl überschritten!")
' ' srcDoc.Close() : Reader.Close()
' ' Return False
' ' End If
' ' impPage = PdfCopyProvider.GetImportedPage(Reader, p)
' ' ' ----- Ermitteln der Seitenauflösung und setzen für die neue Seite
' ' PdfCopyProvider.SetPageSize(New iText.Kernel.Geom.Rectangle(0.0F, 0.0F, impPage.Width, impPage.Height, Reader.GetPageRotation(p)))
' ' ' ----- PDF Seite in das neue Dokument einfügen
' ' PdfCopyProvider.AddPage(impPage)
' 'Next
' '' ----- neues PDF Dokument und den Reader schließen
' 'srcDoc.Close()
' 'Reader.Close()
' Return True
' Catch ex As Exception
' MsgBox(ex.Message & ex.StackTrace)
' End Try
' Return False
'End Function
'Public Sub ExtractPages(ByVal sourcePdfPath As String, ByVal outputPdfPath As String, ByVal startPage As Integer, ByVal endPage As Integer) 'ITEXT OLD
' Dim reader As iText.Kernel.Pdf.PdfReader = Nothing
' Dim sourceDocument As iText.Kernel.Pdf.PdfDocument = Nothing
' Dim pdfCopyProvider As iText.Kernel.Pdf.PdfCopy = Nothing
' Dim importedPage As iText.Kernel.Pdf.PdfImportedPage = Nothing
' Try
' reader = New iText.Kernel.Pdf.PdfReader(sourcePdfPath)
' sourceDocument = New iText.Kernel.Pdf.PdfDocument(reader.GetPageSizeWithRotation(startPage))
' pdfCopyProvider = New iText.Kernel.Pdf.PdfCopy(sourceDocument, New System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create))
' sourceDocument.Open()
' For i As Integer = startPage To endPage
' importedPage = pdfCopyProvider.GetImportedPage(reader, i)
' pdfCopyProvider.AddPage(importedPage)
' Next
' sourceDocument.Close()
' reader.Close()
' Catch ex As Exception
' Throw ex
' End Try
'End Sub
'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
@@ -677,6 +773,101 @@ Public Class frmSendungAnhangImport
'End Function
'ITEXT 7::
'Public Function removePagesFromPdf_NEW(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer, delSource As Boolean) As Boolean
' Try
' ' Dim pdfReader As iText.Kernel.Pdf.PdfReader = New iText.Kernel.Pdf.PdfReader(sourceFile)
' ' Dim pdfwriter As iText.Kernel.Pdf.PdfWriter = New iText.Kernel.Pdf.PdfWriter(destinationFile)
' 'Dim docOringal = New iText.Kernel.Pdf.PdfDocument(pdfReader, pdfwriter)
' Dim NewPagesReader = New iText.Kernel.Pdf.PdfReader(destinationFile)
' Dim docNewPages = New iText.Kernel.Pdf.PdfDocument(NewPagesReader)
' Dim OriginalDocReader = New iText.Kernel.Pdf.PdfReader(sourceFile)
' 'Dim NewPDFWriter As New iText.Kernel.Pdf.PdfWriter(sourceFile)
' Dim docOringal = New iText.Kernel.Pdf.PdfDocument(OriginalDocReader) ', NewPDFWriter)
' 'docOringal.GetNumberOfPages
' PagesLeft = 0
' ' Dim r As iTextSharp.text.pdf.PdfReader = New iTextSharp.text.pdf.PdfReader(sourceFile)
' Dim pagesToKeep As New List(Of Integer)
' For p = 1 To docOringal.GetNumberOfPages
' Dim del = False
' For Each i In pagesToDelete
' If p = i Then
' del = True : Exit For
' End If
' Next
' If Not del Then
' pagesToKeep.Add(p)
' End If
' Next
' For Each p In pagesToKeep
' docNewPages.CopyPagesTo(p, p, docOringal)
' Next
' docOringal.Close()
' 'If pagesToKeep.Count > 0 Then
' ' PagesLeft = r.NumberOfPages - pagesToKeep.Count
' ' If ExtractPdfPages_NEW(sourceFile, destinationFile, pagesToKeep) Then
' ' If delSource Then tryDelete(sourceFile)
' ' End If
' ' If delSource Then tryDelete(sourceFile)
' 'End If
' 'If Not TargetFile.ToLower.EndsWith(".pdf") Then TargetFile = TargetFile & ".pdf"
' 'Dim Reader = New iText.Kernel.Pdf.PdfReader(sourceFile)
' 'Dim srcDoc As New iText.Kernel.Pdf.PdfDocument(Reader)
' 'Dim srcDocsp As New iText.Kernel.Utils.PdfSplitter(srcDoc)
' 'Dim splitRanges As IList(Of iText.Kernel.Utils.PageRange) = New List(Of iText.Kernel.Utils.PageRange)()
' 'For Each p In pagesToExtract
' ' ' pageRanges.Add(p)
' ' Dim nextRange As New iText.Kernel.Utils.PageRange '= GetNextRange(currentPage, numOfPages, Size)
' ' nextRange.AddSinglePage(p)
' ' splitRanges.Add(nextRange)
' 'Next
' 'Dim PDFTarget As iText.Kernel.Pdf.PdfDocument = srcDocsp.ExtractPageRange(splitRanges)
' 'Dim PdfWriter = New iText.Kernel.Pdf.PdfWriter(TargetFile)
' 'Dim PdfWriter2 As iText.Kernel.Pdf.PdfWriter = PDFTarget.GetWriter()
' ''Dim PdfCopyProvider As New iTextSharp.text.pdf.PdfCopy(srcDoc, New System.IO.FileStream(TargetFile, System.IO.FileMode.Create))
' 'PdfWriter.Close()
' 'srcDoc.Close()
' 'Reader.Close()
' 'PDFTarget.Close()
' Return True
' Catch ex As Exception
' MsgBox(ex.Message & ex.StackTrace)
' End Try
' Return False
'End Function
Public Function removePagesFromPdf_NEW(ByVal sourceFile As String, ByVal destinationFile As String, pagesToDelete As List(Of Integer), ByRef PagesLeft As Integer, delSource As Boolean) As Boolean
Try
@@ -724,7 +915,7 @@ Public Class frmSendungAnhangImport
Return True
Catch ex As Exception
MsgBox(ex.Message & ex.StackTrace)
MsgBox(ex.Message & ex.StackTrace)
End Try
Return False
End Function