| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	 
	
	
		| Autor | 
		Nachricht | 
	 
	
		Uhlhorn •->
  
 
  Anmeldedatum: 11.12.2006 Beiträge: 5 Wohnort: Hamburg
  | 
		
			
				 Verfasst am: 11.12.2006 - 19:15    Titel: Ein Script für PDF-Tools um einen Briefkopf hinzuzufügen | 
				     | 
			 
			
				
  | 
			 
			
				Hi, ich bin neu und habe heute ein kleines Skript geschrieben, welches als Droplet ausgelegt ist. Man kann PDF-Dateien darauf ziehen und sie werden dann mit einem Briefkopf versehen. Das ist für alle, die aus irgendwelchen Anwendungen heraus PDFs schreiben können, diese aber nachträglich mit einem Briefkopf (Wasserzeichen) versehen müssen.
 
 
Ich selbst benötige im Endresultat ein Droplet, welches das Wasserzeichen nur bei der ersten Seite hinterlegt. Dazu müssen die Dokumente aber erst in einzelne Seiten aufgesplittet werden, und anschließend wieder zusammengefügt werden.
 
Und dann benötige ich es noch als Skript für die PDF-Services.
 
 
Gruß
 
Gerhard
 
 
P.S.: Warum kann ich das Listing nicht farbig machen?
 
P.P.S.: Hier die beiden Skripte zum Download:
 
http://www.uhlhorn-agentur.de/Bilder/BriefkopfAS.zip
 
 
 
 	  | Code: | 	 		  
 
-- Dieses AppleScript ist ein Droplet, welches bei PDF-Dateien, die man auf
 
-- dieses Droplet zieht, ein Briefkopf (Wasserzeichen) hinzufügt. Dieses
 
-- Wasserzeichen muss im aktuellen Benutzer-Ordner unter Dokumente als PDF
 
-- abgelegt sein und den Namen „Briefkopf.PDF“ tragen. Der Briefkopf wird
 
-- auf allen Seiten des Dokuments hinzugefügt.
 
 
-- Benötigt wird hierzu die Software PDF-Toolkit:
 
-- http://www.accesspdf.com/pdftk/index.html
 
 
-- Nur PDF-Dateien sollen bearbeitet werden
 
property type_list : {"PDF"}
 
property extension_list : {"pdf"}
 
 
-- This droplet processes files dropped onto the applet
 
on open these_items
 
   repeat with i from 1 to the count of these_items
 
      set this_item to item i of these_items
 
      set the item_info to info for this_item
 
      if (folder of the item_info is false) and ¬
 
         (alias of the item_info is false) and ¬
 
         ((the file type of the item_info is in the type_list) or ¬
 
            the name extension of the item_info is in the extension_list) then
 
         process_item(this_item)
 
      end if
 
   end repeat
 
end open
 
 
-- this sub-routine processes files
 
on process_item(this_item)
 
   -- NOTE that the variable this_item is a file refernce in alias format
 
   -- FILE PROCESSING STATEMENTS GOES HERE
 
   
 
   -- Ermittelt den Pfadnamen zum aktuellen Benutzer-Verzeichnis
 
   set UserFolder to do shell script "echo ~"
 
   
 
   -- Erstellt den kompletten Pfad zum Briefkopf in POSIX-Schreibweise
 
   -- Hier kann auch der Ort und der Name des Wasserzeichens geändert werden
 
   set Briefkopf to "'" & UserFolder & "/Documents/Briefkopf.pdf'"
 
   
 
   -- Wandelt den Pfad zum PDF-Dokument in POSIX um
 
   set TerminalFile to quoted form of the POSIX path of this_item
 
   
 
   -- Ermittelt den Dateinamen der zu bearbeitenden PDF-Datei
 
   set this_info to info for this_item
 
   set the current_name to the name of this_info
 
   
 
   -- Ermittelt den Pfad zur zu bearbeitenden PDF-Datei
 
   tell application "Finder"
 
      set the parent_container_path to (the container of this_item) as text
 
   end tell
 
   
 
   -- Erstellt den neuen Pfad und Namen zur Datei mit Kopf
 
   set this_item_text to this_item as text -- wandelt Item in text-String
 
   set this_item_length to (length of this_item_text) - 4 -- ermittelt Länge-4
 
   set new_file_name to (text 1 thru this_item_length of this_item_text) & "_Kopf.pdf"
 
   -- fügt "_Kopf" zwischen Dateinamen und Suffix ein
 
   
 
   -- wandelt in quoted POSIX um
 
   set new_posix_name to quoted form of the POSIX path of new_file_name
 
   
 
   -- erstellt den Terminal-Befehl für PDF-Toolkit
 
   set befehl to "/usr/local/bin/pdftk " & TerminalFile & " background " & Briefkopf & " output " & new_posix_name
 
   
 
   say "Start converting, please wait" using "Vicki"
 
   -- führt den Terminal-Befehl für für PDF-Toolkit aus
 
   do shell script (befehl)
 
   say "ready!" using "Vicki"
 
   
 
