[Batch Rename/Converter] [VBS Script] Mangas zu PDF

Xardius

Prophet
Hallo.

Eines Vorweg:
Ich habe mir hier aus verschiedenen Sachen im Internet quasi was zusammengeklaut. Nicht alles davon habe ich verstanden. Viel ist rumprobiert. Aber es geht. Jemand der Ahnung hat schlägt bestimmt die Hände über den Kopf zusammen, derjenige darf es dann aber auch bitte gleich verbessern ;)

Da ich meine Mangas gerne als PDF lese habe ich mir ein Script zusammengebastelt mit dem man schnell Mangas die aus einzelnen Bildern bestehen zu einem PDF zusammenzuwurschteln kann.

PDFs haben für mich folgende Vorteile:
- bestehen nur aus einer einzelnen Datei (ähnlich wie bei CBZ/CBR)
- PDF Dateien können von nahezu allen Geräten gelesen werden
- und am wichtigsten: Es gibt bessere Reader als für CBZ/CBR (meine Meinung)

Sie haben aber auch Nachteile:
- lassen sich nachträglich nur sehr umständlich bearbeiten
- sind erheblich größer als die einzelnen Bilder, wer wenig freien Speicher hat sollte also sich das also gut überlegen

Das Script benötigt IrfanView (IrfanView führt das eigentliche umwandeln aus).

Bevor wir zum Script und zu einer kurzen Anleitung kommen hier noch zwei wichtige Sachen die Ihr wissen müsst:
1. Die Seiten werden nach den Dateinamen der einzelnen Bilder sortiert. Sollten die Namen der einzelnen Bilder nicht passen wird die PDF Datei also nur ein großes Kuddelmuddel.
(Garbage In, Garbage Out)

2. Spezielle Sonderzeichen sowie Punkte und einige andere Zeichen in den Dateinamen sind leider großer Käse und sorgen dafür das die PDF Dateien am ende unvollständig sind. Leider kommen bei Mangas sehr oft irgendwelche Sonderzeichen wie Sternchen oder ähnliches im Dateinamen vor.
Diese müssen Vorher entfernt werden. Ich nutze Dazu ReNamer mit folgenden Einstellungen:

So werden alle Zeichen außer A-Z, a-z, 0-9, (){}[] -_ gelöscht.
(Das gilt sowohl für Datei als auch für Ordnernamen!)

Nun zu Anleitung...

1. Erstellt eine neue Datei mit der Dateiendung .vbs (also z.B. "Manga2PDF.vbs"). Achtet darauf das die Datei nicht "Manga2PDF.vbs.txt" oder so heisst.
2. Bearbeitet die Datei mit einem Texteditor eurer Wahl (etwas fähigere Editoren wie z,B, Notespad++ und PSPad können das ganze schön farblich darstellen, das macht es übersichtlicher) und fügt folgenden Text ein:
Code:
'hier wird der Zielpfad definiert. Dieser muss in anführungszeichen stehen! AM ENDE DARF KEIN \ STEHEN!
Zielpfad = "D:\Mangas"

'Hier steht der Pfad zur IrfanView Installation. Diese muss ggf. angepasst werden. Es muss der Pfad inkluse der .exe angegeben werden.
IrfanViewPfad = "C:\Program files\Irfanview\i_view64.exe"

'wenn man möchte das nur PNG Dateien zu der PDF hinzugefügt werden kann man hier ".png" eintragen. Gleiches gilt auch für andere Formate. Lässt man es leer ("") nimmt er alle Formate.
Dateiformat = ""

'Ab hier nichts mehr ändern außer Ihr wisst was ihr tut.

'Hier werden wichtige Dinge gemacht ohne die es nicht geht.
dim shell, fso
Dim f, process
set fso = CreateObject("Scripting.FileSystemObject")
set shell = createObject("WScript.shell")

'hier wird geprüft ob ein Argument übergeben wurde, also ob das Script auf einen Ordner gezogen wurde
If wscript.arguments.count = 0 then
 msgbox "No folder selected" : wscript.quit
else

'das hier versteh ich selber nicht
process = wscript.arguments(0)

'hier wird der Ordnerpfad in die Variable f geschrieben und es wird "SchleifeAlleUnterordner" aufgerufen.
Set f = fso.GetFolder(process)
SchleifeAlleUnterordner fso.GetFolder(process)
end if

'diese Schleife ruft für jeden Unterordner "PDFerstellen" auf.
Sub SchleifeAlleUnterordner(f)
  Dim item
  For Each item In f.SubFolders
    SchleifeAlleUnterordner item
    PDFerstellen item
  Next
End Sub

'hier wird mit IrfanView das PDF erstellt.
Sub PDFerstellen(Ordner)
n = Ordner.Name
shell.Run chr(34) & IrfanViewPfad & chr(34) & " "& "/multipdf=("& Zielpfad & "\" & n & ".pdf" & "," & f & "\" & n & "\*" & Dateiformat & ") /cmdexit" ,2 ,true
End Sub

'hier wird das Script ordentlich geschlossen oder so. Keine Ahnung um ehrlich zu sein. Hab das so in anderen Scripts gelesen.
set shell=nothing
set objFSO=nothing
WScript.quit
3. Ändert im VBS Code oben euren Zielpfad (also da wo die PDF Dateien gespeichert werden sollen), den Pfad zu eurer IrfanView Installation und ggf. die Dateiformate.

4. Speichert das Script ab

5. Zieht den Ordner mit den Mangas die Ihr umwandeln wollt auf das Script. Befolgt dabei diese Regel:

In diesem Beispiel muss der Ordner "Mangas" auf das Script gezogen werden. Es werden dann 9 PDF Dateien mit den Namen "Manga 1" - "Manga 9" erstellt.
Man kann nicht den Ordner "Manga 1" auf das Script ziehen. Dazu müsste man dieses vorher etwas abändern.

6. Wartet etwas, je nach größe kann das ganze etwas dauern.

7. Profit oder so.
 
Zuletzt bearbeitet:
Oben