[GastForen Programmierung/Entwicklung AppleScript InDesign CC - Verknüpfungen (Bilder) sammeln

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

InDesign CC - Verknüpfungen (Bilder) sammeln

Andreas78m
Beiträge gesamt: 33

11. Mai 2023, 15:15
Beitrag # 1 von 11
Bewertung:
(40844 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

suche für InDesign ein AppleScript das alle Bilder von einem Dokument in einen Ordner sammelt.

Es gibt zwar die wunderbare Verpacken Funktion und dazu habe ich ein Script (Droplet) das es auch super sammelt, aber leider nicht die Objekte die außerhalb vom Aktiven Dokument liegen (im dunkelgrauen Bereich) und ich finde auch keinerlei Option um das zu erweitern.

Code
  1. on open mgItems

    set targetFolderPath to (choose folder with prompt "Bitte Ordner für das Verpacken auswählen.") as string

    tell application id "com.adobe.InDesign"

    set my_pdf_export to get the name of every PDF export preset
    set my_pdf_choice to (choose from list my_pdf_export) as string

    end tell

    repeat with mgThisItem in mgItems

    tell application id "com.adobe.InDesign"

    try

    open mgThisItem

    set mgDocName to name of active document

    set text item delimiters of AppleScript to ".indd"

    set mgShortName to text item 1 of mgDocName


    -- set up folder and file references

    set mgPackageFilePath to targetFolderPath & mgShortName & ":"
    set mgProofFilePath to mgPackageFilePath & "PDF:" & mgShortName & ".pdf" as string

    set text item delimiters of AppleScript to ""

    -- create dat folder, main folder and internal PDF folder; passing in POSIX path, though most everything ele uses HFS paths

    my createFolders(POSIX path of file (mgPackageFilePath & "PDF:"))

    set properties of PDF export preferences to properties of PDF export preset my_pdf_choice

    tell the active document to export format PDF type to mgProofFilePath without showing options

    tell the active document to export format InDesign markup to mgPackageFilePath & mgShortName & ".idml"

    tell the active document to package to mgPackageFilePath with copying fonts, ignore preflight errors, copying profiles, updating graphics, including hidden layers, copying linked graphics and creating report

    close active document saving no

    on error e

    display dialog e

    end try

    end tell

    -- delete the instructions file

    tell application "System Events"

    try
    delete file (mgPackageFilePath & "Anleitungen")
    end try

    try
    delete file (mgPackageFilePath & "Anleitungen.txt")
    end try

    end tell

    end repeat

    tell application id "com.adobe.InDesign"

    display dialog "PDFs sind erstellt und InDesign Dateien verpackt."

    end tell

    end open



    on createFolders(pathString)

    do shell script "mkdir -p " & quoted form of pathString

    end createFolders



Habe jetzt mal das Internet auf den Kopf gestellt und mich gewundert das es dazu noch nichts gibt, oder ich dazu nichts finden kann.

Aktuell behelfen wir uns mit der Funktion "Verknüpfung(en) kopieren nach" pro Dokument, aber vielleicht hat ja wer ein Script das weiter helfen kann?

Beste Grüße,
Andreas

(Dieser Beitrag wurde von Andreas78m am 11. Mai 2023, 15:16 geändert)
X

InDesign CC - Verknüpfungen (Bilder) sammeln

Thomas Richard
Beiträge gesamt: 19442

11. Mai 2023, 15:43
Beitrag # 2 von 11
Beitrag ID: #586076
Bewertung:
(40799 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Grundsätzlich kopiert „Verknüpfungen kopieren nach …“ auch die Bilder der Montagefläche, sofern sie in der Verknüpfungspalette angewählt sind.

Selbst im eigentlichen Dokument nie vorkommendes Bildmaterial auf und neben den Musterseiten, bekommt man damit eingesammelt.


als Antwort auf: [#586073]

InDesign CC - Verknüpfungen (Bilder) sammeln

Andreas78m
Beiträge gesamt: 33

11. Mai 2023, 15:51
Beitrag # 3 von 11
Beitrag ID: #586077
Bewertung:
(40788 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Genau, dafür wäre ein Script super das diese Funktion nutzt und man per Droplet über mehrere Dokumente verarbeiten lassen kann.

Evtl. gibt es auch eine Funktion die beim Verpacken genau das macht und man nur erweitern muss. Aber ich befürchte das ist leider grundlegend von InDesign nicht so vorgesehen.

Theoretisch kann man ja auch den Trick nutzen den Infobereich für das Verpacken zu erweitern. Leider schränkt InDesign den aber auf 152,4 mm ein und das reicht uns leider nicht aus um auch wirklich alle Objekte zu erwischen.


als Antwort auf: [#586076]

InDesign CC - Verknüpfungen (Bilder) sammeln

TMA
Beiträge gesamt: 403

12. Mai 2023, 08:24
Beitrag # 4 von 11
Beitrag ID: #586079
Bewertung:
(40703 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,
dieses Script sammelt alle verknüpften Bilddaten in einem Ordner 'Bilder' auf dem Schreibtisch.
Einfach ein oder mehrere Dokumente auf das Script ziehen.

Das ist jetzt eine schnelle minimale Version. Sicherlich wirst du das für deine Bedürfnisse anpassen können, wie z.B. einen Bilderordner pro Seite, o.ä.

Code
  1. global tmpDesktopPath
    -------------------------------------------------------------------------------------------------------------------------------------
    on Initialize()
    set my text item delimiters to ""
    set tmpDesktopPath to (path to desktop) as text
    end Initialize

    on Finalize()
    with timeout of 14400 seconds -- 4 Stunden
    activate
    display alert "Fertig" message "Objekt(e) wurde(n) verarbeitet."
    end timeout
    end Finalize

    on ProcessAFileOrFolder(theFile)
    if (theFile as string) ends with ":" then
    ScanAFolder(theFile)
    else
    processAFile(theFile)
    end if
    end ProcessAFileOrFolder

    on ScanAFolder(theFolder)
    set fileNames to list folder theFolder without invisibles
    repeat with aFile in fileNames
    set theFile to (theFolder as string) & contents of aFile
    ProcessAFileOrFolder(alias theFile)
    end repeat
    end ScanAFolder

    on open of filesList
    my Initialize()
    repeat with aFile in filesList
    ProcessAFileOrFolder(contents of aFile)
    end repeat
    my Finalize()
    end open

    on run
    activate
    display alert "ACHTUNG!" message "Läuft nur als Droplet. Bitte Objekt(e) auf das Script ziehen." as warning
    end run
    -------------------------------------------------------------------------------------------------------------------------------------
    on processAFile(aFile)
    set theFile to aFile as string
    tell application id "com.adobe.InDesign"
    set user interaction level of script preferences to never interact

    try
    close every document
    end try

    try
    open file theFile -- without showing window
    end try

    tell document 1
    -- Liste aller verknüpften Bildpfade holen
    set filePathList to file path of every link
    close saving no
    end tell

    set user interaction level of script preferences to interact with all
    end tell

    -- Bilderordner anlegen
    set picFolder to my createFolder(my tmpDesktopPath & "Bilder:")

    -- Dateien kopieren
    repeat with filePath in filePathList
    my duplicateFileUnix(filePath, picFolder, true)
    end repeat
    end processAFile
    -------------------------------------------------------------------------------------------------------------------------------------
    on createFolder(sfolder)
    try
    do shell script ("mkdir -p " & quoted form of POSIX path of sfolder)
    return sfolder
    on error
    return false
    end try
    end createFolder
    -------------------------------------------------------------------------------------------------------------------------------------
    -- with option -p
    -- Cause cp to preserve the following attributes of each source file in the copy: modification time, access time, file flags, file mode, user ID, and group ID, as allowed by permissions. Access Control Lists (ACLs) and Extended Attributes (EAs), including resource forks, will also be preserved.
    on duplicateFileUnix(theSource, theDest, overwriteVar)
    log ("*Duplicate File " & theSource & " to " & theDest as string)
    try
    if overwriteVar = false then
    do shell script "cp -Rpn " & (quoted form of (POSIX path of theSource)) & " " & (quoted form of (POSIX path of theDest))
    else
    do shell script "cp -Rp " & (quoted form of (POSIX path of theSource)) & " " & (quoted form of (POSIX path of theDest))
    end if
    tell application "Finder"
    try
    update alias (theDest as string)
    end try
    if theDest ends with ":" then
    set tmpName to name of item (theSource as string) as string
    if exists item (theDest & tmpName as string) then return true
    else
    if exists item (theDest as string) then return true
    end if

    end tell
    return false
    on error
    return false
    end try
    end duplicateFileUnix
    -------------------------------------------------------------------------------------------------------------------------------------


Gruß
TMA


als Antwort auf: [#586077]

InDesign CC - Verknüpfungen (Bilder) sammeln

Hans Haesler
  
Beiträge gesamt: 5826

12. Mai 2023, 09:04
Beitrag # 5 von 11
Beitrag ID: #586080
Bewertung: |||||
(40690 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

ich konnte mich gestern erst spätabends Deiner Aufgabe widmen.

Das Originalscript habe ich mit Ergänzungen versehen, "Verpacken_01.app" benannt und hier angehängt.

Mit einer Schleife durch die Bilder wird festgestellt, auf welcher Seite sie sich befinden. Jene auf dem Schreibtisch geben "nothing" zurück. Wenn die erfasste Liste mindestens ein "nothing" enthält, werden die entsprechenden Dateien mit einer zweiten Schleife in den Ordner "OutSide" kopiert, welcher im Verpackungs-Ordner erzeugt wurde.

Die Ergänzungen sind mit einer Kommentar-Zeile in Deutsch markiert. :-)

Gruss, Hans


als Antwort auf: [#586073]
Anhang:
Verpacken_01.zip (60.3 KB)

InDesign CC - Verknüpfungen (Bilder) sammeln

Andreas78m
Beiträge gesamt: 33

12. Mai 2023, 09:20
Beitrag # 6 von 11
Beitrag ID: #586081
Bewertung:
(40676 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

wow, das ging ja mega flott und ich hab mal ein paar Testläufe gemacht und es klappt (wie immer) perfekt. Vielen, vielen Dank für die Unterstützung.

Vor allem für das Rundum Paket, das hätte ich mir zur Not aber klar auch zusammen stückeln können... mir ging es nur ein wenig um die Grundlegende Funktion wo ich etwas auf den Schlauch stand.

Wo kann man hier Liken und den Beitrag markieren der die Top Lösung bietet?! ;-)

Beste Grüße und ein wunderschönes Wochenende,
Andreas


als Antwort auf: [#586080]
(Dieser Beitrag wurde von Andreas78m am 12. Mai 2023, 09:21 geändert)

InDesign CC - Verknüpfungen (Bilder) sammeln

Hans Haesler
  
Beiträge gesamt: 5826

12. Mai 2023, 09:32
Beitrag # 7 von 11
Beitrag ID: #586082
Bewertung:
(40641 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

bitte sehr.

Zitat Wo kann man hier Liken und den Beitrag markieren der die Top Lösung bietet?! ;-)

In meinem Beitrag befindet sich in der Spalte am rechten Rand der Link "Bewertung" (oberhalb von ("xx mal gelesen")).

Gruss, Hans


als Antwort auf: [#586081]

InDesign CC - Verknüpfungen (Bilder) sammeln

TMA
Beiträge gesamt: 403

12. Mai 2023, 11:02
Beitrag # 8 von 11
Beitrag ID: #586083
Bewertung:
(40602 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,
mich interessiert nur ob meine Version auch bei dir läuft.

Gruß
TMA


als Antwort auf: [#586082]

InDesign CC - Verknüpfungen (Bilder) sammeln

Hans Haesler
  
Beiträge gesamt: 5826

12. Mai 2023, 13:23
Beitrag # 9 von 11
Beitrag ID: #586084
Bewertung:
(40557 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

ich bitte um Verzeihung wegen meines Vordrängeln von heute Morgen. :-)

Und ja: Deine Version läuft hier wunderbar.

Gruss, Hans


als Antwort auf: [#586083]

InDesign CC - Verknüpfungen (Bilder) sammeln

TMA
Beiträge gesamt: 403

12. Mai 2023, 13:29
Beitrag # 10 von 11
Beitrag ID: #586085
Bewertung:
(40554 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kein Problem, Hans.
Es ist doch schön wenn es mehrere Lösungen gibt.

Danke für die Rückmeldung. Vielleicht kann ja jemand damit was anfangen.

Gruß
TMA


als Antwort auf: [#586084]
(Dieser Beitrag wurde von TMA am 12. Mai 2023, 13:31 geändert)

InDesign CC - Verknüpfungen (Bilder) sammeln

Uwe Laubender
Beiträge gesamt: 5347

12. Mai 2023, 14:31
Beitrag # 11 von 11
Beitrag ID: #586086
Bewertung:
(40526 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,
noch ein Hinweis zum Verpacken in InDesign:

Wenn die InDesign-Datei in eine InDesign-Buch-Datei geladen wird, dann verpackt der Verpacken-Befehl des Buches auch Bilder, die außerhalb der Seiten liegen.

Hab' das gerade eben selbst mit Erflog praktiziert.


als Antwort auf: [#586073]
X