Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateien in PDF umwandeln

Frage Entwicklung Batch & Shell

Mitglied: roborol

roborol (Level 1) - Jetzt verbinden

26.03.2011, aktualisiert 18.10.2012, 8267 Aufrufe, 11 Kommentare

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

01.
@echo off 
02.
cls 
03.
setlocal 
04.
 
05.
rem Dateityp 
06.
set filetype=*.xls 
07.
 
08.
for /r "%~1" %%a in (%filetype%) do call :bearbeite "%%a" 
09.
 
10.
:bearbeite 
11.
 
12.
echo Datei %1 
13.
Pause 
14.
 
15.
for /f "delims=" %%i in ('dir /b %Datei%') do @set dokument=%%~ni 
16.
 
17.
echo Datei %1  
18.
echo %dokument% 
19.
Pause 
20.
 
21.
: PDF erzeugen 
22.
"C:\Program Files (x86)\PDFCreator\COM\Windows Scripting Host\VBScripts\Convert2PDF.vbs" "%dokument%" 
23.
 
24.
echo %dokument% 
25.
Pause 
26.
 
27.
endlocal
[Edit Codeformatierer] Gebibert. [/Edit]
Mitglied: 60730
26.03.2011, aktualisiert 18.10.2012
moin und willkommen,

  • schau dir bitte erst mal diesen Beitrag 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ß
Bitte warten ..
Mitglied: roborol
26.03.2011 um 15:17 Uhr
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
Bitte warten ..
Mitglied: 60730
26.03.2011 um 16:21 Uhr
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ß
Bitte warten ..
Mitglied: roborol
26.03.2011 um 16:55 Uhr
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
Bitte warten ..
Mitglied: Biber
26.03.2011 um 17:22 Uhr
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
Bitte warten ..
Mitglied: rubberman
26.03.2011 um 17:38 Uhr
Hallo roborol.

Hier siehst du was mit Codeformatierung 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:
01.
Set PDFCreator = Wscript.CreateObject("PDFCreator.clsPDFCreator", "PDFCreator_") 
02.
PDFCreator.cStart "/NoProcessingAtStartup" 
03.
For i = 0 to objArgs.Count - 1 
04.
  With PDFCreator 
05.
    ifname = objArgs(i) 
06.
    If Not fso.FileExists(ifname) Then 
07.
      MsgBox "Can't find the file: " & ifname, vbExclamation + vbSystemModal, AppTitle 
08.
      Exit For 
09.
    End If 
10.
    .cConvertFile ifname, CompletePath(fso.GetParentFolderName(ifname)) & fso.GetBaseName(ifname) & ".pdf" 
11.
  End With 
12.
Next
Für jede, als Argument übergebene Datei, wird eine eigene PDF Datei erzeugt.

Grüße
rubberman
Bitte warten ..
Mitglied: roborol
26.03.2011 um 17:56 Uhr
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
Bitte warten ..
Mitglied: bastla
26.03.2011 um 21:52 Uhr
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
Bitte warten ..
Mitglied: 76109
27.03.2011 um 01:25 Uhr
Hallo roborol!

Hier mal ein VBS-Beispiel, dass mit PDFCreater alle *.jpg-Dateien eines Ordners in eine *.pdf-Datei konvertiert.
01.
Const jpgPath = "E:\Test\Bilder" 
02.
 
03.
Const pdfName = "Test.pdf" 
04.
Const pdfPath = "E:\Test\Bilder\" 
05.
 
06.
Dim Fso, File, pdfJob, jobCount 
07.
 
08.
Set Fso = CreateObject("Scripting.FileSystemObject") 
09.
Set pdfJob = CreateObject("PDFCreator.clsPDFCreator") 
10.
 
11.
If pdfJob.cStart("/NoProcessingAtStartup") = False Then 
12.
    MsgBox "PDFCreator konnte nicht gestartet werden!.", vbExclamation, "Fehler" 
13.
End If 
14.
 
15.
With pdfJob 
16.
    .cOption("UseAutosave") = 1 
17.
    .cOption("UseAutosaveDirectory") = 1 
18.
    .cOption("AutosaveDirectory") = pdfPath 
19.
    .cOption("AutosaveFilename") = pdfName 
20.
    .cOption("AutosaveFormat") = 0  'Pdf-Format 
21.
    .cClearCache 
22.
End With 
23.
 
24.
jobCount = 0 
25.
     
26.
For Each File In Fso.GetFolder(jpgPath).Files 
27.
    If LCase(Fso.GetExtensionName(File.Name)) = "jpg" Then 
28.
        pdfJob.cAddPrintjob File:  jobCount = jobCount + 1 
29.
    End If 
30.
Next 
31.
     
32.
If jobCount Then 
33.
    With pdfJob 
34.
         Do Until .cCountOfPrintjobs = jobCount:  Loop 
35.
        .cCombineAll 
36.
        .cPrinterStop = False 
37.
    End With 
38.
     
39.
    Do Until Fso.FileExists(pdfPath & pdfName):  Loop 
40.
End If 
41.
     
42.
pdfJob.cClose
Mit Excel-Dateien geht's anstatt mit 'pdfJob.cAddPrintjob' dann in etwa so:
01.
For Each File In Fso.GetFolder(xlsPath).Files 
02.
    If LCase(Fso.GetExtensionName(File.Name)) = "xls" Then 
03.
        Set Wkb = GetObject(File) 
04.
 
05.
        For Each Wks In Wkb.Worksheets 
06.
            Wks.PrintOut , , 1, , "PDFCreater":  jobCount = jobCount + 1 
07.
        Next 
08.
 
09.
        Wkb.Close False 
10.
    End If 
11.
Next
Gruß Dieter
Bitte warten ..
Mitglied: roborol
27.03.2011 um 17:18 Uhr
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
Bitte warten ..
Mitglied: Biber
27.03.2011 um 21:37 Uhr
[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]
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Drucker und Scanner
Problem mit Ausdruck von PDF Dateien (4)

Frage von CountryBoy zum Thema Drucker und Scanner ...

Viren und Trojaner
gelöst "Gefährlichkeit" von PDF-Dateien (8)

Frage von thaefliger zum Thema Viren und Trojaner ...

Grafik
PDF: gescannte Doppelseite in Einzelseiten umwandeln (9)

Frage von traller zum Thema Grafik ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (22)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...