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

22. Mär 2021, 15:56
Beitrag # 1 von 5
Bewertung:
(6708 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: 12814

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

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

23. Mär 2021, 08:54
Beitrag # 4 von 5
Beitrag ID: #579219
Bewertung: |||
(6594 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:
(6346 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

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
30.07.2024

Online
Dienstag, 30. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 16.07.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 30.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen Anlage von Beschnittzugaben Automatische Erzeugung der Schnittkontur Erstellung von Strichcodes, Textmarkierungen und Registrierungen ... IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix2Switch ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

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

So optimieren Sie Ihren LFP-Workflow