Thema Datum  Von Nutzer Rating
Antwort
Rot Verzeichnis mit Leerzeichen für Ghostscript verwenden
29.07.2022 11:35:27 Nadine
NotSolved
29.07.2022 11:45:02 Gast43710
NotSolved
29.07.2022 11:52:52 Nadine
NotSolved
29.07.2022 16:05:41 Gast32268
NotSolved
29.07.2022 16:08:01 Gast32268
NotSolved
29.07.2022 16:09:18 Gast32268
NotSolved

Ansicht des Beitrags:
Von:
Nadine
Datum:
29.07.2022 11:35:27
Views:
1136
Rating: Antwort:
  Ja
Thema:
Verzeichnis mit Leerzeichen für Ghostscript verwenden

Hallo zusammen,

ich arbeite mit Windows 10 Pro, Excel 2016.

Ich habe folgenden Code, der alle PDFs in einem Ordner zu einer PDF zusammenführt und in einem anderen Ordner ablegt:

Sub PDF_Merge()

Dim strPfad As String
Dim strPfadZ As String
Dim strName As String
Dim strGS As String
Dim strPDF As String
Dim strPDFZ As String
Dim strDatname As String
Dim strCommand As String
Dim lngTaskID As Long
Dim lngptrProcID As LongPtr

'Pfad für Ghostscript - ggf. anpassen
strGS = "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe"

'Verzeichnis auswählen, in dem die PDFs stehen, die zusammengefügt werden sollen
strPfad = "C:\Desktop\Zeichnungen\"

'PDF-Dateien aus Verzeichnis einlesen
strDatname = Dir(strPfad & "*.pdf")

'Schleife zum einlesen aller entsprechenden Dateien
Do While Len(strDatname)

   'Dateiname eintragen:
   'Prüfen, ob Leerzeichen im Dateinamen existiert
   If InStr(strDatname, " ") Then
     'falls ja, muss der Dateiname in Anführungszeichen gesetzt werden
     strPDF = strPDF & " """ & strPfad & strDatname & """"
    Else
     'falls nein, reicht die einfache Übername des eingelesenen Namens
     strPDF = strPDF & " " & strPfad & strDatname
   End If

   strDatname = Dir
  
  'Zielordner
   strPfadZ = "C:\Desktop\Test\"
            
Loop

'für Ghostscript den Befehl erstellen
strCommand = strGS & " -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=" & strPfadZ & "3_Zeichnungen.pdf -dBATCH" & strPDF

'Ghostscript-Befehl ausführen
lngTaskID = Shell(strCommand, 0)
lngptrProcID = OpenProcess(SYNCHRONIZE + PROCESS_QUERY_INFORMATION, 0&, lngTaskID)
Call WaitForSingleObject(lngptrProcID, INFINITE)
Call CloseHandle(lngptrProcID)

MsgBox "Fertig"

End Sub

Das funktioniert auch, solange der Zielpfad kein Leerzeichen enhält (Code läuft, ohne Fehlermeldung durch, erstellt aber kein Dokument), also zum Beispiel:

strPfadZ = "C:\Desktop\Te st\"

Hat jemand eine Idee, was ich ändern muss, damit es auch mit Leerzeichen funktioniert?

Folgende Variationen habe ich schon probiert, bin aber nicht zum Ziel gekommen:

strPfadZ = """C:\Desktop\Test\"""
strPfadZ = "'C:\Desktop\Test\'"

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Verzeichnis mit Leerzeichen für Ghostscript verwenden
29.07.2022 11:35:27 Nadine
NotSolved
29.07.2022 11:45:02 Gast43710
NotSolved
29.07.2022 11:52:52 Nadine
NotSolved
29.07.2022 16:05:41 Gast32268
NotSolved
29.07.2022 16:08:01 Gast32268
NotSolved
29.07.2022 16:09:18 Gast32268
NotSolved