AI CS4: Hur skriva i Description i pdf med AS?

Tråden skapades och har fått 18 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2010-01-12 23:56

Jag vill läsa och skriva i en pdf:s Beskrivning med applescript. Pdf:en är skapad i AI CS2, CS3 eller CS4. Går det?

Jag vet inte exakt vad du menar med "beskrivning", men jag gissar att det är åtkomligt via spotlight /mdls, såhär typ:

--välj fil
set myFilePath to quoted form of (POSIX path of (choose file of type "pdf"))

--hämta filinfo
set myCMD to "mdls -raw  -name 'kMDItemFSName' -name 'kMDItemKeywords'  -name 'kMDItemVersion' " & myFilePath
set myResult to do shell script myCMD

--bearbeta filinfo
set myOldTIDs to text item delimiters
set text item delimiters to ASCII character 0
set myRecord to {fileName:text item 1 of myResult, keywords:text item 2 of myResult, pageCount:text item 3 of myResult}
set text item delimiters to myOldTIDs
return myRecord
  • Medlem
  • 2010-01-13 07:55

Fint! Det är metadatafältet Description jag är ute efter.

Det där gör du enkelt med EXIF Tool.
ExifTool by Phil Harvey

Du kan antingen installera EXIF Tool, eller bundla det med ditt script. Exemplet nedan förutsätter att det är installerat.

-- 1. Välj fil
set theFile to choose file

-- 2. Konvertera path till POSIX
set theFilePath to POSIX path of theFile

-- 3. Läs befintlig Metadata
-- 3a. Shell kommandot till EXIF Tool
set theShellCommand to "exiftool -description " & theFilePath
-- 3b. Utför shell kommandot läsning av EXIF
set theXMP to do shell script theShellCommand
-- 3c. Visa resultatet
display dialog theXMP as string

-- 4. Skriv i Metadata
-- 4a. Shell kommandot till EXIF Tool
set theShellCommand to "exiftool -description='EXIF genom script' " & theFilePath
-- 4b. Utför shell kommandot för uppdatering av EXIF
set theXMP to do shell script theShellCommand
  • Medlem
  • 2010-01-13 13:05
Ursprungligen av Mattias Jonsson:
-- 1. Välj fil
set theFile to choose file

-- 2. Konvertera path till POSIX
set theFilePath to quoted form of POSIX path of theFile

Det var "quoted form" som saknades. Nu kan jag läsa. Fast jag läser hellre med mdls eftersom det inte kräver exif tools. Det ska gå, men jag lyckas inte (där heller).

Ursprungligen av Baron:

Det var "quoted form" som saknades. Nu kan jag läsa. Fast jag läser hellre med mdls eftersom det inte kräver exif tools. Det ska gå, men jag lyckas inte (där heller).

Ett annat sätt att göra samma sak

Om du bundlar EXIF Tool med ditt script så behöver du inte installera om det är det som bär emot.

  • Medlem
  • 2010-01-13 10:30

Okej, nu kan jag läsa Description efter att ha hittat kompletterande info här:
Working with Spotlight
Mac Dev Center: Spotlight Metadata Attributes Reference: Spotlight Metadata Attributes

Men hur skriver jag?

Ursprungligen av Baron:

Okej, nu kan jag läsa Description efter att ha hittat kompletterande info här:
Working with Spotlight
Mac Dev Center: Spotlight Metadata Attributes Reference: Spotlight Metadata Attributes

Men hur skriver jag?

Kolla på EXIF Tool istället

exiftool -description='Barons nya beskrivning' minfil.pdf

  • Medlem
  • 2010-01-13 10:37

Tack!
Det försöker läsa och uppfattar inte att det misslyckas, men Description som innehåller flera paragraphs ger resultatet "".

Och i rad 4b styckas theFilePath upp till en ny file vid varje "/"?!

Aha, jag ser nu att du även vill SKRIVA metadata.

