Textdateien stapelweise in PDF umwandeln

Jintho

Ensign Pro
Registriert
Sep. 2011
Beiträge
241
Hallo liebe Mitforisten!
Ich bräuchte mal einen guten Tipp zur Stapelverarbeitung von .txt in .pdf-Dateien.
Zum Hintergrund: Ein Bekannter von mir hat Hunderte (oder Tausende) von Textdateien, die er gerne in PDFs umwandeln möchte. Geneuer gesagt - es sind Protokolldateien einer Maschine, die zwar nicht als .txt-Datei abgelegt werden, aber mit LibreOfffice problemlos als Klartext geöffnet und bearbeitet werden können. Und genau letzteres möchte er vermeiden, bevor er sie weitergibt bzw archiviert. Jetzt könnte er natürlich alle der Reihe nach in LibreOffice öffnen und als PDF speichern. Das funktioniert auch problemlos, ist aber bei dieser Menge nicht praktikabel.
Ich habe mich nun ein wenig umgesehen, wie man das am geschicktesten löst. Die üblichen PDF-Umwandelprogramme scheinen das allerdings mit einem Onlinedienst zu lösen, wobei man die entsprechenden Dateien dort erst hochladen müsste - dies kommt auf keinen Fall in Frage! Oder gibt es vielleicht doch ein Tool mit GUI, wo man einfach ganze Ordner reinwerfen kann und dann das Format wählt und auf "Umwandeln" drückt? Das wäre für ihn definitiv die bevorzugte Methode.
Ich habe mich auch schon an der CLI-Variante für LO versucht. Bin aber leider auf keinen grünen Zweig gekommen. Hier wäre ich um Unterstützung bzgl der Syntax dankbar. Im Notfall könnte ich das dann für Ihn so erledigen, falls er damit nicht klarkommt. Das ist aber definitiv auch keine Dauerlösung.
Einzige unbekannte Vaiable wäre dann noch die spezifische Dateiendung, welche seine Maschine ausspuckt...
Aber ich würde es trotzdem gerne mal versuchen.

Ich sage dann schonmal brav vielen Dank an alle Helfer und wünsche noch ein schönes Restwochenende!

LG,
Jintho
 
Danke sehr!
So etwas hatte ich gesucht! Das scheint ja wirklich sehr umfangreich zu sein und mein kurzer Test hat auch funktioniert. Ich werde es später dann auch nochmal mit getrennter Internetverbindung versuchen ;-)

Damit scheint der Fall dann auch schon gelöst, außer es möchte noch jemand ein passendes CLI-Kommando posten. Das wäre als Batch natürlich auch recht elegant und bräuchte keine zusätzlich installierte Software. Unter anderem falls noch jemand anderes ein ähnliches Problem hat.

Danke nochmal und schönen Sonntag allesamt!
 
  • Gefällt mir
Reaktionen: PonJoe58
Ich werfe mal das hier in den Raum, Browserbasiert aber läuft offline: https://bentopdf.com/ Basiert auf Open-Source, benötigt kein login etc.
Müsste man testen ob es für den Anwendungsfall klappt, hab noch nicht viel damit gearbeitet. Wenn es Textdateien (.txt) aber mit abweichender Endung sind, kann es natürlich sein, dass die Tools damit nicht zurecht kommen. Da gibt es aber sicher Software oder eine batch-Datei, die zunächst die Endung entsprechend anpassen kann.

Edit: Webseite hat Tracking/Analytics, nur nicht über JS.
Edit2: Leider kann die Seite aktuell keine Text-Dateien umwandeln (JSON ginge), sondern erwartet den Text direkt per Copy Paste eingefügt. Das hilft hier natürlich nicht. Bild zu pdf hat offline problemlos geklappt.
 
Zuletzt bearbeitet:
Jintho schrieb:
Ich werde es später dann auch nochmal mit getrennter Internetverbindung versuchen
Ohne Internet geht das natürlich nicht. Wie auch. Bei diesem Dienst und auch alle anderen Onlinediensten werden die Daten natürlich hochgeladen zu dem Anbieter.
 
@Jintho Bevor Du Dir die Arbeit machst: Auch PDFs können bearbeitet werden.
Je nach verfolgtem Ziel könnten PDFs evtl. nicht als Lösung taugen.

Wogegen möchte sich Dein Bekannter schützen, wenn er die Daten nicht als Textdatei weitergeben möchte?
 
BlubbsDE schrieb:
Ohne Internet geht das natürlich nicht. Wie auch. Bei diesem Dienst und auch alle anderen Onlinediensten werden die Daten natürlich hochgeladen zu dem Anbieter.
Das stimmt so pauschal nicht. Browser selbst können auch Code ausführen.
 
