Formatvorlage in PS

Das liegt am Schritfnamen. Für Arial muss ich bei mir bspw. 'ArialMT' angeben. Weiß der Geier warum. Wenn es sich um kostenlose Schriften handelt, kannst du sie mir auch zuschicken und ich schau mal, wie man sie angeben muß. Falls der Font kommerziell ist....das musst du wissen :)

Edit: probier es mal mit "FuturaBT-Medium".

btw hier das komplette Script. Entweder den Pfad oben eintragen und per Doppelklick starten oder beliebig viele Bilder per Drag 'n Drop auf das Script ziehen:
Code:
Option Explicit

Dim appref, docref, layer, schrift_neu, pfad, datei, c, i, fso

'*******Eingabebereich****************************
schrift_neu="FuturaBT-Medium"
pfad="C:\temp"
'*************************************************

Set appref = CreateObject("Photoshop.Application")
If WScript.Arguments.count<>0 Then 
	For i=0 To WScript.Arguments.count-1
		datei= wscript.arguments.item(i)
		Set docref=appref.open (datei)
		changefont
	Next
Else
	Set fso = CreateObject("Scripting.FileSystemObject") 
	Set datei=fso.getfolder (pfad)
	For Each c In datei.Files
		Set docref=appref.Open (c.Path)
		changefont
	Next
End If

Sub changefont()
	Set docref = appref.ActiveDocument
	For Each layer In docref.ArtLayers
		if layer.kind = 2 Then layer.textitem.font=schrift_neu
	Next
	docref.Save
	docref.Close
End Sub
 
Zuletzt bearbeitet:
Jetzt passts! Sehr schön dein neues Script. Nur ein kleines Problem noch:

Meine Textebenen liegen in Ordnern, und die werden von deinem Script scheinbar ignoriert...
 
Hiermit werden alle Ebenen abgearbeitet:
Code:
Option Explicit

Dim appref, docref, layer, schrift_neu, pfad, datei, c, i, j, fso, sets

'*******Eingabebereich****************************
schrift_neu="FuturaBT-Medium"
pfad="C:\temp"
'*************************************************

Set appref = CreateObject("Photoshop.Application")
If WScript.Arguments.count<>0 Then 
	For i=0 To WScript.Arguments.count-1
		datei= wscript.arguments.item(i)
		Set docref=appref.open (datei)
		changefont
	Next
Else
	Set fso = CreateObject("Scripting.FileSystemObject") 
	Set datei=fso.getfolder (pfad)
	For Each c In datei.Files
		Set docref=appref.Open (c.Path)
		changefont
	Next
End If

Sub changefont()
	Set docref = appref.ActiveDocument
	For Each sets In docref.LayerSets
		For Each layer In sets.artlayers
			If layer.kind=2 Then layer.textitem.font=schrift_neu
		Next
	Next
	
	For Each layer In docref.artlayers
		If layer.kind=2 Then layer.textitem.font=schrift_neu
	Next	
	
 	docref.Save
 	docref.Close
End Sub
 
Wunderbar, das erspart mir eine Menge Zeit. Vielen Dank. Da ich sowieso noch ein wenig schieben muss kann ich dein Script genauso gebrauchen. Wenn ich es aber Ausführe um den Temp-Ordner abzuarbeiten, bricht er nach dem öffnen der File ab, bevor er die Fonts ändert. Wenn die File schon offen ist bevor ich das Script starte funktioniert es super. Die Stapel-Bude muss aber nicht sein..
 

Anhänge

  • error.gif
    error.gif
    2,6 KB · Aufrufe: 18
Das versteh ich ehrlich gesagt nicht, bei läufts einwandfrei. Aber wenns so auch passt ist es ja OK.

Gruß hotschen
 
Zurück