[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

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

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

cwenet
Beiträge gesamt: 875

13. Okt 2018, 15:21
Beitrag # 1 von 7
Bewertung:
(971 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

ich habe ein 2-spaltiges Layout, welches mit Randziffern versehen wurde. Die Randziffern sind jeweils in einem eigenen Textrahmen im Fliesstext verankert. Nun möchte ich herausfinden, in welcher Spalte die Marke für das verankerte Objekt steht.

So habe ich schonmal angefangen:

Code
var myItems = app.activeDocument.allPageItems;   

for (oneItem = myItems.length-1; oneItem >= 0; oneItem--)
{

if (myItems[oneItem].constructor.name == "TextFrame")
{

if (myItems[oneItem].appliedObjectStyle.name == "Randziffer"){

var tf = myItems[oneItem].insertionPoints[0].parentTextFrames[0];
var gB = tf.geometricBounds;
var links = gB[1];
var rechts = gB[3];
//alert(links);

}
}
}



Ich finde also alle Textrahmen die eine Randziffer beinhalten.
Wie kann ich nun herausfinden, ob sie in Spalte 1 oder Spalte 1 meines Layouts steht?
GeometricBounds zeigt mit ja nur die Position des Rahmens mit der Randziffer, nicht aber die Marke.

Bitte um Hilfe
Christoph
X

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

Hans Haesler
  
Beiträge gesamt: 5682

15. Okt 2018, 09:13
Beitrag # 2 von 7
Beitrag ID: #566856
Bewertung:
(914 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

würdest Du bitte ein Beispiel-Dokument hochladen?

Gruss, Hans


als Antwort auf: [#566842]

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

cwenet
Beiträge gesamt: 875

15. Okt 2018, 10:03
Beitrag # 3 von 7
Beitrag ID: #566858
Bewertung:
(906 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Hans,

danke fürs Antworten. Ich habe hier ein Demo-Dok abgelegt:

https://www.dropbox.com/s/4ezjpmkixacniyb/Randziffer_hds.indd?dl=0

Für die Randziffern gibt es zwei unterschiedliche Ojektformate.
Nun möchte ich erkennen können, wo sich die Ankermarke jeweils befindet – Innen oder Aussen – und dann dass passende Objektformat zuweisen.

Grüße
Christoph


als Antwort auf: [#566856]

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

Hans Haesler
  
Beiträge gesamt: 5682

15. Okt 2018, 18:02
Beitrag # 4 von 7
Beitrag ID: #566862
Bewertung:
(856 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

ein anderer Ansatz: Mit einer Textsuche die Anker aufspüren. In einer Schleife deren horizontale Position speichern,
dem verankerten Textrahmen je nach Position (und linker oder rechter Seite) den Objektstil zuweisen.

Wichtig: Damit es funktioniert, muss der Linealursprung des Dokuments auf "Seite" geändert werden.

Code
//RandZiffernPositionieren_01d.js 

// die Auswahl speichern ...
var curSel = app.selection;
// ... und prüfen
if (curSel.length == 0) {
alert ("Es ist nichts ausgewählt.", "Achtung");
exit();
}
// der Variablen 'mainStory' den Textfluss zuweisen
if (curSel[0].constructor.name == "TextFrame") {
mainStory = curSel[0].parentStory;
}
else {
if (curSel[0].constructor.name == "InsertionPoint") {
mainStory = curSel[0].parent;
}
else {
alert ("Einen Rahmen des Textflusses auswählen.", "Stop");
exit();
}
}

// die Suchen/Ersetzen-Vorgaben zurücksetzen
app.findTextPreferences = app.changeTextPreferences = null;

// das Suchmuster definierem
app.findTextPreferences.findWhat = "^a";

// die Objektstile
objStyleOutside = app.documents[0].objectStyles.itemByName("Randziffer");
objStyleInside = app.documents[0].objectStyles.itemByName("Randziffer innen");

// die Vorkommen finden ...
var allFound = mainStory.findText();
// ... und zählen
var nFound = allFound.length;

// eine Schleife durch die Vorkommen
for (var n=0; n<nFound; n++) {
// die horizontale Position feststellen
var hOff = allFound[n].horizontalOffset;
// der verankerte Textrahmen
var curFrame = allFound[n].textFrames[0];
// linke oder rechte Seite
var curSide = (curFrame.parentPage.side)*1;
// je nach Position und linker oder rechter Seite das Objektformat zuweisen
if (hOff < 80) {
if (curSide == 1818653800) { // linke Seite
curFrame.applyObjectStyle(objStyleOutside);
curFrame.parentStory.justification = Justification.RIGHT_ALIGN;
}
else {
curFrame.applyObjectStyle(objStyleInside);
curFrame.parentStory.justification = Justification.RIGHT_ALIGN;
}
}
else {
if (curSide == 1919382632) { // rechte Seite
curFrame.applyObjectStyle(objStyleOutside);
}
else {
curFrame.applyObjectStyle(objStyleInside);
}
}
}

// die Suchen/Ersetzen-Vorgaben zurücksetzen
app.findTextPreferences = app.changeTextPreferences = null;

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
$.sleep(999);
dlog.close();

Sollten die Ziffern nicht auch entsprechend ausgerichtet sein? Falls nicht: Die Zeilen 51 und 55 entfernen. ;-)

Gruss, Hans


als Antwort auf: [#566858]

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

cwenet
Beiträge gesamt: 875

15. Okt 2018, 19:18
Beitrag # 5 von 7
Beitrag ID: #566864
Bewertung:
(846 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Hans,

vielen lieben Dank für das Script.
Es funktioniert sehr gut.

Ich hatte den Text versehentlich in die Musterseiten gelegt und nicht auf die "normale" Ebene. Habe es erst garnicht gemerkt. Ich hoffe, du musstest nicht lange danach suchen.

Eine Frage noch zur Einstellung "Lineal pro Seite":

Kann ich das auch "während der Fahrt" umstellen. Muss ich etwas beachten? Nebenwirkungen?

Schönen Abend und vielen Dank
Christoph


als Antwort auf: [#566862]

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

Hans Haesler
  
Beiträge gesamt: 5682

15. Okt 2018, 19:38
Beitrag # 6 von 7
Beitrag ID: #566865
Bewertung:
(839 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

bitte sehr. Danke für die positive Rückmeldung. Keine Sorge, die unzugänglichen Rahmen waren rasch gelöst.

Ja, das Umstellen des Lineals per Script ist möglich. Das ist harmlos. Und der Nullpunkt sollte Null/Null sein.

Code
// den Linealursprung auf "Seite" setzen 
var rO = (curDoc.viewPreferences.rulerOrigin)*1;
if (rO != 1380143215) {
curDoc.viewPreferences.rulerOrigin = RulerOrigin.PAGE_ORIGIN;
}

// den Nullpunkt auf Null/Null setzen
var zP = app.documents[0].zeroPoint;
if (zP != [0,0]) {
app.documents[0].zeroPoint = [0,0];
}

Am Schluss des Scripts können beide wiederhergestellt werden:

Code
if (rO != 1380143215) { 
app.documents[0].viewPreferences.rulerOrigin = rO;
}
if (zP != [0,0]) {
app.documents[0].zeroPoint = zP;
}

Gruss, Hans


als Antwort auf: [#566864]

Position "Marke für verankertes Objekt" herausfinden (CC2018, WIN10)

cwenet
Beiträge gesamt: 875

15. Okt 2018, 19:48
Beitrag # 7 von 7
Beitrag ID: #566866
Bewertung:
(833 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

besten Dank für den Scriptzusatz.
Das ist eine gute Idee. Somit ist der Ursprung wieder hergestellt und muss mir keine Sorgen wegen Nebenwirkungen machen.

Einen schönen Abend
Christoph


als Antwort auf: [#566865]
X

Aktuell

Quark / Adobe / Apple / Microsoft
HilfDirSelbst_Vorschau

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.03.2019

Vorstellung der neuen Version des Farbservers

Impressed GmbH, Hamburg
Dienstag, 26. März 2019, 10.00 - 11.00 Uhr

Webinar

Vor kurzem hat ColorLogic die neueste Version seines Farbservers ZePrA 7 veröffentlicht. In diesem knapp ein-stündigen Webinar stellen Ihnen Dietmar Fuchs, Produktmanager von ColorLogic und Karsten Schwarze, Produktmanager bei Impressed die neuen Funktionen vor.

Kostenloses Webinar

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=271

ColorLogic ZePrA 7 - die Neuerungen
Veranstaltungen
03.04.2019 - 04.04.2019

Messe Zürich, Halle 7
Mittwoch, 03. Apr. 2019, 09.00 Uhr - Donnerstag, 04. Apr. 2019, 17.30 Uhr

Messe

Seit nun schon zehn Jahren ist die SOM für Entscheider ein fester Begriff – nicht nur in der Schweiz. Geballtes Insiderwissen, Trends und Innovationen, Business-Kontakte: Treffen Sie auf die Profis aus den Bereichen eBusiness, Online Marketing und Direct Marketing! Von Global Playern über nationale Agenturen und Dienstleister bis hin zu Start-ups und Branchenverbänden sind die prägenden Unternehmen und Organisationen vor Ort. Ein prall gefülltes Programm mit Vorträgen, Workshops und Masterclasses bietet Einblicke in die neusten Entwicklungen und aktuellen Herausforderungen. Entdecken Sie innovative Produkte oder Dienstleistungen und profitieren Sie vom Know-how der Experten! Überzeugen Sie sich selbst vom lebendigen Schweizer eBusiness- und Marketing-Geschäft und merken Sie sich jetzt schon den 3. und 4. April 2019 vor. Denn dann findet die elfte Auflage der SOM statt – wie gewohnt in der Messe Zürich.

Nein

Organisator: boerding exposition SA