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
|
|
|