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

22. Mär 2021, 14:56
Beitrag # 1 von 5
Bewertung:
(3082 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, 14:57 geändert)
X

rotate textcontainer

Martin Fischer
  
Beiträge gesamt: 12472

22. Mär 2021, 15:17
Beitrag # 2 von 5
Beitrag ID: #579214
Bewertung: |||
(3068 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.

Viele Grüße
Martin




als Antwort auf: [#579213]

rotate textcontainer

faxinger666
Beiträge gesamt: 158

23. Mär 2021, 07:03
Beitrag # 3 von 5
Beitrag ID: #579218
Bewertung:
(2996 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: 12472

23. Mär 2021, 07:54
Beitrag # 4 von 5
Beitrag ID: #579219
Bewertung: |||
(2968 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); 


Viele Grüße
Martin




als Antwort auf: [#579218]

rotate textcontainer

faxinger
Beiträge gesamt: 246

26. Mär 2021, 13:20
Beitrag # 5 von 5
Beitrag ID: #579256
Bewertung:
(2720 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, 13:35 geändert)
X

Aktuell

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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PM

Veranstaltungen
12.03.2021 - 16.07.2021

Digicomp Academy AG, Zürich oder virtuell
Freitag, 12. März 2021, 13.00 Uhr - Freitag, 16. Juli 2021, 17.00 Uhr

Lehrgang

Steigen Sie in die Welt des Publishings ein und erlangen Sie die Zertifizierung von publishingNETWORK. Lernen Sie in diesem Lehrgang Druckmedien professionell zu erarbeiten, druckfertige PDFs zu erstellen und CI/CD-Vorgaben umzusetzen.

Preis: CHF 6'300.-
Dauer: 18 Tage (ca. 126 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt.

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/9PBAS