roborol
Goto Top

Dateien in PDF umwandeln

Hallo,

ich bin neu hier, habe noch nicht viel mit Batch Dateien gemacht.

Da mich das Thema aber interessiert habe ich nun versucht ein Patch zu schreiben welches in verschiedenen Ordnern mir XLS Dateien in PDF Dateien umwandeln.

Ich konnte schon einige Informationen aus dem Forum raus holen.

Jetzt jedoch komme ich nicht mehr weiter.

Vielleicht kann mir jemand helfen.

Gruss
Roland

@echo off
cls
setlocal

rem Dateityp
set filetype=*.xls

for /r "%~1" %%a in (%filetype%) do call :bearbeite "%%a"  

:bearbeite

echo Datei %1
Pause

for /f "delims=" %%i in ('dir /b %Datei%') do @set dokument=%%~ni  

echo Datei %1 
echo %dokument%
Pause

: PDF erzeugen
"C:\Program Files (x86)\PDFCreator\COM\Windows Scripting Host\VBScripts\Convert2PDF.vbs" "%dokument%"  

echo %dokument%
Pause

endlocal

[Edit Codeformatierer] Gebibert. [/Edit]

Content-Key: 163394

Url: https://administrator.de/contentid/163394

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 60730
60730 Mar 26, 2011, updated at Oct 18, 2012 at 16:46:16 (UTC)
Goto Top
moin und willkommen,

  • schau dir bitte erst mal an
  • und dann gerne die rot markierte Formatierungshilfe - Stichwort Codeblöcke
  • deine erste for schleife sieht sehr merkwürdig aus "%~1" - ist das eine Drag & Drop Batch ? - (ein Patch ist was anderes....)
  • auch der Parameter "%Datei%" - ich sehe den nur einmal

  • ergo auch mal in den Anleitungen nach der For Schleifen Anleitung suchen und lesen.

Gruß
Member: roborol
roborol Mar 26, 2011 at 14:17:32 (UTC)
Goto Top
Hallo TimoBeil,

vielen Dank für deine Rückantwort.

Ja genau das sollte eine Drag & Drop Batch werden.

Ich habe es mal so weit am laufen.
Vielleicht könntest du mir noch einen Tipp geben, im Moment werden alle jpg in den jeweiligen Ordnern in PDF umgewandelt.
Wie bekomme ich es hin das die jpg pro Ordner in eine pdf zusammengefasst werden.

Gruss
Roland


@echo off
cls
setlocal

rem Dateityp
set filetype=*.JPG

for /r "%~1" %%a in (%filetype%) do call :bearbeite "%%a"

:bearbeite

for /f "delims=" %%i in ('dir /b %1') do @set dateierw=%%~xi

if exist not %dateierw% ==".jpg" goto nofile

: PDF erzeugen
"C:\Program Files (x86)\PDFCreator\COM\Windows Scripting Host\VBScripts\ConvertJPEG2PDF.vbs" %1

:nofile


endlocal
Mitglied: 60730
60730 Mar 26, 2011 at 15:21:28 (UTC)
Goto Top
Moin,

sorry, aber bitte lese dir nochmal meine Zeilen genau durch.

[Edit Codeformatierer] Gebibert. [/Edit]
...ist doch einen unnötige Arbeitsbeschaffungsmassnahme¶
genauso das off vom Echo ....
  • dann hab ich keine Ahnung, was du willst - und glaub mir ich bin da nicht genauer, als der Rechner es von mir verlangt.

  • pro jpg eine Seite und alle Seiten in eine PDF
  • müssen die Bildinformationen ausgelesen werden um die Bilder evtl. zu drehen
  • alle jpg oder immer Anzahl x auf eine Seite und diese in ein PDF
  • usw usf


btw: Wenn Du jetzt denkst, du hast es hier mit einem Hilfswilligen zu tun, der dir zuerst den kleinen Finger reicht und nur, wenn ihm das Resultat gefällt dieser dir die ganze Hand reicht....
Dann tuts mir leid, dass du mich so schnell durchschaut hast und sei froh, dass bis jetzt aus dem kleinen Finger kein erhobener Zeige oder Mittelfinger geworden ist



Gruß
Member: roborol
roborol Mar 26, 2011 at 15:55:44 (UTC)
Goto Top
Hallo TimoBeil,

ich blicke nicht was du meinst.
[Edit Codeformatierer] Gebibert. [/Edit]

Bildinformationen brauchen nicht ausgelesen werden.
In den einzelnen Ordnern liegen max. 10 jpg., diese möchte zu einer pdf zusammen fügen.
Im Moment gibt es für jedes Bild eine PDF.
Name der pdf so wie das erste Bild
Reihenfolge der Bilder in der pdf spielen keine Rolle

Gruss
Roland
Member: Biber
Biber Mar 26, 2011 at 16:22:46 (UTC)
Goto Top
Moin roborol,

willkommen im Forum.
Um den Beitrag nicht über Gebühr in die Länge zu ziehen die kleine Aufklärung zum "Gebiberten".

T-Mo war ein wenig vergrätzt, weil du - nachdem er dich auf die "Codeformatierung" hingewiesen hat und nachdem ich dir deinen Quelltext im Eröffnungsbeitrag in lesbare Form gebracht habe, in deiner Antwort wieder unformatierten Fliesstext verwendet hast.

Auch wenn man/frau es T-Mo manchmal nicht anmerkt -eigentlich ist er schüchtern und sensibel, und es fällt ihm schon schwer genug, mit diesen klitzenkleinen rundum abgerundeten Zaunpfählchen zu winken und er könnte schon gar nicht sein Missfallen auf eine direkte, vielleicht ruppig wirkende Art kundtun.

