Zusammenführen von mehreren .docx zu PDF

Sebastian231

Cadet 1st Year
Registriert
Jan. 2022
Beiträge
8
Hallo zusammen,

zur Vereinfachung der Archivierung von Daten brauche ich eine ausführbare Datei (.batch) um mehrere Word Dokumente mittels
pdf24 in ein zusammenhängendes pdf Dokument im Format pdf a-2b Format umzuwandeln.

Kann mir hier jemand helfen?

Wäre super nett von euch,

Vielen Danke,
Sebastian
 
Im prinzip was ich gestern im thread von @DFFVB gepostet habe, hier jetzt mit loop
kann nur bash bieten :p
Braucht als dependency nur imagemagic
Bash:
#!/bin/bash
# Filename als variable
output_file_name="merged.pdf"

# Loop over Word documents in current dir
for file in *.docx; do
    convert "$file" "${file%.*}.pdf"
    convert "$output_file_name" "${file%.*}.pdf" "$output_file_name"
    # Remove the tempfile
    rm "${file%.*}.pdf"
done

echo "Done: $output_file_name"

Der looped so ueber alle docx dateien in einem Ordner.
Den ordnernamen bekommst du so als Dateinamen:
Bash:
current_dir=$(basename "$(pwd)")
output_file="${current_dir}.pdf"
einfach zeile 3 durch die 2 ersetzen
 
  • Gefällt mir
Reaktionen: BFF und DFFVB
@blautemple bissl mehr lesen was der TE schreibt..
 
  • Gefällt mir
Reaktionen: azereus, BFF und madmax2010
madmax2010 schrieb:
Im prinzip was ich gestern im thread von @DFFVB gepostet habe, hier jetzt mit loop
kann nur bash bieten :p
Braucht als dependency nur imagemagic
Bash:
#!/bin/bash
# Filename als variable
output_file_name="merged.pdf"

# Loop over Word documents in current dir
for file in *.docx; do
    convert "$file" "${file%.*}.pdf"
    convert "$output_file_name" "${file%.*}.pdf" "$output_file_name"
    # Remove the tempfile
    rm "${file%.*}.pdf"
done

echo "Done: $output_file_name"

Der looped so ueber alle docx dateien in einem Ordner.
Den ordnernamen bekommst du so als Dateinamen:
Bash:
current_dir=$(basename "$(pwd)")
output_file="${current_dir}.pdf"
einfach zeile 3 durch die 2 ersetzen
Vielen dank für die super schnelle Antwort.
Leider bin ich kompletter Neuling.

Sollte sowas werden wie, markieren mehrerer .docx Dokumente rechte Maus dann senden an XXXX und dann kommt das pdf dabei raus im selben Ordner? Ist das machbar?
Wie "startet" man eine bash Datei?

Sorry für die vielen Fragen :-(
 
Bash ist eine Linux Shell und die datei da in dem Fall eine Batch Datei für die Shell.

Ach und falls du fragst, was Linux ist, das ist ein Betriebssystem, wie WIndows, nur eben nicht WIndows. Kann man auf jedem PC instalieren, wie man auch WIndows installieren kann (über den Kamm geschoren).

Dann evtl. noch spezifisch dazu:
Sebastian231 schrieb:
Wie "startet" man eine bash Datei?

Man öffne ein Terminal und in dem begibt man sich per "cd"/Change Direcory" in das Verzeichnis in dem man die Batch Datei angelegt hat und ausführbar gemacht hat per dessen Attribute.
Dann gibt man fürhend ein ./ ein, danach den namen der Batchdatei, angenommen die heißt schnupsi.bash dann so:
je nach Dateibrobser kann auch ein klick darauf genügen, wobei dann aber keine Rückmeldung gegeben wird... Dolphin als Beispiel fragt, ob man diese Batch dann öffnen oder ausführen möchte bei einem Klick.
 
Zuletzt bearbeitet:
Das es ja ein Windows-PC ist kann man auch Powershell nehmen.

Code:
##########################################################
####           Batch Convert .docx to PDF             ####
####                                                  ####
####   https://github.com/matthansen0/batch-docx2pdf  ####
##########################################################


$path = Read-Host -Prompt "Please enter the file system path to your docx files."
$msWord = New-Object -ComObject Word.Application

Get-ChildItem -Path $path -Filter *.doc? -ErrorAction Stop | ForEach-Object {
        $doc = $msWord.Documents.Open($_.FullName)
        $pdf_filename = "$($_.DirectoryName)\$($_.BaseName).pdf"
        $doc.SaveAs([ref] $pdf_filename, [ref] 17)
        $doc.Close()
    }
$msWord.Quit()

Write-Host "Conversion is complete. PDF files have been saved to $path." -ForegroundColor Green

-> https://github.com/matthansen0/batch-docx2pdf/blob/main/doc2pdf.ps1

Sebastian231 schrieb:
Sollte sowas werden wie, markieren mehrerer .docx Dokumente rechte Maus dann senden an XXXX und dann kommt das pdf dabei raus im selben Ordner? Ist das machbar?

Das koennte theoretisch gehen wenn man einen passenden PDF-Drucker installiert hat. Ich meine das der edocprinter mal solch Art Faehigkeit hatte. Ist allerdings ein paar Jahre her als ich den noch benutzt hatte.

Der fehlerfreiste Weg waere fuer mich, einzelne PDF erstellen und die mit pdf24 zusammensetzen. Dazu gibt es Anleitungen von denen selbst.
Batch/Scriptumwandlung birgt immer das Risiko das die Sortierung im Ziel daneben gehen kann.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: madmax2010
Zurück
Oben