Kann hier wer VBS scripten??
Moderator: TweetyTreiber
28 Beiträge
• Seite 1 von 2 • 1, 2
Kann hier wer VBS scripten??
Ich will ein VBS Script abändern, weiss aber nicht wie.
Haben wir hier nen Crack?
Es gibt das Programm PDF-Creator zum PDF erstellen.
Bei diesem kann ich über ein VBS Script ein Wasserzeichen hinzufügen.
Soweit kein Problem.
Aaaaber, ich möchte das die 1. Seite ein anderes Wasserzeichen als die 2. Seite bekommt.
Wer kann helfen?

Haben wir hier nen Crack?
Es gibt das Programm PDF-Creator zum PDF erstellen.
Bei diesem kann ich über ein VBS Script ein Wasserzeichen hinzufügen.
Soweit kein Problem.
Aaaaber, ich möchte das die 1. Seite ein anderes Wasserzeichen als die 2. Seite bekommt.
Wer kann helfen?
- Code: Alles auswählen
' AddWatermarkToPDF script
' Part of PDFCreator
' License: GPL
' Homepage: http://www.sf.net/projects/pdfcreator
' Version: 1.1.0.0
' Date: September, 1. 2005
' Author: Frank Heindörfer
' Comments: This script needs pdftk.
' For more informations about the freeware pdftk use this link:
' http://www.accesspdf.com
Option Explicit
Const AppTitle = "PDFCreator - AddWatermarkToPDF"
Const PathToPdftk = "d:\PDFCreator\pdftk.exe"
Const WatermarkPDF = "watermark.pdf"
Dim objArgs, fname, tfname, fso, WshShell, oExec
Set objArgs = WScript.Arguments
If objArgs.Count = 0 Then
MsgBox "This script needs a parameter!", vbExclamation, AppTitle
WScript.Quit
End If
fname = objArgs(0)
Set fso = CreateObject("Scripting.FileSystemObject")
If Ucase(fso.GetExtensionName(fname)) <> "PDF" Then
MsgBox "This script works only with pdf files!", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(PathToPdftk) Then
MsgBox "You need pdftk for this script!" & vbcrlf & vbcrlf & _
"Please go to http://www.accesspdf.com and download it.", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(WatermarkPDF) Then
MsgBox "Can't find the watermark pdf file!", vbExclamation, AppTitle
WScript.Quit
End If
Set WshShell = CreateObject("WScript.Shell")
tfname = fso.GetTempName
WshShell.Run PathToPdftk & " """ & fname & """ background " & WatermarkWaPDF & " output """ & tfname & """",0,true
If Not fso.FileExists(tfname) Then
MsgBox "There was an error using ""pdftk""!", vbCritical, AppTitle
WScript.Quit
End If
If fso.FileExists(fname) Then
fso.DeleteFile(fname)
End If
fso.MoveFile tfname, fname
puschIT - kompetente EDV-Hilfe gesucht?
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Dau Lösungsvorschlag: einfach 2 PDF´s erstellen
[center]
Das Kleingedruckte:
Dies ist kein persönlicher Angriff!
Nein ich bin nicht Angepisst![/center]
[center]
Das Kleingedruckte:
Dies ist kein persönlicher Angriff!
Nein ich bin nicht Angepisst![/center]
mit reschtchreibfehlern kanste machen was de willst ^^^^^^
hinweiss auf shift kanste sparen^^ der Knopp is im poppo ^^^^^^
hinweiss auf shift kanste sparen^^ der Knopp is im poppo ^^^^^^
-
Tonnengott OSkar - 5 Sterne
- Beiträge: 3580
- Registriert: 26.03.2007 - 22:15
- Wohnort: zu Hause in Bremen (Bremen) (SC35) Beiträge: wieder einer weniger
- Geschlecht:
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57

Hat das Programm ne Hilfedatei in der auf VBS eingegangen wird?
Im Prinzip ist das ja Standardbasic:
i=PDF.Pages
PDF.Page(1).Wasserzeichen=Grafikxy
for j=2 to i
PDF.Page(j).Wasserzeichen=Grafikyz
next j
Irgendwie in der Art
Hängt halt davon ab, ob auf die Datei Objektorientiert zugegriffen wird und wie die Objekteigenschaften lauten.

Warum nutzt Du eigentlich keine Linuxtools? Da gibts doch genügend PDF-Tools

-
Crispy - 5 Sterne
- Beiträge: 16874
- Registriert: 09.05.2003 - 16:53
- Wohnort: Wrist (2002er PC 35)
- Geschlecht:
- Alter: 50
Ist nicht für mich sondern für einen Kunden.
Nur mit vbs wird es wohl nicht gehen. Was ich mittlerweile herausgefunden habe ist ...
Es wird ja PDFTK genutzt
Mit background wird das Wasserzeichen eingesetzt und mit output die Datei abgespeichert.
So wie ich das sehe brauch ich jetzt einen Workaround der die Datei vorher splittet, die 1. Seite mit dem Wasserzeichen versieht und dann wieder zusammenfügt.
**confused**
Unter Linux wird im übrigen für derlei Spielchen auch gerne pdftk eingesetzt.

Nur mit vbs wird es wohl nicht gehen. Was ich mittlerweile herausgefunden habe ist ...
Es wird ja PDFTK genutzt
- Code: Alles auswählen
tfname = fso.GetTempName
WshShell.Run PathToPdftk & " """ & fname & """ background " & WatermarkWaPDF & " output """ & tfname & """",0,true
Mit background wird das Wasserzeichen eingesetzt und mit output die Datei abgespeichert.
So wie ich das sehe brauch ich jetzt einen Workaround der die Datei vorher splittet, die 1. Seite mit dem Wasserzeichen versieht und dann wieder zusammenfügt.
**confused**
Unter Linux wird im übrigen für derlei Spielchen auch gerne pdftk eingesetzt.

puschIT - kompetente EDV-Hilfe gesucht?
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Sorry hab gerade keine Zeit, deswegen nur ganz kurz, wenn eh pdftk genutzt wird: Damit kannst du ohne weiteres pdf splitten, individuell Wasserzeichen hinzufügen und wieder zusammenfügen. Alles weitere in der manpage.
There is nothing wrong with me! Maybe it is the universe? 
Wer mir eine verschlüsselt Nachricht senden will, verschließt die Nachricht bitte mit meinem öffentlichen Schlüssel/Schloss.
Damit ich euch eine verschlüsselte Nachricht senden kann, brauch ich euren öffentlichen Schlüssel. Hä? Hier wird erklärt, was es damit auf sich hat. Noch Fragen? Einfach fragen.

Wer mir eine verschlüsselt Nachricht senden will, verschließt die Nachricht bitte mit meinem öffentlichen Schlüssel/Schloss.
Damit ich euch eine verschlüsselte Nachricht senden kann, brauch ich euren öffentlichen Schlüssel. Hä? Hier wird erklärt, was es damit auf sich hat. Noch Fragen? Einfach fragen.

-
}{mpf - 5 Sterne
- Beiträge: 18000
- Registriert: 13.04.2002 - 12:51
- Wohnort: 24105 Kiel
- Geschlecht:
- Alter: 39
Jo, das ist mir schon klar. Die Manpage kenne ich. Rein auf konsole auf alles kein Thema.
Nur wie bringe ich das ädequat in das vbs script??
Nur wie bringe ich das ädequat in das vbs script??

puschIT - kompetente EDV-Hilfe gesucht?
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Indem Du die Teile der PDF-Datei in ein temporäres Verzeichnis packen lässt und dann Datei für Datei beackerst.
Per vbScript müsste es möglich sein den Verzeichnisinhalt (also die einzelnen Dateinamen) in ein StringArray einzulesen, die Anzahl der Strings zu ermitteln und dann in einer Schleife abarbeiten zu lassen.
http://psacake.com/web/func/
http://www.source-code.biz/snippets/vbscript/1.htm
Die ListDir-Function vom Script im zweiten Link dürfte da ziemlich nahe dran kommen.
Per vbScript müsste es möglich sein den Verzeichnisinhalt (also die einzelnen Dateinamen) in ein StringArray einzulesen, die Anzahl der Strings zu ermitteln und dann in einer Schleife abarbeiten zu lassen.
http://psacake.com/web/func/
http://www.source-code.biz/snippets/vbscript/1.htm
Die ListDir-Function vom Script im zweiten Link dürfte da ziemlich nahe dran kommen.
-
Crispy - 5 Sterne
- Beiträge: 16874
- Registriert: 09.05.2003 - 16:53
- Wohnort: Wrist (2002er PC 35)
- Geschlecht:
- Alter: 50
Da rumpelt mir der Schädel. Muss ich mir morgen mal anschauen.
puschIT - kompetente EDV-Hilfe gesucht?
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Wenn du es als Shellscript hinbekommst dann auch unter Win, das VBS da oben ist doch nichts anderes als eine unübersichtliche Batch Datei...
Und wenn VBS nichts für dich ist, mach doch als CMD/BAT.
Und wenn VBS nichts für dich ist, mach doch als CMD/BAT.
-
Auldnyx - 5 Sterne
- Beiträge: 3310
- Registriert: 27.05.2007 - 01:50
- Wohnort: 33415 Verl GSX-R 750 K8
- Geschlecht:
- Alter: 70
Bin noch nicht dazu gekommen rumzuprobieren.
Insgeheim hatte ich ja die Hoffnung irgendwer hat hier so aus der Tüte mal eben den Kniff.
Werde mich wohl mal am Wochenende drangeben.

Insgeheim hatte ich ja die Hoffnung irgendwer hat hier so aus der Tüte mal eben den Kniff.

Werde mich wohl mal am Wochenende drangeben.
puschIT - kompetente EDV-Hilfe gesucht?
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Hab mich heute nochmal dran begeben und eine Lösung erarbeitet.
Wahrscheinlich nicht schön, aber funktioniert mit dem PDFcreator.
Für alle die es brauchen können, hier das script.

Wahrscheinlich nicht schön, aber funktioniert mit dem PDFcreator.
Für alle die es brauchen können, hier das script.
- Code: Alles auswählen
' AddWatermarkToPDF script
' Part of PDFCreator
' License: GPL
' Homepage: http://www.sf.net/projects/pdfcreator
' Version: 1.1.0.0
' Date: September, 1. 2005
' Author: Frank Heindörfer
' Comments: This script needs pdftk.
' For more informations about the freeware pdftk use this link:
' http://www.accesspdf.com
Option Explicit
Const AppTitle = "PDFCreator - AddWatermarkToPDF"
Const PathToPdftk = "d:\PDFCreator\pdftk.exe"
Const WatermarkPDF = "watermark.pdf"
Const WatermarkPDF1 = "watermark1.pdf"
Dim objArgs, fname, tfname, tfname1, tfname2, tfname3, tfname4, tfname5, fso, WshShell, oExec
Set objArgs = WScript.Arguments
If objArgs.Count = 0 Then
MsgBox "This script needs a parameter!", vbExclamation, AppTitle
WScript.Quit
End If
fname = objArgs(0)
Set fso = CreateObject("Scripting.FileSystemObject")
If Ucase(fso.GetExtensionName(fname)) <> "PDF" Then
MsgBox "This script works only with pdf files!", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(PathToPdftk) Then
MsgBox "You need pdftk for this script!" & vbcrlf & vbcrlf & _
"Please go to http://www.accesspdf.com and download it.", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(WatermarkPDF) Then
MsgBox "Can't find the watermark pdf file!", vbExclamation, AppTitle
WScript.Quit
End If
Set WshShell = CreateObject("WScript.Shell")
tfname = fso.GetTempName
tfname1 = fso.GetTempName
tfname2 = fso.GetTempName
tfname3 = fso.GetTempName
tfname4 = fso.GetTempName
tfname5 = fso.GetTempName
WshShell.Run PathToPdftk & " A=""" & fname & """ cat A2-end output """ & tfname5 & """ ",0,true
If fso.FileExists(tfname5) Then
WshShell.Run PathToPdftk & " A=""" & fname & """ cat A1 output """ & tfname1 & """ ",0,true
WshShell.Run PathToPdftk & " """ & tfname1 & """ stamp " & WatermarkPDF & " output """ & tfname2 & """ ",0,true
WshShell.Run PathToPdftk & " A=""" & fname & """ cat A2-end output """ & tfname3 & """ ",0,true
WshShell.Run PathToPdftk & " """ & tfname3 & """ stamp " & WatermarkPDF1 & " output """ & tfname4 & """ ",0,true
WshShell.Run PathToPdftk & " """ & tfname2 & """ """ & tfname4 & """ cat output """ & tfname & """ ",0,true
else
WshShell.Run PathToPdftk & " A=""" & fname & """ cat A1 output """ & tfname1 & """ ",0,true
WshShell.Run PathToPdftk & " """ & tfname1 & """ stamp " & WatermarkPDF & " output """ & tfname & """ ",0,true
End If
If Not fso.FileExists(tfname) Then
MsgBox "There was an error using ""pdftk""!", vbCritical, AppTitle
WScript.Quit
End If
If fso.FileExists(fname) Then
fso.DeleteFile(fname)
End If
If fso.FileExists(tfname1) Then
fso.DeleteFile(tfname1)
End If
If fso.FileExists(tfname2) Then
fso.DeleteFile(tfname2)
End If
If fso.FileExists(tfname3) Then
fso.DeleteFile(tfname3)
End If
If fso.FileExists(tfname4) Then
fso.DeleteFile(tfname4)
End If
If fso.FileExists(tfname5) Then
fso.DeleteFile(tfname5)
End If
fso.MoveFile tfname, fname
puschIT - kompetente EDV-Hilfe gesucht?
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Re: Kann hier wer VBS scripten??
Hey heatwalker,
ich musste mir jetzt hier einen Account holen und diesen alten Thread noch mal hervorziehen, weil ich einfach DANKE sagen muss: dass Du Deine Lösung hier gepostet hast! Hast mir grade eine Menge Arbeit erspart...: Deine Anpassung des Scrips läuft bei mir, "out of the box", funktioniert für Dokumente die nur eine Seite haben ebenso wie für solche, die viele haben - hey, Danke, dass Du das Ergebnis Deiner Arbeit zur Verfügung gestellt hast! Das ist Gemeinschafts-Geist
VG
Martin
ich musste mir jetzt hier einen Account holen und diesen alten Thread noch mal hervorziehen, weil ich einfach DANKE sagen muss: dass Du Deine Lösung hier gepostet hast! Hast mir grade eine Menge Arbeit erspart...: Deine Anpassung des Scrips läuft bei mir, "out of the box", funktioniert für Dokumente die nur eine Seite haben ebenso wie für solche, die viele haben - hey, Danke, dass Du das Ergebnis Deiner Arbeit zur Verfügung gestellt hast! Das ist Gemeinschafts-Geist

VG
Martin
- martin.lindenlauf
- Beiträge: 1
- Registriert: 17.03.2014 - 10:00
- Geschlecht:
-
heatwalker - 5 Sterne
- Beiträge: 5358
- Registriert: 03.01.2004 - 22:37
- Wohnort: Wershofen/Eifel
- Geschlecht:
- Alter: 57
Re: Kann hier wer VBS scripten??
Hey,
Ich versuche das ganze grade bei uns in der Firma als Übergangslösung ein zu richten,
es hat auch soweit alles geklappt...
Leider bekomme ich jetzt jedes mal nach dem ,,erstellen`` eine Fehelermeldung mit dem Inhalt ,, there was an error using pdftk´´
Die PDF geht danach auf, leider ohne den gewünschten Briefbogen...
Hat jemand eine Idee ?
Über schnelle Hilfe würde ich mich sehr freuen:)
Ich füge mal noch mein script an...
PS: wir nutzen seit gestern Win 8.1 Pro
' AddWatermarkToPDF script
' Part of PDFCreator
' License: GPL
' Homepage: http://www.sf.net/projects/pdfcreator
' Version: 1.1.0.0
' Date: September, 1. 2005
' Author: Frank Heindörfer
' Comments: This script needs pdftk.
' For more informations about the freeware pdftk use this link:
' http://www.accesspdf.com
Option Explicit
Const AppTitle = "PDFCreator - AddWatermarkToPDF"
Const PathToPdftk = "c:\PDFCreator\pdftkXp.exe"
Const WatermarkPDF = "WABECOBriefbogensmall.pdf"
Dim objArgs, fname, tfname, fso, WshShell, oExec
Set objArgs = WScript.Arguments
If objArgs.Count = 0 Then
MsgBox "This script needs a parameter!", vbExclamation, AppTitle
WScript.Quit
End If
fname = objArgs(0)
Set fso = CreateObject("Scripting.FileSystemObject")
If Ucase(fso.GetExtensionName(fname)) <> "PDF" Then
MsgBox "This script works only with pdf files!", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(PathToPdftk) Then
MsgBox "You need pdftk for this script!" & vbcrlf & vbcrlf & _
"Please go to http://www.accesspdf.com and download it.", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(WatermarkPDF) Then
MsgBox "Can't find the watermark pdf file!", vbExclamation, AppTitle
WScript.Quit
End If
Set WshShell = CreateObject("WScript.Shell")
tfname = fso.GetTempName
WshShell.Run PathToPdftk & " """ & fname & """ background " & WatermarkPDF & " output """ & tfname & """",0,true
If Not fso.FileExists(tfname) Then
MsgBox "There was an error using ""pdftk""!", vbCritical, AppTitle
WScript.Quit
End If
If fso.FileExists(fname) Then
fso.DeleteFile(fname)
End If
fso.MoveFile tfname, fname
Ich versuche das ganze grade bei uns in der Firma als Übergangslösung ein zu richten,
es hat auch soweit alles geklappt...
Leider bekomme ich jetzt jedes mal nach dem ,,erstellen`` eine Fehelermeldung mit dem Inhalt ,, there was an error using pdftk´´
Die PDF geht danach auf, leider ohne den gewünschten Briefbogen...
Hat jemand eine Idee ?
Über schnelle Hilfe würde ich mich sehr freuen:)
Ich füge mal noch mein script an...
PS: wir nutzen seit gestern Win 8.1 Pro
' AddWatermarkToPDF script
' Part of PDFCreator
' License: GPL
' Homepage: http://www.sf.net/projects/pdfcreator
' Version: 1.1.0.0
' Date: September, 1. 2005
' Author: Frank Heindörfer
' Comments: This script needs pdftk.
' For more informations about the freeware pdftk use this link:
' http://www.accesspdf.com
Option Explicit
Const AppTitle = "PDFCreator - AddWatermarkToPDF"
Const PathToPdftk = "c:\PDFCreator\pdftkXp.exe"
Const WatermarkPDF = "WABECOBriefbogensmall.pdf"
Dim objArgs, fname, tfname, fso, WshShell, oExec
Set objArgs = WScript.Arguments
If objArgs.Count = 0 Then
MsgBox "This script needs a parameter!", vbExclamation, AppTitle
WScript.Quit
End If
fname = objArgs(0)
Set fso = CreateObject("Scripting.FileSystemObject")
If Ucase(fso.GetExtensionName(fname)) <> "PDF" Then
MsgBox "This script works only with pdf files!", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(PathToPdftk) Then
MsgBox "You need pdftk for this script!" & vbcrlf & vbcrlf & _
"Please go to http://www.accesspdf.com and download it.", vbExclamation, AppTitle
WScript.Quit
End If
If Not fso.FileExists(WatermarkPDF) Then
MsgBox "Can't find the watermark pdf file!", vbExclamation, AppTitle
WScript.Quit
End If
Set WshShell = CreateObject("WScript.Shell")
tfname = fso.GetTempName
WshShell.Run PathToPdftk & " """ & fname & """ background " & WatermarkPDF & " output """ & tfname & """",0,true
If Not fso.FileExists(tfname) Then
MsgBox "There was an error using ""pdftk""!", vbCritical, AppTitle
WScript.Quit
End If
If fso.FileExists(fname) Then
fso.DeleteFile(fname)
End If
fso.MoveFile tfname, fname
- maxwell2301
- ein Stern
- Beiträge: 7
- Registriert: 03.04.2014 - 10:59
- Geschlecht:
28 Beiträge
• Seite 1 von 2 • 1, 2
Zurück zu Foren-Übersicht PC Ecke
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast