ItextSharp mit PowerShell zum Zusammenführen von Tiff und PDF zu einem großen PDF

Ich versuche, ein Powershell-Skript zu schreiben, das eine CSV-Datei durchläuft und mit der ItextSharp-DLL nach Tiff- und PDF-Dateien sucht. Das gewünschte Endergebnis ist, dass jedes Bild und jede Seite eines PDF in einem großen PDF enthalten sein muss.

Meine Gedanken sind, zwei Funktionen zu erstellen, um dies zu erreichen. Eine für Bilder und die andere für PDFs. Die Bildfunktion funktioniert ordnungsgemäß, aber das PDF-Dokument gibt einen Fehler aus: Ausnahme beim Aufrufen von ".ctor" mit "1" -Argumenten: "Nicht als Datei oder Ressource gefunden."

Haben Sie noch Fragen zur Behebung der Add-PDF-Funktion?

as aktuelle Skript finden Sie weiter unte

[System.Reflection.Assembly]::LoadFrom("C:\Temp\itextsharp`enter code here`\itextsharp.dll")
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$doc = New-Object itextsharp.text.document
#output PDF with all combined tiff and pdfs
$stream = [IO.File]::OpenWrite("C:\temp\itext\test.pdf")
$writer = [itextsharp.text.pdf.PdfWriter]::GetInstance($doc, $stream)

#$pdfCopy =New-Object iTextSharp.text.pdf.PdfCopy($doc, $stream)
$doc.Open()
$doc.SetMargins(0, 0, 0, 0)

#get the size of image and change pdf
function add-picture( $file2use){
    $pic = New-Object System.Drawing.Bitmap($file2use )
    $rect = New-Object iTextSharp.text.Rectangle($pic.Width, $pic.Height)

    ## Set the next page size to those dimensions and add a new page
    $doc.SetPageSize( $rect )
    $doc.NewPage()
#add image jpg
$img = [iTextSharp.text.Image]::GetInstance($file2use )
$doc.Add($img);

$pic.dispose()

}

function add-pdf( $newPDF){

$pdf2Merge = [System.IO.Path]::Combine("",$newPDF)
$pdfCopy = New-Object iTextSharp.text.pdf.PdfCopy($doc, $stream);
$reader = New-Object iTextSharp.text.pdf.PdfReader($pdf2Merge);
$pageCount = $reader.NumberOfPages;

for ($i = 1; $i -lt $pageCount ; $i++) {



        $pdfCopy.AddPage(
            $pdfCopy.GetImportedPage($reader, $i  ))
                                             # ^^^^^
                                             # your page number here

}
#$pdfCopy.FreeReader($reader);

}

add-picture  -file2use "C:\Temp\itext\3-26-04 (1).JPG"
add-picture  -file2use "C:\Temp\itext\CCITT_1.TIF" 
add-picture  -file2use "C:\Temp\itext\CCITT_2.TIF" 
add-pdf  -file2use "C:\Temp\itext\test2.pdf"

 ## Cleanup


#$doc.Close()
$stream.Close()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage