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

PDF mit VBSkript erstellen

Frage Entwicklung

Mitglied: bordermax

bordermax (Level 1) - Jetzt verbinden

22.01.2010 um 10:26 Uhr, 8719 Aufrufe, 9 Kommentare

Hi,

ich würde gerne aus einem VB-Skript heraus eine PDF Datei erzeugen.
Ideal wäre wenn es eine Möglichkeit gäbe das PDF direkt zu erzeugen, vielleicht über irgendein Kommandozeilentool.
Alternativ wäre mir aber auch schon geholfen, wenn ich die zu druckende Datei (ist ein txt-Datei) zum PDF-Druckspooler schicken könnte.
Der PDF-Drucker ist aber nicht der Standarddrucker !

Gruß

Markus
Mitglied: tmystr
22.01.2010 um 10:29 Uhr
Guten Morgen,

ich weiss jetzt nicht dir direkt zu helfen.
Aber mit der Alternativlösung habe ich Erfahrung.
Ich würde FreePDF Vorschlagen. (Freeware + noch nie Probleme gehabt + läuft einfach klasse+leicht zu bedienen)

MFG
Bitte warten ..
Mitglied: TsukiSan
22.01.2010 um 10:31 Uhr
Hallo bordermax,

eventuell helfen dir diese Jungs weiter.

Gruss
Tsuki
Bitte warten ..
Mitglied: bordermax
22.01.2010 um 11:00 Uhr
Hab im Netz folgendes Skript gefunden ....

Option Explicit

Dim objShellApp
Dim argument
Dim strFile
If WScript.Arguments.Count < 1 Then
WScript.Echo("Usage: printfile.vbs file.doc")
WScript.Quit
End If

strFile = WScript.Arguments(0)

Set objShellApp = WScript.CreateObject("Shell.Application")
objShellApp.ShellExecute strFile, "", "/D:\\Rechnername\Spoolername", "print", 0
'objShellApp.ShellExecute strFile, "", "", "print", 0

WScript.Sleep(5000)

Set objShellApp = Nothing

Das Skript schickt zwar die Datei zum Drucker, aber immer zum Standarddrucker ???


Markus
Bitte warten ..
Mitglied: bastla
22.01.2010 um 12:39 Uhr
Hallo bordermax!

Bei der Installation des PDFCreator werden (hoffentlich auch bei der aktuellen Version 0.9.9) in den Ordner "Programmordner\COM\Windows Scripting Host\VBScripts" eine Reihe von Scripts gelegt ...

Grüße
bastla
Bitte warten ..
Mitglied: mayho33
23.01.2010 um 16:53 Uhr
Hi!

Habe hier ein kleines Häppchen gefunden aus einem alten Projekt das wir aber nie abgeschlossen haben


' Transfer Print Jobs to a Different Print Queue
'VBS


strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set objPrinter = objWMIService.Get _
("Win32_Printer.DeviceID='DER_GESUCHTE_DRUCKER'")

objPrinter.PortName = "Der gewünschte Port z.B LPT1"
objPrinter.Put_

Grüße

Mayho
Bitte warten ..
Mitglied: bastla
23.01.2010 um 18:49 Uhr
Hallo bordermax!

Wenn das Ausdrucken zum Standarddrucker schon funktioniert, könntest Du es so versuchen:
01.
PDFPrinter = "Druckername PDF-Drucker" 
02.
 
03.
If WScript.Arguments.Count < 1 Then 
04.
    WScript.Echo("Usage: printfile.vbs file.doc") 
05.
    WScript.Quit 
06.
End If 
07.
strFile = WScript.Arguments(0) 
08.
 
09.
'Standarddrucker zwischenspeichern 
10.
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
11.
Set colInstalledPrinters =  objWMIService.ExecQuery("Select * from Win32_Printer where Default = 'True'") 
12.
For Each objPrinter in colInstalledPrinters 
13.
   Def = objPrinter.DeviceID 
14.
Next 
15.
 
16.
'PDF-Drucker als Standard setzen 
17.
objWMIService.ExecMethod "Win32_Printer.DeviceID='" & PDFPrinter & "'", "SetDefaultPrinter" 
18.
 
19.
Set objShellApp = WScript.CreateObject("Shell.Application") 
20.
objShellApp.ShellExecute strFile, "", "/D:\\Rechnername\Spoolername", "print", 0 
21.
 
22.
WScript.Sleep(5000) 
23.
 
24.
Set objShellApp = Nothing 
25.
 
26.
'Wieder alten Standarddrucker setzen 
27.
If Def <> "" Then objWMIService.ExecMethod "Win32_Printer.DeviceID='" & Def & "'", "SetDefaultPrinter"
Grüße
bastla

P.S.: Für das Posten von Code hätten wir hier die Tags <code> und </code> ...
Bitte warten ..
Mitglied: bordermax
23.01.2010 um 23:47 Uhr
Hallo Bastla,

danke für den Tip, so hab ich's mittlerweile auch realisiert.
Nur hab ich das ganze über Regkeys gemacht, Deine Lösung über WMI sieht mir da doch eleganter aus !

Gruß

Markus

P.S.: Das mit dem posten von Code muß ich wohl noch üben
Bitte warten ..
Mitglied: bordermax
25.01.2010 um 08:03 Uhr
Hallo Mayho,

kannste mir noch sagen wie ich Dein Skript weiter bearbeiten muß damit ich die Datei zum Drucker geschickt bekomme ?

Gruß

Markus
Bitte warten ..
Mitglied: mayho33
03.02.2010 um 22:44 Uhr
Hi Bordermax!

Sorry, ist etwas stressig in letzter Zeit

Also das Script oben macht eigentlich nichts anderes als dass es den Port des Druckers ändert und das dauerhaft. Im Treiber des Druckers kannst du einen eigenen Port definieren auf den du dann umleiten kannst. Würde sicher auch per Script gehen.
Das script müsste für temp. Druck also vorher auf den Port "Keine-Ahnung" umstellen und dann wieder zurück. Wie du das aber während des Drucks machst kann ich dir auf die Schnelle echt nicht sagen.


Sorry

MAyho
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Sticky Notes - Autostart unterbinden

Tipp von Pedant zum Thema Windows 10 ...

Ähnliche Inhalte
Basic
Mit vb.net PDF in Word-Dok einfügen (6)

Frage von ahstax zum Thema Basic ...

LAN, WAN, Wireless
Selbstsigniertes Zertifikat auf Brocade Switch erstellen (2)

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

Off Topic
gelöst Webseite erstellen - Preise (14)

Frage von Xaero1982 zum Thema Off Topic ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Flatrates
DeutschlandLAN der Telekom - welche internen IPs? (19)

Frage von qualidat zum Thema Flatrates ...