[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Verankertes Objekt per Script erzeugen?

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

Verankertes Objekt per Script erzeugen?

arnolddesign
Beiträge gesamt: 75

18. Jan 2006, 20:41
Beitrag # 1 von 55
Bewertung:
(26810 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag miteinander

die verankerten Objekte haben, wenn man sie mit Objektstilen nutzt, doch eigentlich nur eine Schwachstelle: die Dimensionen der verankerten Boxen müssen beim Einfügen jedesmal neu eingegeben werden, obwohl doch diese in den meisten Fällen immer gleich gross sind. Klar, ich kann in den Standardeinstellungen eine andere Grösse als die 25,7 x 25,7 mm einstellen. Ich möchte aber gerne aus unterschiedlichen immer wieder gleich grossen Boxen auswählen können.

Ist jemand von euch schon mal über ein Script gestolpert, das diese Schwachstelle elegant umschiffen lässt, indem man die Dimensionen der Marginalien-Textbox (und natürlich den Objektstil) als Parameter festlegen und es dann anstelle des Einfügen-Befehls laufen lassen kann? Martin – hast du vielleicht schon mal ...? :-)

Oder kennt jemand einen eleganteren Weg, die Textmarken für verankerte Boxen "abzulegen", als in einer Textbox, aus der sie bei Bedarf herauskopiert werden können?

Danke für eure Tipps!

Lukas
X

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

18. Jan 2006, 21:50
Beitrag # 2 von 55
Beitrag ID: #205732
Bewertung:
(26757 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Lukas,

ja, ich habe da ein paar Varianten auf Lager. ;-)
Hatte das letzte halbe Jahr öfters mit Randnummern und Marginalien zu arbeiten.

Hier eine einfache Variante ohne viel Abfragen.

Code
// insertAnchoredFrame_simpleVersion.jsx 
//
var mySelection=app.selection[0];
var myOStyle = app.activeDocument.objectStyles.item("Marginalien"); // Objektstil
var myBounds = [ "0p", "0p", "3mm", "18mm"]; // Koordinaten des Marginalientextrahmens [y1, x1, y2, x2]

var myFrame = mySelection.insertionPoints[0].textFrames.add(); // Einfügen eines Textrahmen am Einfügepunkt (Cursor)
myFrame.parent.parentTextFrames[0].characters.length;
myFrame.geometricBounds = myBounds; // Zuweisung der Koordinaten (Höhe und Breite)
myFrame.applyObjectStyle(myOStyle, true); // Zuweisung des Objektstils


Das Skript setzt einen Objektstil "Marginalien" voraus und bricht mit einer Fehlermeldung ab, wenn dem nicht so ist.
Es setzt ungeprüft voraus, daß der Cursor sich als "Einfügepunkt" an dem Platz befindet, an dem der neue Textrahmen verankert werden soll.
Bei den Koordinaten ist zu beachten, daß entgegen der herkömmlichen Regeln y vor x kommt.
Die Koordinaten eines Rechteck sind also y1, x1, y2, x2 (siehe myBounds).

Übrigens, wenn der Text für den verankerten Rahmen bereits im Fließtext enthalten ist (z.B. Marginalie), dann könnte dieser mit zwei zusätzlichen Skriptzeilen in den verankerten Rahmen übernommen werden.

Viele Grüße
Martin




als Antwort auf: [#205724]
(Dieser Beitrag wurde von Martin Fischer am 18. Jan 2006, 21:56 geändert)

Verankertes Objekt per Script erzeugen?

arnolddesign
Beiträge gesamt: 75

18. Jan 2006, 23:00
Beitrag # 3 von 55
Beitrag ID: #205740
Bewertung:
(26751 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Martin – danke vielmals!

Das ist genau, was ich mir als simple Version vorgestellt hatte. Wenn ich den Scriptfolder mit Subfoldern organisiere, kann ich gut ein paar Versionen dieses Scripts für verschiedene Marginalien ablegen.

Die beiden Zeilen, die den Text für die Marginalie extrahieren interessieren mich auch noch – sowie offengestanden auch eine allfällig vorhandene notSoSimpleVersion ... (meine Wunschvorstellung: ein Script mit einer Dialogbox, in der ich aus einem Dropdown-Menü verschiedene Versionen von Marginalien auswählen kann?)

Lukas


als Antwort auf: [#205732]

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

18. Jan 2006, 23:26
Beitrag # 4 von 55
Beitrag ID: #205742
Bewertung:
(26748 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Dialogbox, in der ich aus einem Dropdown-Menü verschiedene Versionen von Marginalien auswählen kann?

Du meinst eine Auswahl an Objektstilen?
Das wäre schon möglich, wenn Dich die lästigen Bestätigungen nicht stören.

Hier die zwei versprochenen Zeilen für den Inhalt (einfach unten anhängen):
Code
myFrame.contents=mySelection.contents; 
app.selection[0].contents = ""


Ich gehe davon aus, daß Du vor dem Start des Skripts das erste Wort (oder mehrere Wörter) und ein anschließendes Leerzeichen markiert hast. Das ist ein bißchen Trickserei, denn durch das Einfügen des Textrahmens ändert sich die Auswahl, deswegen ist das Leerzeichen als Abschluß der Auswahl notwendig.

Es sei denn, Du würdest noch eine dritte Zeile verkraften, denn dann könnte man den Inhalt der Auswahl vor dem Einfügen des Textrahmens in eine Variable speichern.

Viele Grüße
Martin




als Antwort auf: [#205740]

Verankertes Objekt per Script erzeugen?

arnolddesign
Beiträge gesamt: 75

18. Jan 2006, 23:38
Beitrag # 5 von 55
Beitrag ID: #205743
Bewertung:
(26747 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Du meinst eine Auswahl an Objektstilen?


nein, eine Auswahl an "Marginalienstilen" – ich stelle mir das so vor, dass ich im Script eine Liste von Box-Dimensionen mit den zugehörigen Objektstilen anlegen kann und dass ich für jeden Eintrag in dieser Liste einen Namen vergeben kann, der beim Scriptaufruf ins Dropdownmenü eingelesen wird. Das wäre zugegebenermassen eine full blown Version, die du, falls überhaupt, eigentlich nur im Austausch gegen ein Paar handgestrickte Socken anbieten solltest ;-)

Antwort auf: Es sei denn, Du würdest noch eine dritte Zeile verkraften, denn dann könnte man den Inhalt der Auswahl vor dem Einfügen des Textrahmens in eine Variable speichern.


die dritte Zeile würde ich rein interessehalber vermutlich noch verkraften :-)

Gruss, Lukas


als Antwort auf: [#205742]

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

18. Jan 2006, 23:53
Beitrag # 6 von 55
Beitrag ID: #205744
Bewertung:
(26743 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also die notSoSimpleVersion mit einem Mißverständnis ist fertig.
Darin habe ich die von Dir gewünschte dritte Zeile (nebst vielen anderen) untergebracht.
Damit hast Du hoffentlich genug Stoff für diese Nacht. ;-)

Das Mißverständnis liegt darin, daß ich unter "verschiedene Versionen von Marginalien" die Auswahl der Objektstile verstanden habe. Die ist hier geboten:
Code
// insertAnchoredFrame_notSoSimpleVersion.jsx  
//
var mySelection=app.selection[0];
var theOStyles = app.activeDocument.objectStyles.everyItem().name;
var myOStyleName = myDisplayDialog();
var myOStyle = app.activeDocument.objectStyles.item(myOStyleName);
var myBounds = [ "0p", "0p", "3mm", "18mm"]; // Koordinaten des Marginalientextrahmens [y1, x1, y2, x2]

var myContent = mySelection.contents; // Sicherung des Inhalts der Auswahl
var myFrame = mySelection.insertionPoints[0].textFrames.add(); // Einfügen eines Textrahmen am Einfügepunkt (Cursor)
myFrame.parent.parentTextFrames[0].characters.length;
myFrame.geometricBounds = myBounds; // Zuweisung der Koordinaten (Höhe und Breite)
myFrame.applyObjectStyle(myOStyle, true); // Zuweisung des Objektstils
myFrame.contents = myContent; // Zuweisung des Inhalts
app.selection[0].contents = ""; // Löschen der ursprünglichen Auswahl

function myDisplayDialog()
{
var myFieldWidth = 150;
var myDialog = app.dialogs.add({name:"Objektstil für verankerten Rahmen"});
with(myDialog.dialogColumns.add())
{
with(dialogRows.add())
{
with(dialogColumns.add())
{
staticTexts.add({staticLabel:"Objktstil:", minWidth:myFieldWidth});
}
with(dialogColumns.add())
{
var myOStyleDropDown = dropdowns.add({stringList:theOStyles, selectedIndex:theOStyles.length-1});
}
}
}
var myResult = myDialog.show();
if(myResult == true)
{
var aOStyle = theOStyles[myOStyleDropDown.selectedIndex]
myDialog.destroy();
}
else
{
myDialog.destroy();
exit();
}
return aOStyle ;
}


Für die full blow Version (mit Wunschlisten) braucht's aber dann schon eine sehr exquisite Wolle. Und nach meinen Vorleistungen möchte ich erst mal sehen, ob Du überhaupt stricken kannst. ;-)

Viele Grüße
Martin




als Antwort auf: [#205743]

Verankertes Objekt per Script erzeugen?

arnolddesign
Beiträge gesamt: 75

20. Feb 2006, 11:45
Beitrag # 7 von 55
Beitrag ID: #212762
Bewertung:
(26578 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Martin

bei der Verwendung des sehr hilfreichen Scripts insertAnchoredFrames_simpleVersion haben wir plötzlich noch ein kleines Problem gefunden: Wenn ein anderes Zeichenformat als [keine] ausgewählt ist, wird der Text in der verankerten Box damit formatiert, da ja leider das Zeichenformat im Objektstil nicht definiert werden kann.

Darf ich dich auf diesem Weg (ohne Zeitdruck!) um eine Version des Skripts bitten, in der das Zeichenformat nach dem Anlegen des verankerten Objekt auf [keine] gestellt wird?! (wenn es, wie ich vermute, nur um eine Zeile Code geht, kann ich diese natürlich auch selbst ins Skript einbauen)

Herzlichen Dank!

Lukas


als Antwort auf: [#205744]

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

20. Feb 2006, 12:19
Beitrag # 8 von 55
Beitrag ID: #212771
Bewertung:
(26568 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Lukas,

> Wenn ein anderes Zeichenformat als [keine] ausgewählt ist, wird der Text in der
> verankerten Box damit formatiert, da ja leider das Zeichenformat im Objektstil
> nicht definiert werden kann.

füge vor der Zeile
Code
myFrame.contents = myContent; // Zuweisung des Inhalts 


Die folgende Zeile ein
Code
myFrame.insertionPoints[0].appliedCharacterStyle = app.documents[0].characterStyles.item("[Keine]"); 


(Probier das mal, hab's nicht getestet).

Es ist möglich, daß dennoch die Formatierung, die in dem "aktiven" Zeichenformat vom Standard abweicht, beim Einfügen des Inhalts aktiv bleibt.
Um dies zu beheben bräuchte es eine Routine, die dem ersten Einfügepunkt alle Attribute des Zeichenformats "[Keine]" zuweist.

Einfacher wäre es, Du würdest das Zeichenformat "[Keine]" aktiviert halten (und nicht ein anderes Zeichenformat).

> da ja leider das Zeichenformat im Objektstil
> nicht definiert werden kann.
Würde das Sinn machen?
Was wäre der Unterschied zu der möglichen Zuweisung eines Absatzformats?

Ach so, es geht möglicherweise um die Aufhebung eines ggf. vorher aktiven Zeichenformats.
Ein sehr spezieller Fall. ;-)

Viele Grüße
Martin




als Antwort auf: [#212762]

Verankertes Objekt per Script erzeugen?

arnolddesign
Beiträge gesamt: 75

21. Feb 2006, 00:11
Beitrag # 9 von 55
Beitrag ID: #212934
Bewertung:
(26536 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Martin

herzlichen Dank; ich habe die Zeile zwar noch nicht mit derjenigen Version des Scripts getestet, die wir im Büro im Einsatz haben, es sieht aber danach aus, dass das Problem gelöst ist.
Ein Zeichenformat ist ja bei einem neuen verankerten Objekt noch nicht zugewiesen, muss also nicht aufgehoben werden; es geht nur darum, dass das in der Palette aktive Zeichenformat für den aktuellen Cursor auf [keine] gestellt wird und genau das scheint die zusätzliche Zeile zu machen.

Lukas


als Antwort auf: [#212771]

Verankertes Objekt per Script erzeugen?

Quarz
Beiträge gesamt: 3327

13. Mär 2008, 12:41
Beitrag # 10 von 55
Beitrag ID: #341483
Bewertung:
(24526 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

lang, lang ist’s her mit diesem Thread.

Wie Du weißt, setze ich die Endnoten eines Textes als
Fußnoten ›per Hand‹ unten auf jede Seite.

Damit ich mir nicht eine Lupenbrille aufsetzen muß, um
die Fußnotenzeichen im Text zu sehen, kopiere ich sie
mir als Marginalien in einer größeren Schriftgröße an den
Rand.

Nun zu meiner Frage.
Wäre es möglich, dass nach dem Erzeugen des verankerten
Objektes der Cursor autom. hineinspringt und ich die Zahl
direkt eingeben kann?

Gruß
Quarz


als Antwort auf: [#212934]

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

13. Mär 2008, 12:48
Beitrag # 11 von 55
Beitrag ID: #341486
Bewertung:
(24522 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Quarz,

versuch's mal mit dem Einfügen der folgenden Zeile (am Ende des Skripts bzw. vor der Funktion 'function ...'):

Code
myFrame.insertionPoints[0].select(); 


Viele Grüße
Martin




als Antwort auf: [#341483]

Verankertes Objekt per Script erzeugen?

Quarz
Beiträge gesamt: 3327

13. Mär 2008, 13:01
Beitrag # 12 von 55
Beitrag ID: #341489
Bewertung:
(24519 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Martin,

funktioniert prima!

Du hast mir das Script mit der Zeile
Code
app.selection[0].parentStory.texts[0].textFrames.everyItem().remove(); 

damals empfohlen, um all diese verankerten Objekte wieder
los zu werden.

Doch unter CS3 gibt es eine Fehlermeldung.
Siehe Anlage

Gruß
Quarz


als Antwort auf: [#341486]
(Dieser Beitrag wurde von Quarz am 13. Mär 2008, 13:10 geändert)

Anhang:
Fehlermeldung.jpg (19.3 KB)

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

13. Mär 2008, 15:42
Beitrag # 13 von 55
Beitrag ID: #341530
Bewertung:
(24489 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Quarz,

unter CS3 muß es so lauten:

Code
app.selection[0].parentStory.texts[0].textContainers.everyItem().remove(); 


Viele Grüße
Martin




als Antwort auf: [#341489]

Verankertes Objekt per Script erzeugen?

Quarz
Beiträge gesamt: 3327

13. Mär 2008, 16:27
Beitrag # 14 von 55
Beitrag ID: #341555
Bewertung:
(24484 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

leider bekomme ich wieder eine Fehlermeldung.

Gruß
Quarz


als Antwort auf: [#341530]
Anhang:
Fehlermeldung_2.jpg (20.2 KB)

Verankertes Objekt per Script erzeugen?

Martin Fischer
  
Beiträge gesamt: 12279

13. Mär 2008, 16:34
Beitrag # 15 von 55
Beitrag ID: #341557
Bewertung:
(24483 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ach entschuldige, Quarz,
bin mit dem Kopf grad ganz wo anders.
Vergiß den letzten Hinweis.

Die alte Zeile stimmt.
Aber es kommt darauf an, von wo und wann sie ausgeführt wird.
Und ich weiß nicht mehr, wie Dein Skript aussieht.

Schick's doch noch mal her.
Dann muß ich nicht so im Dunkeln tappen

Viele Grüße
Martin




als Antwort auf: [#341555]
X

Aktuell

PDF / Print
pitstopp_300

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
10.06.2020

Die smarte PDF-Workflow-Lösung für Druckereien

Ortsunabhängig
Mittwoch, 10. Juni 2020, 10.00 - 10.30 Uhr

Webinar

In diesem kostenlosen ca. halbstündigen Webinar stellen wir Ihnen das neueste Produkt aus dem Hause Impressed vor: Der Impressed Workflow Server (IWS) ist eine automatisiert arbeitende PDF-Workflow-Lösung für Druckereien mit einer zentralen, Datenbank-gestützten Jobverwaltung und einer Browser-basierten Jobsteuerung. Die Bedienoberfläche des IWS ermöglicht eine Übersicht über die aktuellen in der Produktion befindlichen Dateien und kann deren weiteren Verlauf steuern. Der IWS automatisiert und standardisiert somit die Produktion.

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://impressed-workflow-server.de/

Der Impressed Workflow Server (IWS)
Veranstaltungen
15.06.2020 - 16.06.2020

Digicomp Academy AG, Küchengasse 9, 4051 Basel
Montag, 15. Juni 2020, 08.30 Uhr - Dienstag, 16. Juni 2020, 17.00 Uhr

Kurs

Adobe Experience Design, kurz XD ist das neue Programm für UX/UI-Design. Mit XD lassen sich visuelles Design und klickbare Prototypen nahtlos verbinden. Lernen Sie die wichtigsten Funktionen vom Entwurf am Bildschirm bis zum online geteilten Prototypen.

Preis: CHF 1'400.–
Dauer: 2 Tage

Nein

Organisator: https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/web-publishing/adobe-xd-cc/kurs-adobe-xd-basic

Kontaktinformation: Isil Günalp, E-Mailisil.guenalp AT digicomp DOT ch

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/web-publishing/adobe-xd-cc/kurs-adobe-xd-basic

Neuste Foreneinträge


Verpacken per Skript

Win 10 - ext. HD

Gepunktete Kontur, nach innen versetzt

Belichter-Passer Problem bei 2 Jahre alten Ger�t

Wiederholte Aufforderung zum Sicherheitsupdate 2020-003 f�r High Sierra 10.13.6

Interessante WebSite f�r macOS gefunden

Umriss Anzeige einer Schrift in Negativ

Mac: Men� leer

Import XML

�bergeordnetes PDF bzw. Lesezeichen-Zusammenfassung
medienjobs