[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:
(34299 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: 12783

18. Jan 2006, 21:50
Beitrag # 2 von 55
Beitrag ID: #205732
Bewertung:
(34246 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.


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:
(34240 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: 12783

18. Jan 2006, 23:26
Beitrag # 4 von 55
Beitrag ID: #205742
Bewertung:
(34237 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.


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:
(34236 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: 12783

18. Jan 2006, 23:53
Beitrag # 6 von 55
Beitrag ID: #205744
Bewertung:
(34232 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. ;-)


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:
(34067 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: 12783

20. Feb 2006, 12:19
Beitrag # 8 von 55
Beitrag ID: #212771
Bewertung:
(34057 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. ;-)


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:
(34025 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: 3555

13. Mär 2008, 12:41
Beitrag # 10 von 55
Beitrag ID: #341483
Bewertung:
(32015 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: 12783

13. Mär 2008, 12:48
Beitrag # 11 von 55
Beitrag ID: #341486
Bewertung:
(32011 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(); 



als Antwort auf: [#341483]

Verankertes Objekt per Script erzeugen?

Quarz
Beiträge gesamt: 3555

13. Mär 2008, 13:01
Beitrag # 12 von 55
Beitrag ID: #341489
Bewertung:
(32008 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: 12783

13. Mär 2008, 15:42
Beitrag # 13 von 55
Beitrag ID: #341530
Bewertung:
(31978 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(); 



als Antwort auf: [#341489]

Verankertes Objekt per Script erzeugen?

Quarz
Beiträge gesamt: 3555

13. Mär 2008, 16:27
Beitrag # 14 von 55
Beitrag ID: #341555
Bewertung:
(31973 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: 12783

13. Mär 2008, 16:34
Beitrag # 15 von 55
Beitrag ID: #341557
Bewertung:
(31972 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


als Antwort auf: [#341555]
X

Aktuell

PDF / Print
pitstopPro_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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

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? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!