2 PDF -> zu 1 PDF

Zaiga

Lieutenant
Registriert
März 2011
Beiträge
907
Hallo zusammen,

langsam verzweifle ich :) an der "einfachen" Aufgaben:
Ich suche ein Skript welches folgende Aufgabe erledingen kann:

Ordner:
File 1: 123.pdf
File 2: Anlage123.pdf

Ein Klick auf das Skript

Löscht File 1 und 2 und macht ein File 3
File 3: 1654 mit Anlage.pdf

Das File 2 hat immer im Namen "Anlage" und das File 3 erhält den Namen File 1 + "mit Anlage"


Jemand eine idee wie ich das am besten umsetzten kann.
Ich dachte an Powershell.
 
  • Gefällt mir
Reaktionen: Zaiga, Raijin und gaym0r
Guck mal hier:
https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Dann runterscrollen und die "Server"-Variante nehmen. Damit kann man alles über die Kommandozeile steuern. und dann eine scriptsprache deiner Wahl/Vorliebe nehmen, wobei auch praktisch ein Befehl für deine Anforderung reichen müsste.
 
  • Gefällt mir
Reaktionen: Zaiga
Pdf24 find ich super, geht offline (nutze ich) und auch online (halte ich nicht viel von).
https://de.pdf24.org/

Vg Chris
 
  • Gefällt mir
Reaktionen: Zaiga
ganz klar QPDF

PDFTK vorher, aber das wird nicht mehr weiterentwickelt, oft nicht mehr in den Paketquellen

Aber concat kann wohl jedes lumpige PDF Skript Tool

Achja, das sind Tips für Linux, Windows keine Ahnung.
 
  • Gefällt mir
Reaktionen: Zaiga
abcddcba schrieb:
Achja, das sind Tips für Linux, Windows keine Ahnung.
Zaiga schrieb:
Ich dachte an Powershell.
naja naja... :D

@Zaiga
ansonsten wurden schon genug Tools genannt, die über CLI ansteuerbar, und somit auch über die Powershell aufzurufen sind.

Ansonsten ggf. sowas hier:
https://www.powershellgallery.com/packages/MergePdf/1.1
Keine Ahnung wie gut das klappt. "powershell pdf merge" in die Suchmaschine deines Vertrauens eingeben und durcharbeiten. :)
 
  • Gefällt mir
Reaktionen: Zaiga und abcddcba
1. Im Netz nach "PdfSharp-gdi.dll" suchen.

PowerShell:
$SharpFile = "D:\PdfSharp-gdi.dll"
$PdfFiles = Get-ChildItem "D:\Pdf" -Filter "*.pdf"
$DestPdfF = "D:\Pdf\NeuerName.pdf"

MergePdf -Files $PdfFiles -DestinationFile $DestPdfF -PdfSharpPath $SharpFile -Force

Function MergePdf
{
    Param
    (
        [Parameter(Mandatory=$True)]
        [ValidateNotNullOrEmpty()]
        [ValidateScript({$True})]
        [System.IO.FileInfo[]]$Files,
        [Parameter(Mandatory=$True)]
        [Parameter(Mandatory=$True)]
        [ValidateNotNullOrEmpty()]
        [System.IO.FileInfo]$DestinationFile,
        [Parameter(Mandatory=$True)]
        [ValidateNotNullOrEmpty()]
        $PdfSharpPath,
        [Switch]$Force
    )
    Add-Type -LiteralPath $PdfSharpPath
    [System.IO.DirectoryInfo]$DestinationDirectory = $DestinationFile | Split-Path -Parent
    $Pdf = New-Object PdfSharp.Pdf.PdfDocument

    ForEach ($File in $Files)
    {
        $InputDocument = [PdfSharp.Pdf.IO.PdfReader]::Open($File.FullName, [PdfSharp.Pdf.IO.PdfDocumentOpenMode]::Import)
        For ($Index = 0; $Index -Lt $InputDocument.PageCount; $Index++)
        {
            $Page = $InputDocument.Pages[$Index]
            $Null = $Pdf.AddPage($Page)
        }
    }
    If ((Test-Path $DestinationFile.FullName) -And $Force)
    {
        Remove-Item $DestinationFile.FullName -Force
    }
    $Pdf.Save($DestinationFile.FullName)
}

Das ist ein Auszug aus meinem Skript, den ich auf die Schnelle hier einstelle.
Verzeichnisse müssen angepasst werden und das Skript sollte nur mit unwichtigen Test-Dateien ausgeführt werden.

Wie immer, alles auf eigene Gefahr.
 
  • Gefällt mir
Reaktionen: schneup und Zaiga
Vielen Dank !!!!
Habs mit dem Skript gelöst, funktioniert super!
 
  • Gefällt mir
Reaktionen: NotNerdNotDau, schneup, Der Lord und eine weitere Person
Zurück
Oben