end process_item
 
 | 	 
  _________________ http://www.uhlhorn-agentur.de
  Zuletzt bearbeitet von Uhlhorn am 12.12.2006 - 14:18, insgesamt einmal bearbeitet | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Uhlhorn •->
  
 
  Anmeldedatum: 11.12.2006 Beiträge: 5 Wohnort: Hamburg
  | 
		
			
				 Verfasst am: 12.12.2006 - 14:15    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hier das zweite Skript, dass nur der ersten Seite ein Briefkopf oder Wasserzeichen hinzufügt.
 
 
Gruß
 
Gerhard
 
 
 	  | Code: | 	 		  
 
-- Dieses AppleScript ist ein Droplet, welches bei PDF-Dateien, die man auf
 
-- dieses Droplet zieht, ein Briefkopf (Wasserzeichen) hinzufügt. Dieses
 
-- Wasserzeichen muss im aktuellen Benutzer-Ordner unter Dokumente als PDF
 
-- abgelegt sein und den Namen „Briefkopf.PDF“ tragen. Der Briefkopf wird
 
-- auf allen Seiten des Dokuments hinzugefügt.
 
 
-- Benötigt wird hierzu die Software PDF-Toolkit:
 
-- http://www.accesspdf.com/pdftk/index.html
 
 
property type_list : {"PDF"} -- Nur PDF-Dateien sollen bearbeitet werden
 
property extension_list : {"pdf"} -- Nur PDF-Dateien sollen bearbeitet werden
 
property tmp_foldername : "tmp-Briefkopf" -- Name des temporären Odrners
 
 
-- This droplet processes files dropped onto the applet
 
-- Hier werden die PDF-Dateien herausgefiltert. Ergebnis wird in PDF2Convert zurückgegeben
 
on open these_items
 
   repeat with i from 1 to the count of these_items
 
      set PDF2Convert to item i of these_items
 
      set the item_info to info for PDF2Convert
 
      if (folder of the item_info is false) and ¬
 
         (alias of the item_info is false) and ¬
 
         ((the file type of the item_info is in the type_list) or ¬
 
            the name extension of the item_info is in the extension_list) then
 
         process_item(PDF2Convert)
 
      end if
 
   end repeat
 
end open
 
 
-- this sub-routine processes files
 
