[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt rotate textcontainer

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

rotate textcontainer

faxinger666
Beiträge gesamt: 167

22. Mär 2021, 15:56
Beitrag # 1 von 5
Bewertung:
(6326 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo ihr Lieben,

ich sehe den Wald vor lauter Bäumen nicht mehr:

Ich möchte folgendes erreichen:

Alle Textrahmen die beim ersten Zeichen die Schriftart Verdana zugewisen haben sollen auf 30 Grad gedreht werden.

Irgendwo ist aber da leider ein Hund begraben:

Code
var _dok = app.documents[0];  
var allStories = _dok.stories.everyItem().getElements();
var _schriftart = "[Verdana] [Regular]"
for(var i=0;i<allStories.length;i++)
{
var textContainers = allStories[i].textContainers;

for(var j=0;j<textContainers.length;j++)
{
if(textContainers[j].characters[0].appliedFont == _schriftart)
{
// Rotate the text container:
textContainers[j].rotationAngle = 30;
};
};
};


Könnt ihr mir weiterhelfen?

Danke
LG
faxinger

(Dieser Beitrag wurde von faxinger666 am 22. Mär 2021, 15:57 geändert)
X

rotate textcontainer

Martin Fischer
  
Beiträge gesamt: 12685

22. Mär 2021, 16:17
Beitrag # 2 von 5
Beitrag ID: #579214
Bewertung: |||
(6312 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

das Problem liegt womöglich in der Initialisierung der Variable _schriftart.

Versuche es mal so:
Code
var _schriftart = app.fonts.itemByName("Verdana\tRegular"); 


Falls die Schriftart nicht installiert ist, bedarf es womöglich eines anderen Workarounds.


als Antwort auf: [#579213]

rotate textcontainer

faxinger666
Beiträge gesamt: 167

23. Mär 2021, 08:03
Beitrag # 3 von 5
Beitrag ID: #579218
Bewertung:
(6240 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für den Tipp, hat nur leider nicht funktioniert :-(
Ich glaube das Problem liegt woanders aber ich komm nicht drauf.

Vielleicht sollte ich über die Textframes abfragen und nicht über die stories/Textconatiner?

LG
faxinger


als Antwort auf: [#579214]

rotate textcontainer

Martin Fischer
  
Beiträge gesamt: 12685

23. Mär 2021, 08:54
Beitrag # 4 von 5
Beitrag ID: #579219
Bewertung: |||
(6212 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

in Deinem Fall dürfte es keinen Unterschied machen, ob Du über textFrames oder über textContainers gehst.

Dein Schnippsel hat übrigens bei mir mit der oben angegebenen Änderung funktioniert.


Code
var _schriftart = "[Verdana] [Regular]" 


Deine Initialisierung der Variable _schriftart kann aus mehreren Gründen nicht funktionieren.

1. Der Name einer Schrift (font.name) setzt sich zusammen aus dem Namen der Schriftfamilie und dem Schriftschnitt. Als Trennzeichen zwischen Familie und Schnitt dient das Tabulatorzeichen. In Deinem Ausdruck steht da ein gewöhnliches Leerzeichen.

2. Die eckigen Klammern sind nicht Bestandteil der Schrift "Verdana", sondern zeigen auf der Benutzeroberfläche an, das die verwendete Schrift nicht verfügbar/aktiv ist.

3. "Verdana\tRegular" ist kein Font, sondern ein String.

Ich möchte Dich nochmals auf die Prüfung der Validität des angesprochenen Fonts hinstupsen.
Ist die Verdana installiert und aktiv?

Lies den Status der Schrift eines ausgewählten Zeichens z.B. über folgenden Befehl aus:
Code
alert(app.selection[0].appliedFont.status); 


Lies den Namen der Schrift eines ausgewählten Zeichens z.B. über folgenden Befehl aus:
Code
alert(app.selection[0].appliedFont.name); 



als Antwort auf: [#579218]

rotate textcontainer

faxinger
Beiträge gesamt: 246

26. Mär 2021, 14:20
Beitrag # 5 von 5
Beitrag ID: #579256
Bewertung:
(5964 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für deine Antwort. Kann leider erst jetzt antworten, da die Anmeldung hier nicht funktionierte.

Dein Tipp funktionierte hervorragend. Das Problem war dass einige Objekte auf der Seite gesperrt waren und daher das Skript nicht sauber arbeitete.
Jetzt habe ich noch eine Zusatzfrage:
Wie würdest du es lösen wenn in der Abfrage zwei Textfarben mit berücksichtigt werden sollen?

Also im Prinzip müssen drei Bedingungen erfüllt sein für das erste Zeichen: 1. Schriftart - ok
2. Fillcolor nicht grau - ok
3. Fillcolor nicht schwarz

1+2 kann ich abfragen, aber nicht alle 3 Bedingungen.
Code
var _dok = app.documents[0];  
_dok.layoutWindows[0].transformReferencePoint = AnchorPoint.CENTER_ANCHOR;


var _allStories = null;
//~ var _textContainers = null;
var _allStories = _dok.stories.everyItem().getElements();


//~ var _schriftart1 = app.fonts.itemByName("Verdana\tRoman");
var _schriftart2 = app.fonts.itemByName("Verdana\tRegular");
var _schwarz = _dok.swatches.itemByName("[Schwarz]");
var _grau = _dok.swatches.itemByName("C=50 M=0 Y=0 K=100");
//~ var _rot = _dok.swatches.itemByName("HKS13")
for(var i=0; i<_allStories.length; i++)
{
var _textContainers = _allStories[i].textContainers;
for(var j=0; j<_textContainers.length; j++)
{
if((_textContainers[j].characters[0].appliedFont == _schriftart2) &&
(_textContainers[j].characters[0].fillColor != _grau))
//~
//~ if((_textContainers[j].characters[0].appliedFont == _schriftart2) &&
//~ (_textContainers[j].characters[0].fillColor == _rot))


{
// Rotate the text container:
_textContainers[j].rotationAngle = 30;
};
};
};


//~ alert(app.selection[0].appliedFont.name);


Hast du eine Idee?

Vielen Dank
LG
faxinger


als Antwort auf: [#579219]
(Dieser Beitrag wurde von faxinger am 26. Mär 2021, 14:35 geändert)
X

Aktuell

InDesign / Illustrator
ScreenShot 274 Warum Templates in InDesign benutzen_ - Satzkiste in Stuttgart - Satz und technische Umsetzung - Google Chrome (300x300 HilfDirSelbst)

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
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/