Ja det är ett litet helvete, men EXIF tools är bästa tipset

Antar att du installerat EXIF Tool

När jag kör det läser den, även om description består av mycket text. Däremot visas inte radbryten i "display dialog" i scriptet, men det gör ju inget.

Om du vill skriva multipla paragrafer så finns det säkert massor av sätt, jag lyckades om jag "hårdkodade" in radbryt genom att lägga in description i en variabel i stil med:

set myDesc to "ABC" & return & "123"
vilket ger:
ABC
123
i PDF:en.

Det du säger om 4b fattar jag inte alls? Konverterat till POSIX path?

  • Medlem
  • 2010-01-13 12:37

Det visar sig nu att jag inte behöver skriva data alls, utan Fotostation kan göra detta åt mig. Och jag vill nu kunna läsa IPTC-fältet "Instruktioner" (Instructions?). Detta verkar jag i alla fall inte komma åt med mdls.

"exiftool -instructions " fungerar med fildropp i Terminal, så det måste vara nåt fel med applescriptet.

och då gäller samma sak som alltid vid felsökning av shell script, att man ser till att man skrivit rätt.

  • Medlem
  • 2010-01-13 12:53

Tar jag bort alla mellanslag i sökvägen kan jag skriva med Mattias kod, men läsningen blir lika fel, dvs "".

Koden har jag bara kopierat som om Mattias har skrivit fel har jag fel kod...

Meeeen, det är ju belagt med spöstraff att ha mellanslag
Nädå, det löser vi.

-- 3a. Shell kommandot till EXIF Tool
set theShellCommand to "exiftool -description '" & theFilePath & "'"

Notera tillägget av ' och ' runt theFilePath - fast, ' måste stå innanför " " om du förstår vad jag menar. Då tolkar terminalen allt innanför ' ' som en enda sträng och inte flera. Typ.

Dvs, det som skrivs till shell scriptet är:

exiftool -description 'OS X/users/baron/desktop/min fil med mellanslag.pdf'
istället för
exiftool -description OS X/users/baron/desktop/min fil med mellanslag.pdf

Här är en diskussion på MacScripter som behandlar ämnet. Kanske går att ha till nåt matnyttigt
MacScripter / extract xmp metadata from pdf file

  • Medlem
  • 2010-01-13 14:11

Hur bundlar man det då? Hittar inget vid källan.

  • Medlem
  • 2010-01-13 14:19

Om man går vidare på mdls-spåret, varför får jag så få träffar i Terminal om det finns så mycket info att hämta? Jag lyckas inte läsa in kMDItemInstructions
Mac Dev Center: Spotlight Metadata Attributes Reference: Spotlight Metadata Attributes

  • Medlem
  • 2010-01-14 23:29

Nu är jag nästan klar!

-- 1. Välj fil
set myFile to choose file

-- 2. Konvertera path till POSIX
set myFilePath to quoted form of POSIX path of myFile

-- 3. Läs befintlig Metadata
-- 3a. Shell kommandot till EXIF Tool
set myCreditCommand to "exiftool -credit " & myFilePath
set myInstructionsCommand to "exiftool -instructions " & myFilePath
set myExifCommand to "exiftool  " & myFilePath
-- 3b. Utför shell kommandot läsning av EXIF
set myCredit to do shell script myCreditCommand
set myInstructions to do shell script myInstructionsCommand
set myExif to do shell script myExifCommand
-- myInstructionCommand

-- Rensa bort det som inte står i metadatafälten
tell me to set text item delimiters to ":"
set myCredit to text item -1 of myCredit
set myInstructions to text item -1 of myInstructions
tell me to set text item delimiters to ""
try
	set myCredit to items 2 thru -1 of myCredit as string
end try
try
	set myInstructions to items 2 thru -1 of myInstructions as string
end try

Det enda som återstår är att lista ut hur man bundlar ExifTools.
Tusen tack, pågar!

1
Bevaka tråden