MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 11.12.2014, 15:02   #1
moses64
MOF User
MOF User
Standard Excel2010 - Ausdruck mit PDF-Creator geht nicht mehr

Moin Forum,

hab beim PDF-Creator ein Update (Version 2.0) ausgeführt. Nun kann ich von Excel aus nicht mehr drucken. Im VBE unter Verweise ist der Creator nicht mehr vorhanden und die Creator.exe lässt sich nicht hinzufügen. Finde leider im Netz keine Hilfe, deshalb meine Frage an euch. Wie bekomm ich das mit dem Drucken wieder hin?
Hier der Code:
Private Sub CommandButton1_Click()

Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim bRestart As Boolean

'/// Change the output file name here! ///
'sPDFName = "testPDF.pdf"
sPDFName = ActiveSheet.Name & ".pdf"
sPDFPath = ActiveWorkbook.Path & Application.PathSeparator

'Check if worksheet is empty and exit if so
If IsEmpty(ActiveSheet.UsedRange) Then Exit Sub

'Activate error handling and turn off screen updates
On Error GoTo EarlyExit
Application.ScreenUpdating = False
Set pdfjob = New PDFCreator.clsPDFCreator

'Check if PDFCreator is already running and attempt to kill the process if so
Do
bRestart = False
Set pdfjob = New PDFCreator.clsPDFCreator
If pdfjob.cStart("/NoProcessingAtStartup") = False Then
'PDF Creator is already running. Kill the existing process
Shell "taskkill /f /im PDFCreator.exe", vbHide
DoEvents
Set pdfjob = Nothing
bRestart = True
End If
Loop Until bRestart = False

'Assign settings for PDF job
With pdfjob
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
.cClearCache
End With

'Delete the PDF if it already exists
If Dir(sPDFPath & sPDFName) = sPDFName Then Kill (sPDFPath & sPDFName)

'Print the document to PDF
ActiveSheet.PageSetup.PrintArea = Range("A2:AL64").Address
ActiveSheet.PrintOut copies:=1, ActivePrinter:="PDFCreator"

'Wait until the print job has entered the print queue
Do Until pdfjob.cCountOfPrintjobs = 1
DoEvents
Loop
pdfjob.cPrinterStop = False

'Wait until the file shows up before closing PDF Creator
Do
DoEvents
Loop Until Dir(sPDFPath & sPDFName) = sPDFName

Cleanup:
'Release objects and terminate PDFCreator
Set pdfjob = Nothing
Shell "taskkill /f /im PDFCreator.exe", vbHide
On Error GoTo 0
Application.ScreenUpdating = True
Exit Sub

EarlyExit:
'Inform user of error, and go to cleanup section
MsgBox "There was an error encountered. PDFCreator has" & vbCrLf & _
"has been terminated. Please try again.", _
vbCritical + vbOKOnly, "Error"
Resume Cleanup

End Sub
Danke für eure Antwort
moses64 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 22.12.2014, 18:55   #2
Johnny Loser
MOF Meister
MOF Meister
Standard

Hallo zusammen,

ich möchte diesen Beitrag noch einmal nach oben holen, da ich dasselbe Problem habe. Den Verweis "PDFCreator" gibt es nicht mehr mit der Version 2.0.1.

Weiß jemand evtl. eine Lösung hierfür?

Gruß

__________________

Johnny Loser

Wer lesen kann, ist klar im Vorteil!

Windows XP / 7, Access 2.0 / 97 / 2000, Office 97 / 2000 / 2007, VB 6 .............
P.S.: Helfen macht um so mehr Spaß, wenn man ein Feedback bekommt, auch wenn's mal nicht geholfen hat
Ich beantworte keine PN oder email-Anfragen, die ins Forum gehören!
Johnny Loser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 22.12.2014, 18:59   #3
mumpel
MOF Meister
MOF Meister
Standard

Hallo!

Ihr müsst zwingend zurück zu Version 1.7.3. Mit Version 2.0 wurde die COM-Schnittstelle abgeschafft. Aber leider macht die in Version 1.7.3 integrierte Ghostscript-Version (9.10) Probleme unter Windows 8.1.

Gruß, René
mumpel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 02.04.2015, 20:07   #4
mumpel
MOF Meister
MOF Meister
Standard

Jetzt, nachdem der PDF-Creator 2 verbessert wurde, gibt es auch wieder eine COM-Schnittstelle. Allerdings beruht diese nun auf "Javascript-Basis". Die Programmierung ist daher etwas anders. Hier ein Beispiel für das Umwandeln einer Tabelle, auf Wunsch kann diese als Emailanhang gesendet werden.

Option Explicit

Sub PdfWithPDFCreatorZwei()

Dim pdfJob              As Object
Dim printJob            As Object
Dim wshNetwork          As Object
 
