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, 8608 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)

Mit freundlichen Grüßen
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
Ähnliche Inhalte
Netzwerkgrundlagen
IPsec - .conf und .secret erstellen aus Gruppe und User (16)

Frage von MaxMLe zum Thema Netzwerkgrundlagen ...

RedHat, CentOS, Fedora
gelöst Erstellen von Desktopverknüpfungen und Anpassung der Taskleiste (2)

Frage von honeybee zum Thema RedHat, CentOS, Fedora ...

Vmware
ESXI Template erstellen (2)

Frage von Phill93 zum Thema Vmware ...

Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

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

Frage von patz223 zum Thema Windows Userverwaltung ...

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

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

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

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