Imports iTextSharp.text.pdf Imports iTextSharp Imports System.IO Imports System Imports System.Windows Module GestionPDF Public Function PDFParseText(CheminPDF As String, PageDebut As Integer, PageFin As Integer) Dim i As Integer Dim txt As String = "" Dim reader As New PdfReader(CheminPDF) Dim parser As New parser.PdfReaderContentParser(reader) Dim strat As parser.SimpleTextExtractionStrategy If PageDebut > PageFin Then i = PageDebut PageDebut = PageFin PageFin = i End If For i = PageDebut To PageFin strat = parser.ProcessContent(i, New parser.SimpleTextExtractionStrategy) txt = txt & strat.GetResultantText() Next i Return txt End Function Public Sub PDFConcatPage(CheminPDF1 As String, CheminPDF2 As String, CheminPDFResultat As String) Dim writer As iTextSharp.text.pdf.PdfWriter Dim reader2 As iTextSharp.text.pdf.PdfReader Dim reader As iTextSharp.text.pdf.PdfReader Dim document As New iTextSharp.text.Document() Dim i, j As Integer Dim rot As Integer reader2 = New iTextSharp.text.pdf.PdfReader(CheminPDF2) reader = New iTextSharp.text.pdf.PdfReader(CheminPDF1) 'premiere boucle de recuperation du PDF1 Using memoryStream = New MemoryStream() writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, memoryStream) document.Open() document.AddDocListener(writer) j = reader.NumberOfPages For i = 1 To j document.SetPageSize(reader.GetPageSize(i)) document.NewPage() Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent Dim pageImport As iTextSharp.text.pdf.PdfImportedPage = writer.GetImportedPage(reader, i) rot = reader.GetPageRotation(i) ' Traitement de la rotation du document If rot = 90 Or rot = 270 Then cb.AddTemplate(pageImport, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height) Else cb.AddTemplate(pageImport, 1.0F, 0, 0, 1.0F, 0, 0) End If Next i 'deuxieme boucle pour PDF2 j = reader2.NumberOfPages For i = 1 To j document.SetPageSize(reader2.GetPageSize(i)) document.NewPage() Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent Dim pageImport As iTextSharp.text.pdf.PdfImportedPage = writer.GetImportedPage(reader2, i) rot = reader2.GetPageRotation(i) ' Traitement de la rotation du document If rot = 90 Or rot = 270 Then cb.AddTemplate(pageImport, 0, -1.0F, 1.0F, 0, 0, reader2.GetPageSizeWithRotation(i).Height) Else cb.AddTemplate(pageImport, 1.0F, 0, 0, 1.0F, 0, 0) End If Next i document.Close() reader2.Close() reader.Close() File.WriteAllBytes(CheminPDFResultat, memoryStream.ToArray()) End Using document.Close() End Sub Public Sub PDFSelectPage(CheminFichier As String, PageDebut As Integer, PageFin As Integer, CheminPDFResultat As String) Dim writer As iTextSharp.text.pdf.PdfWriter Dim reader As iTextSharp.text.pdf.PdfReader Dim document As New iTextSharp.text.Document() Dim i As Integer Dim rot As Integer reader = New iTextSharp.text.pdf.PdfReader(CheminFichier) 'boucle de recuperation du PDF Using memoryStream = New MemoryStream() writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, memoryStream) document.Open() document.AddDocListener(writer) For i = PageDebut To PageFin document.SetPageSize(reader.GetPageSize(i)) document.NewPage() Dim cb As iTextSharp.text.pdf.PdfContentByte = writer.DirectContent Dim pageImport As iTextSharp.text.pdf.PdfImportedPage = writer.GetImportedPage(reader, i) rot = reader.GetPageRotation(i) ' Traitement de la rotation du document If rot = 90 Or rot = 270 Then cb.AddTemplate(pageImport, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(i).Height) Else cb.AddTemplate(pageImport, 1.0F, 0, 0, 1.0F, 0, 0) End If Next i document.Close() reader.Close() File.WriteAllBytes(CheminPDFResultat, memoryStream.ToArray()) End Using document.Close() End Sub End Module