Dim bolSendAsAttach     As Boolean

Const Drucker1          As String = "PDFCreator"
Const Drucker2          As String = "Samsung ML-2850 Series"


If MsgBox("Soll die Datei nach dem Erstellen versendet werden?", 36, "Senden?") = vbYes Then bolSendAsAttach = True

On Error GoTo Ende

Set pdfJob = CreateObject("PDFCreatorBeta.JobQueue")

    pdfJob.Initialize

Set wshNetwork = CreateObject("WScript.Network")
    wshNetwork.SetDefaultPrinter Drucker1 'Standarddrucker auf PDFCreator setzen 
    
    Worksheets("Tabelle1").PrintOut

    pdfJob.WaitForJob (10)

    Set printJob = pdfJob.NextJob

        With printJob
            .SetProfileByGuid ("DefaultGuid")
            
            If bolSendAsAttach Then
              .SetProfileSetting "EmailClient.Enabled", "true" 'Datei als Email senden einschalten 
              .SetProfileSetting "EmailClient.Subject", "Test" 'Betreff 
              .SetProfileSetting "EmailClient.Content", "Hallo,<br><br>anbei gewünschte Unterlagen." & _
                                                        "<br><br>Gruß, Max<br><br>" 'Body 
              .SetProfileSetting "EmailClient.Recipients", "test@server.de;test2@server.de" 'Empfänger 
            End If
            
            .ConvertTo (Environ("USERPROFILE") & "\Desktop\Test.pdf") 'Pfad und Dateiname für PDF-Datei, und konvertieren 
           
           If .IsFinished = True Then
              pdfJob.ReleaseCom 'PDFCreator-Instanz beenden 
              wshNetwork.SetDefaultPrinter Drucker2 'Standarddrucker wiederherstellen 
           End If
        End With
        
Exit Sub

Ende:
pdfJob.ReleaseCom
End Sub


VBA/HTML - CodeConverter für Office-Foren, AddIn für Office 2002-2013 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:mumpel

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

mumpel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 30.08.2017, 19:37   #5
mumpel
MOF Meister
MOF Meister
Standard

In der aktuellen Version muss das "CreateObject" auf einen neuen Objektnamen verweisen. Set pdfJob = CreateObject("PDFCreator.JobQueue"), das "Beta" fällt also weg.
mumpel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 06:16   #6
ebt.gotha
Neuer Benutzer
Neuer Benutzer
Ärger

prima Danke.

Das hat schon einmal geholfen, mein bisheriges Programm umzuschreiben.

Leider geht es noch nicht vollständig.

Code:

Dim sPDFPath As String
Dim sp, sp1, sp2 As Integer
        sp1 = Cells(25, 3) ' Objekt: Musterstadt Straße
        sp2 = Cells(16, 14) 'RE Nr. als Zahl
        sp = "Rechnung EBT Nr. " & sp2 & " - " & sp1  ' das geht wenn kein : enthalten ist

sPDFPath = "P:Energieberatungoffene Rechnungen"  ' wird nicht ausgeführt
 Dim ssss As String
     ssss = PDFPath & sp & ".pdf"

            .ConvertTo (Environ("USERPROFILE") & ssss) '"DesktopTest.pdf") sPDFPath & "" & sp & ".pdf" 'Pfad und Dateiname für PDF-Datei, und konvertieren
          
           If .IsFinished = True Then
              pdfJob.ReleaseCom 'PDFCreator-Instanz beenden
              wshNetwork.SetDefaultPrinter Drucker2 'Standarddrucker wiederherstellen
           End If
        End With
Nun gibt es, dass Problem:
1. ist im Dokumentenname ein ":" oder ...
2. oder es wird der Pfad geändert z.B. P:...

so wird die funktioniert die Konvertierung nicht mehr
ebt.gotha ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 06:23   #7
RPP63neu
MOF Meister
MOF Meister
Standard

Moin!
Gibt es im Jahr 2019 noch einen vernünftigen Grund, statt der .ExportAsFixedFormat-Methode (xlTypePDF) noch auf einen virtuellen "Drucker" zu setzen?

Fragt sich Ralf

__________________

Meine Logik war nicht fehlerhaft, nur meine Interpretation!
Tuvok
RPP63neu ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.06.2019, 06:39   #8
mumpel
MOF Meister
MOF Meister
Standard

Gibt es. Die integrierte Funktion kann nicht viel. Wenn Du z.B. auch Kennwortschutz und AES-Verschlüsselung benötigst brauchst Du einen passenden PDF-Konverter.

Punkt und Doppelpunkt kann man per Replace ersetzen. Der Doppelpunkt ist in Dateinamen nicht erlaubt, und der Punkt trennt Dateiname und Dateiendung.

Geändert von mumpel (13.06.2019 um 06:43 Uhr).
mumpel ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.