[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: 1043

13. Okt 2018, 15:21
Beitrag # 1 von 7
Bewertung:
(2102 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: 5816

15. Okt 2018, 09:13
Beitrag # 2 von 7
Beitrag ID: #566856
Bewertung:
(2045 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: 1043

15. Okt 2018, 10:03
Beitrag # 3 von 7
Beitrag ID: #566858
Bewertung:
(2037 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: 5816

15. Okt 2018, 18:02
Beitrag # 4 von 7
Beitrag ID: #566862
Bewertung:
(1987 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: 1043

15. Okt 2018, 19:18
Beitrag # 5 von 7
Beitrag ID: #566864
Bewertung:
(1977 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: 5816

15. Okt 2018, 19:38
Beitrag # 6 von 7
Beitrag ID: #566865
Bewertung:
(1970 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: 1043

15. Okt 2018, 19:48
Beitrag # 7 von 7
Beitrag ID: #566866
Bewertung:
(1964 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

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/