on process_item(PDF2Convert)
 
   -- NOTE that the variable PDF2Convert is a file refernce in alias format
 
   -- FILE PROCESSING STATEMENTS GOES HERE
 
   
 
   -- Ermittelt den Pfadnamen zum aktuellen Benutzer-Verzeichnis
 
   set UserFolder to do shell script "echo ~" -- … im POSIX-Format
 
   
 
   -- Erstellt den kompletten Pfad zum Briefkopf in POSIX-Schreibweise
 
   -- Hier kann auch der Ort und der Name des Wasserzeichens geändert werden
 
   set Briefkopf to "'" & UserFolder & "/Documents/Briefkopf.pdf'" -- im POSIX-Format
 
   set BriefkopfAS to POSIX file Briefkopf
 
   
 
   tell application "Finder"
 
      if not (exists BriefkopfAS) then
 
         say "Atention! File is missing!" using "Vicki"
 
         display dialog "Datei „Briefkopf.pdf“ fehlt im Ordner „Dokumente“!" buttons {"Cancel"} default button 1
 
         stop
 
      end if
 
   end tell
 
   
 
   -- Wandelt den Pfad zum PDF-Dokument in POSIX um
 
   set PDF2Convert_POSIX to quoted form of the POSIX path of PDF2Convert
 
   
 
   -- Ermittelt den Dateinamen der zu bearbeitenden PDF-Datei
 
   --set PDF2Convert_info to info for PDF2Convert
 
   --set the PDF2Convert_name to the name of PDF2Convert_info
 
   
 
   -- Ermittelt den Pfad zur zu bearbeitenden PDF-Datei
 
   tell application "Finder"
 
      set the parent_container_path to (the container of PDF2Convert) as text
 
   end tell
 
   
 
   -- ermittle den Pfad zum Ablageort für temporäre Dateien
 
   set tmp_path to path to temporary items from user domain
 
   
 
   
 
   tell application "Finder"
 
      if not (exists folder tmp_foldername of tmp_path) then
 
         make new folder at tmp_path with properties {name:tmp_foldername}
 
         --say "Temprary folder created" using "Vicki"
 
         set folder_tmp to (folder tmp_foldername of tmp_path)
 
      else
 
         set folder_tmp to (folder tmp_foldername of tmp_path)
 
         delete folder_tmp
 
         say "Temprary folder deleted" using "Vicki"
 
         make new folder at tmp_path with properties {name:tmp_foldername}
 
      end if
 
   end tell
 
   
 
   
 
   -- Erstellt den neuen Pfad und Namen zur Datei mit Kopf
 
   set PDF2Convert_text to PDF2Convert as text -- wandelt Item in text-String
 
   set PDF2Convert_length to (length of PDF2Convert_text) - 4 -- ermittelt Länge-4
 
   set new_PDF2Convert_name to (text 1 thru PDF2Convert_length of PDF2Convert_text) & "_Kopf.pdf"
 
   -- fügt "_Kopf" zwischen Dateinamen und Suffix ein
 
   
 
   -- wandelt in quoted POSIX um
 
   set new_PDF2Convert_name_POSIX to quoted form of the POSIX path of new_PDF2Convert_name
 
   
 
   
 
   -- Erster Terminal-Befehl soll erzeugt werden. PDF in einzelseiten zerlegen.
 
   --/usr/local/bin/pdftk {zu bearbeitende PDF-Datei} burst output /Users/gerhard/Library/Caches/TemporaryItems/tmp-Briefkopf/Seite%05d.pdf
 
   set PDF_tmp_text to (folder_tmp as text) & "Seite%05d.pdf"
 
   set PDF_tmp_POSIX to quoted form of the POSIX path of PDF_tmp_text
 
   set befehl to "/usr/local/bin/pdftk " & PDF2Convert_POSIX & " burst output " & PDF_tmp_POSIX
 
   say "Start converting, please wait" using "Vicki"
 
   do shell script (befehl) -- führt den Terminal-Befehl aus
 
   
 
   
 
   -- Zweiter Terminal-Befehl soll erzeugt werden. Erste Seite mit Briefkopf versehen.
 
   --/usr/local/bin/pdftk /Users/gerhard/Library/Caches/TemporaryItems/tmp-Briefkopf/Seite00001.pdf background /Users/gerhard/Desktop/Briefkopf.pdf output /Users/gerhard/Library/Caches/TemporaryItems/tmp-Briefkopf/Seite00001a.pdf
 
   set PDF1_tmp_text to (folder_tmp as text) & "Seite00001.pdf"
 
   set PDF1_tmp_POSIX to quoted form of the POSIX path of PDF1_tmp_text
 
   set PDF1a_tmp_text to (folder_tmp as text) & "Seite00001a.pdf"
 
   set PDF1a_tmp_POSIX to quoted form of the POSIX path of PDF1a_tmp_text
 
   set befehl to "/usr/local/bin/pdftk " & PDF1_tmp_POSIX & " background " & Briefkopf & " output " & PDF1a_tmp_POSIX
 
   do shell script (befehl) -- führt den Terminal-Befehl aus
 
   
 
   -- alte Seite00001.pdf löschen
 
   set PDF1a_del to ((folder_tmp as text) & "Seite00001.pdf") as text
 
   tell application "Finder"
 
      move file PDF1a_del to the trash
 
   end tell
 
   
 
   -- Dritter Befehl: Alle Seiten aus tmp-Briefkopf wieder zusammensetzen:
 
   --/usr/local/bin/pdftk /Users/gerhard/Library/Caches/TemporaryItems/tmp-Briefkopf/*.* cat output {zu bearbeitende PDF-Datei + Anhang}
 
   set PDF1_source_text to (folder_tmp as text) & "*.*"
 
   set PDF1_source_POSIX to the POSIX path of PDF1_source_text
 
   set new_PDF2Convert_POSIX to quoted form of the POSIX path of new_PDF2Convert_name
 
   set befehl to "/usr/local/bin/pdftk " & PDF1_source_POSIX & " cat output " & new_PDF2Convert_POSIX
 
   do shell script (befehl) -- führt den Terminal-Befehl aus
 
   
 
   say "ready!" using "Vicki"
 
   
 
   delete folder_tmp
 
   say "Temprary folder deleted" using "Vicki"
 
   
 
end process_item | 	 
  _________________ http://www.uhlhorn-agentur.de | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Uhlhorn •->
  
 
  Anmeldedatum: 11.12.2006 Beiträge: 5 Wohnort: Hamburg
  | 
		
			
				 Verfasst am: 15.12.2006 - 01:56    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hmm…
 
Das Fehlen des Briefkopfes wird noch nicht richtig erkannt. Da gibt es einen Fehler (Abfrage entfernen, dann geht es).
 
Außerdem gibt es Probleme mit Umlauten (und vielleicht anderen Sonderzeichen). Den Grund kenne ich noch nicht.
 
 
Ich werde die Tage nachbessern. _________________ http://www.uhlhorn-agentur.de | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		sdenjuopl148 •---->
  
 
  Anmeldedatum: 17.12.2022 Beiträge: 725 Wohnort: New York city
  | 
		 | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
  | 
   
 
  
Powered by phpBB  © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de 
		 | 
	 
 
 | 
 
 |