[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Ausgewählte Absatzformate importieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Ausgewählte Absatzformate importieren

funkvn
Beiträge gesamt: 17

8. Mär 2011, 03:08
Beitrag # 1 von 6
Bewertung:
(3271 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Abend allerseits,

gibt es eine Möglichkeit in InDesign CS3 ausgewählte Absatzformate aus einem Dokument in ein anderes zu importieren?

document.importStyles() sieht das ja nicht vor und wenn ich "von Hand" die Formate aus einem Dokument auslese bekomme ich sie nicht per document.paragraphStyles.add() an das andere angefügt, da wird ja nicht ein ParagraphStyle-Objekt erwartet sondern ein With-Objekt.

Wer kann mir weiterhelfen? Vielen Dank im voraus!
X

Ausgewählte Absatzformate importieren

Martin Fischer
  
Beiträge gesamt: 12783

8. Mär 2011, 08:19
Beitrag # 2 von 6
Beitrag ID: #466452
Bewertung:
(3254 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo funkvn,

ein direkter Weg, einzelne Absatzformate aus einem Quelldokument in ein Zieldokument zu übernehmen, ist mir nicht bekannt.

Aber Du könntest Dir eine entsprechende Funktion basteln.

Hier eine Skizze, wie das möglicherweise zu simulieren wäre.
Code
var source_doc = app.documents.item(0); // Quelldokument = oberstes/aktives Dokument 
var target_doc = app.documents.item(1); // Zieldokument = zweites Dokument

//import_style(//Quelldokument, //Zieldokument, //Name des Absatzformats)
import_style(source_doc, target_doc, 'test');


function import_style(source_doc, target_doc, ps_name)
{
var source_ps = null;
source_ps = source_doc.paragraphStyles.itemByName(ps_name);
// Absatzformat im Quelldokument vorhanden
if (source_ps != null)
{
target_ps = null;
target_ps = target_doc.paragraphStyles.itemByName(ps_name);
// Absatzformat im Zieldokument nicht vorhanden
if (target_ps == null)
var target_ps = target_doc.paragraphStyles.add({name:ps_name});
// Eigenschaften übergeben
target_ps.properties = source_ps.properties;
return target_ps;
}
else
return null;
}



Die Funktion import_style() versucht, die Eigenschaften eines Absatzformats ps_name aus einem Quelldokument in das Zieldokument zu übernehmen.
Ist dieses Absatzformat im Quelldokument nicht vorhanden, wird null zurückgegeben.

Ist dieses Absatzformat im Zieldokument nicht vorhanden, dann wird im Zieldokument zunächst ein Absatzformat mit diesem Namen angelegt.

Das Absatzformat ps_name im Zieldokument bekommt die Eigenschaften des Absatzformats im Quelldokument ps_name zugewiesen.

Es handelt sich um eine Skizze, weil damit nicht alle Eigenschaften des Quellformats übernommen werden (können). Z.B. werden dokumentabhängige Eigenschaften (also Eigenschaften von Objekten, die dem Dokument zugeordnet sind) wie Textfarbe oder auch 'basiert auf' nicht übernommen.

Alternative 1:
1. Erstelle ein temporäres Dokument.
2. Importiere dort alle Formate aus dem Quelldokument mittels importStyles().
3. Lösche die nicht zu übernehmenden Formate.
4. Importiere die verbleibenden Formte in das Zieldokument mittels importStyles().


Alternative 2:
1. Lege im Quelldokument einen temporären Textrahmen an und gib ihm etwas Text mit.
2. Weise diesem Text das zu übergebende Absatzformat zu.
3. Kopiere diesen Text in die Zwischenablage.
4. Füge diesen Text in einen temporären Textrahmen im Zieldokument ein.


als Antwort auf: [#466449]
(Dieser Beitrag wurde von Martin Fischer am 8. Mär 2011, 08:28 geändert)

Ausgewählte Absatzformate importieren

funkvn
Beiträge gesamt: 17

9. Mär 2011, 09:12
Beitrag # 3 von 6
Beitrag ID: #466536
Bewertung:
(3197 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für die Antwort. So ging ich die Sache auch an.
Neu für mich ist die Übernahme der Eigenschafte via .properties -- nimmt das alle Eigenschaften mit oder ist das eine beispielhafte Eigenschaft?

Danke auch für den Hinweise, dass Abhängigkeiten innerhalb des Dokuments nicht berücksichtigt werden. Ich muss mal schauen, wie InDesign das löst, wenn man per "Absatzformat laden..." etwas importiert. Schade, dass es diese Funktionalität nicht als Funktion gibt.


Viele Grüße
Valentin Funk


als Antwort auf: [#466452]

Ausgewählte Absatzformate importieren

Martin Fischer
  
Beiträge gesamt: 12783

9. Mär 2011, 09:36
Beitrag # 4 von 6
Beitrag ID: #466540
Bewertung:
(3193 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Valentin,

properties sind die gesammelten Eigenschaften eines Objekts.
Und für den o.g. Zweck ist es hilfreich, dass InDesign hier nicht so streng ist und ignoriert, dass nicht alle Eigenschaften im Set übernommen werden können.


Antwort auf: Danke auch für den Hinweise, dass Abhängigkeiten innerhalb des Dokuments nicht berücksichtigt werden.


Auf der Benutzeroberfläche ist es unmittelbar einleuchtend, dass ein Absatzformat sinnvollerweise nicht auf einem Absatzformat eines anderen Dokuments basieren kann oder dass ein Dokument nicht die Farbe eines anderen Dokuments verwenden kann.


als Antwort auf: [#466536]

Ausgewählte Absatzformate importieren

Marco Morgenthaler
Beiträge gesamt: 2474

9. Mär 2011, 10:07
Beitrag # 5 von 6
Beitrag ID: #466545
Bewertung:
(3176 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Valentin und Martin

Zitat Gibt es eine Möglichkeit in InDesign CS3 ausgewählte Absatzformate aus einem Dokument in ein anderes zu importieren?


Im Dialogfenster «Formate laden» kann man auswählen, welche AF importiert werden (vgl. Screenshot). Warum braucht es dafür ein Skript?

Gruss, Marco


als Antwort auf: [#466540]
Anhang:
Bildschirmfoto 2011-03-09 um 10.02.12.png (50.6 KB)

Ausgewählte Absatzformate importieren

Martin Fischer
  
Beiträge gesamt: 12783

9. Mär 2011, 10:10
Beitrag # 6 von 6
Beitrag ID: #466546
Bewertung:
(3172 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marco,

die Importoption auf der Benutzeroberfläche ist bekannt.

Valentin interessiert sich hier in der Skriptwerkstatt dafür, wie man diese Auswahlmöglichkeit in ein Skript integrieren könnte.

Ein Skript versteht die Anweisung "schau, wie's auf der Benutzeroberfläche geht" nicht. ;-)


Siehe auch den Hinweis von Valentin:
Zitat von Valentin Ich muss mal schauen, wie InDesign das löst, wenn man per "Absatzformat laden..." etwas importiert.



als Antwort auf: [#466545]
(Dieser Beitrag wurde von Martin Fischer am 9. Mär 2011, 10:25 geändert)
X