Thorakon schrieb:
Ich werfe mal das hier in den Raum, Browserbasiert aber läuft offline: https://bentopdf.com/ Basiert auf Open-Source, benötigt kein login etc.
Müsste man testen ob es für den Anwendungsfall klappt, hab noch nicht viel damit gearbeitet. Wenn es Textdateien (.txt) aber mit abweichender Endung sind, kann es natürlich sein, dass die Tools damit nicht zurecht kommen. Da gibt es aber sicher Software oder eine batch-Datei, die zunächst die Endung entsprechend anpassen kann.

Edit: Webseite hat Tracking/Analytics, nur nicht über JS.
Edit2: Leider kann die Seite aktuell keine Text-Dateien umwandeln (JSON ginge), sondern erwartet den Text direkt per Copy Paste eingefügt. Das hilft hier natürlich nicht. Bild zu pdf hat offline problemlos geklappt.
Hallo @Thorakon,
das ist tatsächlich eine extrem coole Seite. Aber leider kann man da wohl nur Text in ein Feld kopieren und daraus dann das gewünschte PDF erstellen lassen. Prinzipiell cool, aber leider nicht für meinen Anwendungsfall geeignet. Funktioniert aber komplett offline - also Daumen hoch!

Joe Dalton schrieb:
@Jintho Bevor Du Dir die Arbeit machst: Auch PDFs können bearbeitet werden.
Je nach verfolgtem Ziel könnten PDFs evtl. nicht als Lösung taugen.

Wogegen möchte sich Dein Bekannter schützen, wenn er die Daten nicht als Textdatei weitergeben möchte?
Hallo @Joe Dalton,
da muss ich jetzt zugeben, dass ich das nicht genau weiß. Vielleicht einfach nur, damit nicht einer der Mitarbeiter versehentlich daran rumpfuscht. Aber dein Hinweis ist natürlich gerechtfertigt und wird auch so weitergegeben. Danke.
Ergänzung ()

BFF schrieb:

Danke auch Dir!
Mit dem Python-Script weiß ich jetzt zugegebenermaßen nicht allzuviel anzufangen :confused_alt:
Es scheint aber laut Beschreibung keine Batch-Verarbeitung zu unterstützen.
Und der 2. Link führt mich zu einer SW aus den 00ern zum Kauf?
Tut mir leid, wenn ich mich ein bisschen doof anstelle :heilig:
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Joe Dalton
Jintho schrieb:
nur, damit nicht einer der Mitarbeiter versehentlich daran rumpfuscht.
Dann sollte sich ein Systemhaus drum kümmern und auch der Ersteller des Systems was diese Protokolle abwirft.

Jintho schrieb:
wenn ich mich ein bisschen doof anstelle

Das sind Beispiele.
Und was das Pythonscript angeht, das lässt man halt per Script auf die Daten los.

Hier ein ungeprueftes Powershellbeispiel. Das setzt den windowseigenen PDF Drucker voraus.

PowerShell:
function ConvertTo-TextFileToPdf {
    param(
        [Parameter(Mandatory=$true)]
        [string]$SourceFolderPath,
        [Parameter(Mandatory=$true)]
        [string]$OutputFolderPath
    )

    # Ensure output folder exists
    if (-not (Test-Path $OutputFolderPath)) {
        New-Item -Path $OutputFolderPath -ItemType Directory | Out-Null
    }

    Get-ChildItem -Path $SourceFolderPath -Filter "*.txt" | ForEach-Object {
        $textFile = $_.FullName
        $pdfFileName = [System.IO.Path]::ChangeExtension($_.Name, ".pdf")
        $outputPdfPath = Join-Path $OutputFolderPath $pdfFileName

        # Configure PrintDocument
        $printDoc = New-Object System.Drawing.Printing.PrintDocument
        $printDoc.DocumentName = $textFile
        $printDoc.PrinterSettings.PrinterName = "Microsoft Print to PDF"
        $printDoc.PrinterSettings.PrintToFile = $true
        $printDoc.PrinterSettings.PrintFileName = $outputPdfPath

        # Event handler for printing
        $script:currentTextFileContent = Get-Content $textFile | Out-String
        $printDoc.add_PrintPage({
            param($sender, $e)
            $e.Graphics.DrawString($script:currentTextFileContent,
                                 (New-Object System.Drawing.Font("Arial", 10)),
                                 [System.Drawing.Brushes]::Black, 0, 0)
        })

        $printDoc.Print()
        $printDoc.Dispose()
    }
}

# Example Usage:
# ConvertTo-TextFileToPdf -SourceFolderPath "C:\MyTextFiles" -OutputFolderPath "C:\MyPDFOutput"
 
Zuletzt bearbeitet:
Geht auch über CLI mit Libreoffice:
soffice --headless --convert-to pdf:writer_pdf_Export meineTextdatei.txt

Als ganz einfaches Shell-Skript:

Code:
#!/usr/bin/bash

for TXT_FILE in $( ls $PWD/*.txt )
do
    soffice --headless --convert-to pdf:writer_pdf_Export $TXT_FILE
done
 
Zuletzt bearbeitet:
Zurück
Oben