title: itextsharp merge resizes and unrotates pdf
body: <p>I'm trying to merge pdf files using itextsharp.<br>
  The problem 'm getting its that any cropping or rotating I've applied to the individual files before the merge is somehow ignored. All original files were cropped and rotated as TIFFs then converted to pdf and now finally I'm trying to merge them.<br>
  I'd like the page size to match the added content, and I any rotation I've applied to come through.'</p>
  
  <p>Thank you for any help,<br>
  Corbin de Bruin</p>
  
  <pre><code>Public Function MergePDFFiles(FileList As Dictionary(Of String, String), DeleteOldFile As Boolean) As Byte()
      ' Public Function MergePDFFiles(FileList As Dictionary(Of String, String), DeleteOldFile As Boolean) As MemoryStream()
      Dim document As New Document()
      Dim output As New MemoryStream()
      Try
          Dim writer As PdfWriter = PdfWriter.GetInstance(document, output)
          writer.PageEvent = New PdfPageEvents()
          document.Open()
          Dim content As PdfContentByte = writer.DirectContent
          ' foreach
          For Each FilePath As KeyValuePair(Of String, String) In FileList
              If File.Exists(FilePath.Value) Then
                  Dim reader As New PdfReader(FilePath.Value)
                  Dim numberOfPages As Integer = reader.NumberOfPages
                  For currentPageIndex As Integer = 1 To numberOfPages
                      document.SetPageSize(reader.GetPageSizeWithRotation(currentPageIndex))
                      document.NewPage()
  
                      ' you can see iTextSharp.tutorial.01 - 0403sample
                      If currentPageIndex.Equals(1) Then
                          Dim par As New Paragraph(FilePath.Key)
                          Debug.Print("FilePath.Key = " &amp; FilePath.Key)
                          Dim bookmark As New Chapter(par, 0) With {.NumberDepth = 0}
                          document.Add(bookmark)
                      End If
  
                      Dim importedPage As PdfImportedPage = writer.GetImportedPage(reader, currentPageIndex)
  
                      Dim pageOrientation As Integer = reader.GetPageRotation(currentPageIndex)
                      If (pageOrientation = 90) OrElse (pageOrientation = 270) Then
                          content.AddTemplate(importedPage, 0, 1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(currentPageIndex).Height)
                      Else
                          content.AddTemplate(importedPage, 1.0F, 0, 0, 1.0F, 0, 0)
                      End If
  
                  Next
              End If
          Next
      Catch exception As Exception
          Debug.Print("Failure")
      Finally
          document.Close()
      End Try
  
      If DeleteOldFile Then
          'Delete(FileList)
      End If
  
      Return output.GetBuffer()
  
  End Function
  
  
      End Try
  
      If DeleteOldFile Then
          'Delete(FileList)
      End If
  
      Return output.GetBuffer()
  </code></pre>