GELÖST VBA FreePDF

Diskutiere VBA FreePDF im Programmierung Forum im Bereich Software Forum; hallo zusammen, mein kolege hat vor jahren ein vba script in excel geschrieben. es öffnet word dokumente mit formularfelder und füllt diese ab...
S

spite

Threadstarter
Mitglied seit
05.11.2008
Beiträge
108
Standort
CH
hallo zusammen,
mein kolege hat vor jahren ein vba script in excel geschrieben.
es öffnet word dokumente mit formularfelder und füllt diese ab, danach werden diese mittels freepdf xp als pdf's gedruckt, leider will das nicht mehr doch erstmals der code:
Code:
Public Function ps2pdf(psFile As String, pdfFile As String) As Boolean
    If Dir(psFile) <> "" Then
        
        Dim FreePDF
        'FreePDF festlegen
        FreePDF = Environ("programfiles") & "\FreePDF_XP\freepdf.exe"
        
        'Prüfen, ob FreePDF vorhanden ist
        If Dir(FreePDF) <> "" Then
            'FreePDF aufrufen
            Shell FreePDF & " /3 delps,end ""High Quality"" " & """" & pdfFile & """ """ & psFile & """"
            Application.Wait (Now + TimeValue("0:00:5"))
            'Aufruf erfolgreich
            ps2pdf = True
        Else
            MsgBox "FreePDF ist nicht unter " & FreePDF & " installiert", vbExclamation
        End If
        
    End If
End Function


Sub machWas()
       Dim fso As Object
       Set objWord = CreateObject("Word.Application")
       Dim fso As Object
       Set fso = CreateObject("Scripting.FileSystemObject")

       With objWord
       ...
                'Druckername ermittelt vollständiger Druckername
                .ActivePrinter = Druckername("FreePDF")
                .ActiveDocument.PrintOut False, , , strPfad & strDatei & ".ps", , , , , , , True

                fso.CopyFile strPfad & strDatei & ".pdf", strPfad & "History\" & strDatei & " " & ifsTimestampASSP & ".pdf", True
                Call ps2pdf(strPfad & strDatei & ".ps", strPfad & strDatei & ".pdf")
       ...
       End With
End Sub
die ps datei wird erstellt, doch dann kann das pdf file nicht erzeugt werden, die fehlermeldung lautet meistens
%%[ Error: syntaxerror; OffendingCommand: --nostringval-- ]%%
 
Peter Schirmer

Peter Schirmer

Dienstleister / Moderator
Mitglied seit
14.04.2006
Beiträge
7.060
Alter
39
Standort
7th Avenue, Ecke XP und Vista, 8ter Stock, Wohnung
Warum zeichnest du nicht einfach den Wechsel des Druckers im Drucken-Menü auf und verwendest dann den Drucken-Befehl?

Hier ein Beispiel:

Application.ActivePrinter = "FreePDF XP auf Ne03:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"FreePDF XP auf Ne03:", Collate:=True
 
S

spite

Threadstarter
Mitglied seit
05.11.2008
Beiträge
108
Standort
CH
tja, leider ist das nicht so einfach, freepdf öffnet ein eigens dialog fenster und behindert alles :cheesy

man muss erst ein ps file mit ghostscript erstellen und dieses zu pdf konvertieren, und eigentlich geht das auch.

ich vermute, dass das formular (im word) ein korruptes ps erzeugt. hattet ihr auch schon solche erfahrungen?
 
S

spite

Threadstarter
Mitglied seit
05.11.2008
Beiträge
108
Standort
CH
naja, dann kann ich durch die ganze firma rennen und die alternative installieren und erklären aber vor allem werden andere scripts nicht mehr gehen.
und nichtvergessen, zwei verschiedene pdf drucker pro arbeitsplatz überfordert ein angestellter der finanzwirtschaft ;-)
 
S

spite

Threadstarter
Mitglied seit
05.11.2008
Beiträge
108
Standort
CH
nun ja, der das script sonnst immer benutzt ist nun vom urlaub zurück und hat mir erklärt: freepdf xp als standard drucker einrichten und dann klappts.

muss man auch wissen :wacko befehl erteilt, dass dies in der anleitung hineingeschrieben wird :schrei
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Den Standarddrucker kannst du aber auch im Code automatisch setzen.
 
S

spite

Threadstarter
Mitglied seit
05.11.2008
Beiträge
108
Standort
CH
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Dann speicher dir doch vorher den aktuellen Standarddrucker weg, dann änderst du auf den FreePDF-Drucker und nach Ablauf der ganzen Prozedur stellst du den ursprünglichen Standarddrucker wieder ein.
 
S

spite

Threadstarter
Mitglied seit
05.11.2008
Beiträge
108
Standort
CH
das machen die jetzt seit jeher von hand, nur nichts neues sonnst sind sie noch verwirrt :blink
meine ma kommen aus der finanzwirtschaft, keine experimente die sie nicht verstehen :cheesy
somit ist meinerseits, auch wenn technisch nicht, der fall gelöst.
 
Thema:

VBA FreePDF

Sucheingaben

vba free pdf steuern

,

free pdf vba

,

vba use freepdf.exe undefinedfilename offendingcommand

,
vba freePDF mit active.printer ansteuern
, vba freePDF aufrufen, freepdf OffendingCommand: -nostringval

VBA FreePDF - Ähnliche Themen

  • VBA Outlook 2016 Geburts- und Jahrestage aktualisieren

    VBA Outlook 2016 Geburts- und Jahrestage aktualisieren: Hallo Community, ich habe vorletztes Jahr für unser Unternehmen einen Code geschrieben, der die Geburtstage und Jahrestage meiner Kollegen in...
  • VBA-Script shell .. .CopyHere wird von Defender blockiert

    VBA-Script shell .. .CopyHere wird von Defender blockiert: Hallo, Win10 Pro 64Bit, 1803, Office 2016 Seit einigen Wochen wird bei aktivem Defender (Viren- & Bedrohungsschutz - Echtzeitschutz EIN) das...
  • VBA-Script shell .. .CopyHere wird von Defender blockiert

    VBA-Script shell .. .CopyHere wird von Defender blockiert: Hallo, Win10 Pro 64Bit, 1803, Office 2016 Seit einigen Wochen wird bei aktivem Defender (Viren- & Bedrohungsschutz - Echtzeitschutz EIN) das...
  • PowerPoint Folien werden beim Öffnen der Präsentation mit VBA aus Excel heraus automatisch (ungewoll

    PowerPoint Folien werden beim Öffnen der Präsentation mit VBA aus Excel heraus automatisch (ungewoll: Hallo, auf einer virtuellen Maschine mit Windows 10 wird jede Nacht ein VBA-Skript in Excel ausgeführt, doch seit kurzem werden beim Öffnen der...
  • VBA UserForm in Outlook Task Formular

    VBA UserForm in Outlook Task Formular: Hallo, Wie oben beschrieben, versuche ich seit längerem nun einem ComandButton in Outlook Task einen AssignTo befehl zuzuordnen. Ich konnte...
  • Ähnliche Themen

    Oben