Hallo zusammen,
ich habe ein Problem, bei dem ich nicht weiter komme.
Ich habe ein Projekt mit verschiedenen Formen drauf. Auf einer dieser Formen habe ich einen Button. Mit diesem Button rufe ich meine Form10 auf.
Die Form10 ermöglicht es mir, PDF’s zu „mergen“, also vorhandene PDF-Dokumente zu einem einzigen, neues PDF Dokument zusammen zu fügen.
Leider bekomme ich es nur so hin, dass ich die Form10 in einem separaten Projekt habe. Der Aufruf dieses Projektes klappt eigentlich gut, aber ich will es anders haben.
Ich habe also in einem Projekt zwei Projekte.
Das eine nennt sich: MergePDFs.vbproj
Das andere, mit dem ich „MergePDFs.vbproj“ aufrufe nennt sich: Übersichtstool1.vbproj
Kann ich das Projekt „Merge“ in mein Übersichtstool integrieren?!
Habe schon alles versucht, aber nichts klappt.
Code zum aufrufen meiner Form10:
Private Sub Button397_Click_1(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button397.Click
With New MergePDFs.Form10
.Show()
End With
End Sub Modul im Projekt "Merge"
Imports iTextSharp.text
Imports iTextSharp
Imports iTextSharp.text.pdf
Public Class cMergePDF
Public Function MergePdfFiles(ByVal pdfFiles() As String, ByVal outputPath As _
String) As Boolean
Dim result As Boolean = False
Dim pdfCount As Integer = 0 'total input pdf file count
Dim f As Integer = 0 'pointer to current input pdf file
Dim fileName As String = String.Empty 'current input pdf filename
Dim reader As iTextSharp.text.pdf.PdfReader = Nothing
Dim pageCount As Integer = 0 'cureent input pdf page count
Dim pdfDoc As iTextSharp.text.Document = Nothing 'the output pdf document
Dim writer As PdfWriter = Nothing
Dim cb As PdfContentByte = Nothing
Dim page As PdfImportedPage = Nothing
Dim rotation As Integer = 0
Try
pdfCount = pdfFiles.Length
If pdfCount > 0 Then
fileName = pdfFiles(f)
reader = New iTextSharp.text.pdf.PdfReader(fileName)
pageCount = reader.NumberOfPages
pdfDoc = New iTextSharp.text.Document( _
reader.GetPageSizeWithRotation(1), 18, 18, 18, 18)
writer = PdfWriter.GetInstance(pdfDoc, New IO.FileStream( _
outputPath, IO.FileMode.Create))
With pdfDoc
.AddAuthor("blas")
.AddCreationDate()
.AddCreator("")
.AddSubject("Zusammenführung von PDF-Dokumenten")
.AddTitle(IO.Path.GetFileNameWithoutExtension(outputPath))
.AddKeywords("Report, Merged PDF, " & IO.Path.GetFileName( _
outputPath))
.Open()
End With
cb = writer.DirectContent
While f < pdfCount
Dim i As Integer = 0
While i < pageCount
i += 1
pdfDoc.SetPageSize(reader.GetPageSizeWithRotation(i))
pdfDoc.NewPage()
page = writer.GetImportedPage(reader, i)
rotation = reader.GetPageRotation(i)
If rotation = 90 Then
cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, _
reader.GetPageSizeWithRotation(i).Height)
ElseIf rotation = 270 Then
cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, _
reader.GetPageSizeWithRotation(i).Width + 60, -30)
Else
cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0)
End If
End While
f += 1
If f < pdfCount Then
fileName = pdfFiles(f)
reader = New iTextSharp.text.pdf.PdfReader(fileName)
pageCount = reader.NumberOfPages
End If
End While
pdfDoc.Close()
result = True
End If
Catch ex As Exception
MessageBox.Show("Fehler beim Mergen - " & ex.Message)
End Try
Return result
End Function
End Class Code der Form10:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button3.Click
Dim oMerge As New cMergePDF
Dim Fils As New ArrayList
Dim strFiles() As String
For idx As Integer = 0 To Fils.Count - 1
ReDim Preserve strFiles(idx)
strFiles(idx) = Fils(idx)
oMerge.MergePdfFiles(strFiles, ausgabedatei)
Next
Me.Close()
End Sub |