Also ignorier das Geplänkel, durchscanne T-Mo's Durch-die-Blume-Geflöte lieber zweimal nach versteckten und hilfreichen Details.
Wenn er schon anfragt, ob du seinen Kommentar gelesen hast, dann hast du etwas übersehen..

Grüße
Biber
Member: rubberman
rubberman Mar 26, 2011 at 16:38:08 (UTC)
Goto Top
Hallo roborol.

Hier siehst du was mit gemeint ist.

Was auch immer für Fehler in deinem Script vorkommen, das was du vorhast wirst du eh nicht damit erreichen.
1. Du willst laut deinem Intro letztlich XLS Dateien mit einem Tool namens "ConvertJPEG2PDF.vbs" verarbeiten? Das wird nichts.
2. Du willst mehrere Bilder in einem PDF File zusammen fassen, aber das benutzte Tool lässt das nicht zu.
Hier mal der entsprechende Ausschnitt aus dem VBScript:
Set PDFCreator = Wscript.CreateObject("PDFCreator.clsPDFCreator", "PDFCreator_")  
PDFCreator.cStart "/NoProcessingAtStartup"  
For i = 0 to objArgs.Count - 1
  With PDFCreator
    ifname = objArgs(i)
    If Not fso.FileExists(ifname) Then
      MsgBox "Can't find the file: " & ifname, vbExclamation + vbSystemModal, AppTitle  
      Exit For
    End If
    .cConvertFile ifname, CompletePath(fso.GetParentFolderName(ifname)) & fso.GetBaseName(ifname) & ".pdf"  
  End With
Next
Für jede, als Argument übergebene Datei, wird eine eigene PDF Datei erzeugt.

Grüße
rubberman
Member: roborol
roborol Mar 26, 2011 at 16:56:47 (UTC)
Goto Top
Hallo rubberman,

danke für die Rückmeldung.

Da brauche ich dann woll eine andere Möglichkeit aus den nun erzeugten pdf Dateien ein gesamte pdf zu erzeugen.

Ich habe etwa 200 Ordner und das dauert einfach zu lange mit pdf24.

Gruss
roborol
Member: bastla
bastla Mar 26, 2011 at 20:52:14 (UTC)
Goto Top
Hallo roborol und auch von mir ein Willkommen!
Da brauche ich dann woll eine andere Möglichkeit aus den nun erzeugten pdf Dateien ein gesamte pdf zu erzeugen.
Sieh Dir einmal pdftk an ...

Grüße
bastla
Mitglied: 76109
76109 Mar 27, 2011 at 00:25:45 (UTC)
Goto Top
Hallo roborol!

Hier mal ein VBS-Beispiel, dass mit PDFCreater alle *.jpg-Dateien eines Ordners in eine *.pdf-Datei konvertiert.
Const jpgPath = "E:\Test\Bilder"  

Const pdfName = "Test.pdf"  
Const pdfPath = "E:\Test\Bilder\"  

Dim Fso, File, pdfJob, jobCount

Set Fso = CreateObject("Scripting.FileSystemObject")  
Set pdfJob = CreateObject("PDFCreator.clsPDFCreator")  

If pdfJob.cStart("/NoProcessingAtStartup") = False Then  
    MsgBox "PDFCreator konnte nicht gestartet werden!.", vbExclamation, "Fehler"  
End If

With pdfJob
    .cOption("UseAutosave") = 1  
    .cOption("UseAutosaveDirectory") = 1  
    .cOption("AutosaveDirectory") = pdfPath  
    .cOption("AutosaveFilename") = pdfName  
    .cOption("AutosaveFormat") = 0  'Pdf-Format  
    .cClearCache
End With

jobCount = 0
    
For Each File In Fso.GetFolder(jpgPath).Files
    If LCase(Fso.GetExtensionName(File.Name)) = "jpg" Then  
        pdfJob.cAddPrintjob File:  jobCount = jobCount + 1
    End If
Next
    
If jobCount Then
    With pdfJob
         Do Until .cCountOfPrintjobs = jobCount:  Loop
        .cCombineAll
        .cPrinterStop = False
    End With
    
    Do Until Fso.FileExists(pdfPath & pdfName):  Loop
End If
    
pdfJob.cClose

Mit Excel-Dateien geht's anstatt mit 'pdfJob.cAddPrintjob' dann in etwa so:
For Each File In Fso.GetFolder(xlsPath).Files
    If LCase(Fso.GetExtensionName(File.Name)) = "xls" Then  
        Set Wkb = GetObject(File)

        For Each Wks In Wkb.Worksheets
            Wks.PrintOut , , 1, , "PDFCreater":  jobCount = jobCount + 1  
        Next

        Wkb.Close False
    End If
Next

Gruß Dieter
Member: roborol
roborol Mar 27, 2011 at 15:18:09 (UTC)
Goto Top
Hallo bastla, didi1954

vielen Dank für weiteren Info's.

Ich habs mit dem pdftk hin bekommen.
Von dir Bastla habe im Forum einige Beiträge zum pdftk gefunden die haben zum gewünschten Ergebnis geführt.

Ein Dankeschön an alle für die rasche Hilfe !!!

Gruss
Roland
Member: Biber
Biber Mar 27, 2011 at 19:37:05 (UTC)
Goto Top
[OT]
Zitat von @roborol:
Ich habs mit dem pdftk hin bekommen.
Von dir Bastla habe im Forum einige Beiträge zum pdftk gefunden die haben zum gewünschten Ergebnis geführt.

Ein Dankeschön an alle für die rasche Hilfe !!!
Dann setze ich den Beitrag auf "Gelöst" für dich.

Grüße
Biber
[/OT]