[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Wie spricht man ein platziertes Snippet an?

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

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

31. Mär 2012, 12:37
Beitrag # 1 von 14
Bewertung:
(5052 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo miteinander,

ich habe folgendermaßen einen als Snippet vorhandenen TextFrame platziert:

Set SnippetFrame = INDD.ActiveDocument.Pages.Item(1).Place("C:\test.idms", Array(PositionRight, PositionTop), , False, True)

Es gelingt es mir nicht, anschließend den SnippetFrame anzusprechen. Die folgenden Befehle liefern die Fehlermeldung "Objekt unterstützt diese Methode oder Eigenschaft nicht":

Test1 = SnippetFrame.Label

SnippetFrame.FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb")

Was mache ich falsch?

Vielen Dank für eure Hilfe.

Gruß
wopii
X

Wie spricht man ein platziertes Snippet an?

Hans Haesler
  
Beiträge gesamt: 5826

1. Apr 2012, 11:36
Beitrag # 2 von 14
Beitrag ID: #492826
Bewertung:
(5002 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo wopii,

herzlich willkommen in der Skriptwerkstatt auf HilfDirSelbst! :-)

Dein Beitrag wurde bisher fast 50 Mal gelesen. Aber keine Antwort auf die eigentlich einfache Frage.
Würdest Du JavaScript verwenden, dann wäre der Erfolg bestimmt grösser ...

Zu Deiner Frage: SnippetFrame ist nicht ein Objekt, sondern ein Array.
Um das Snippet anzusprechen, musst Du das erste Element des Arrays adressieren. Vielleicht so(?):

Code
SnippetFrame.Item(1).FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb") 

Nicht getestet, weil Mac OS X.

Gruss, Hans


als Antwort auf: [#492801]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

1. Apr 2012, 11:54
Beitrag # 3 von 14
Beitrag ID: #492827
Bewertung:
(4992 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

besten Dank für Deine hilfreiche Antwort. Ja, so funktioniert es!

Dass ein Snippet, das sich auf dem Bildschirm genauso "anfühlt" wie ein TextFrame, kein solcher ist, sondern ein Array... darauf muss man erst einmal kommen. Aber ich werde hier jetzt nicht über die InDesign-API-Dokumentation jammern;-)

Ja, JavaScript ist in InDesign-Kreisen weiter verbreitet als VB6, aber mit VB6 kenne ich mich aus, mit JavaScript nicht.

Nochmals besten Dank und viele Grüße
Wolfgang


als Antwort auf: [#492826]

Wie spricht man ein platziertes Snippet an?

Hans Haesler
  
Beiträge gesamt: 5826

1. Apr 2012, 12:00
Beitrag # 4 von 14
Beitrag ID: #492828
Bewertung:
(4985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wolfgang,

bitteschön.

Sicher, das plazierte Snippet fühlt sich im Dokument wie ein Text-(oder Bild-)rahmen an.

Aber hier geht es um das Ergebnis des Plazierungs-Befehls. Und dieses Ergebnis ist nun mal als Array definiert. Und darauf kommt man, indem man sich im Object-Model-Verzeichnis umschaut ...

Gruss, Hans


als Antwort auf: [#492827]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

1. Apr 2012, 12:56
Beitrag # 5 von 14
Beitrag ID: #492832
Bewertung:
(4949 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Code
SnippetFrame.Item(1).FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb") 


ist zwar syntaxfehlerfrei, liefert aber leider nicht so ganz das Ergebnis, das ich haben möchte: Der Befehl bewirkt, dass der Text in Knallgelb erscheint. Was ich möchte, ist ein knallgelber Frame-Hintergrund (so wie es der Fall ist, wenn ich FillColor auf einen TextFrame anwende).

Mit Item(2) und anderen Indizes habe ich schon herumgespielt, auch mit Parent. Nichts funktioniert.

Weißt Du Rat?

Viele Grüße
Wolfgang, der gerade dabei ist, weitere 250 MB Dokumentation von der Adobe-Website herunterzuladen, aber nicht die Hoffnung hat, darin Antwort auf Fragen zu finden...


als Antwort auf: [#492826]

Wie spricht man ein platziertes Snippet an?

Gerald Singelmann
  
Beiträge gesamt: 6269

1. Apr 2012, 13:31
Beitrag # 6 von 14
Beitrag ID: #492833
Bewertung:
(4931 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Dass ein Snippet, das sich auf dem Bildschirm genauso "anfühlt" wie ein TextFrame,


Erstellen Sie mal ein Snippet, das aus 5 Textrahmen besteht und platzieren das. Fühlt sich das immer noch an wie ein Textrahmen?


als Antwort auf: [#492827]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

1. Apr 2012, 13:50
Beitrag # 7 von 14
Beitrag ID: #492834
Bewertung:
(4926 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Gerald Singelmann ]
Zitat Dass ein Snippet, das sich auf dem Bildschirm genauso "anfühlt" wie ein TextFrame,


Erstellen Sie mal ein Snippet, das aus 5 Textrahmen besteht und platzieren das. Fühlt sich das immer noch an wie ein Textrahmen?


Nein, in der Tat. Ist irgendwie logisch:-)

Viele Grüße
Wolfgang


als Antwort auf: [#492833]

Wie spricht man ein platziertes Snippet an?

Hans Haesler
  
Beiträge gesamt: 5826

1. Apr 2012, 14:05
Beitrag # 8 von 14
Beitrag ID: #492836
Bewertung:
(4913 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wolfgang,

Antwort auf: Weißt Du Rat?

Würdest Du mir bitte das besagte Snippet zustellen?
Die Adresse findest Du in meinem Profil.

Gruss, Hans


als Antwort auf: [#492832]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

1. Apr 2012, 14:20
Beitrag # 9 von 14
Beitrag ID: #492837
Bewertung:
(4902 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das Snippet ist unterwegs.

Gruß
Wolfgang


als Antwort auf: [#492836]

Wie spricht man ein platziertes Snippet an?

Hans Haesler
  
Beiträge gesamt: 5826

1. Apr 2012, 15:34
Beitrag # 10 von 14
Beitrag ID: #492842
Bewertung:
(4853 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wolfgang,

danke für das Snippet.

Also ... SnippetFrame.Item(1) ist der Textrahmen. Wenn der Text, der sich darin befindet, eingefärbt werden soll, dann muss ParentStory eingefügt werden.

Diese JavaScript-Zeile funktioniert wie erwartet:

Code
SnippetFrame[0].parentStory.fillColor = app.activeDocument.colors.itemByName("Knallgelb"); 

Mit VB wird es vermutlich so klappen:

Code
SnippetFrame.Item(1).ParentStory.FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb") 

Gruss, Hans


als Antwort auf: [#492837]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

1. Apr 2012, 16:24
Beitrag # 11 von 14
Beitrag ID: #492844
Bewertung:
(4828 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ]
Zitat Mit VB wird es vermutlich so klappen:

Code
SnippetFrame.Item(1).ParentStory.FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb") 


Leider nein:-( Sattsam bekannte Fehlermeldung: "Dieses Objekt unterstützt diese Methode oder Eigenschaft nicht". Offenbar haben TextFrames, die via Snippet platziert wurden, keine Eltern. Ich hab's auch mit einem Snippet versucht, das zwei verkettete Textrahmen enthält -- gleiches Ergebnis.

Aus Verzweiflung habe ich noch folgendes versucht:

Code
SnippetFrame.Item(1).Texts.Item(1).ParentStory.FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb") 


Das ist offenbar syntaktisch korrekt (keine Fehlermeldung), färbt aber ebenfalls die Zeichen und nicht den Hintergrund.

Auch folgendes funktioniert nicht:

Code
Dim Duplikat as InDesign.TextFrame 
Set Duplikat = SnippetFrame.Item(1)

Ich geb's jetzt auf. Die Sache ist glücklicherweise nicht lebenswichtig.

Herzlichen Dank für die Zeit, die Du Dir genommen hast!

Wolfgang



als Antwort auf: [#492842]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

1. Apr 2012, 17:39
Beitrag # 12 von 14
Beitrag ID: #492845
Bewertung:
(4809 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

das Problem ist gelöst. Ursache war, dass das Snippet im Rahmen einer Schleife

Code
For Each TextFrame in INDD.ActiveDocument.TextFrames 
If TextFrame.Label <> "" then
Set SnippetFrame = ....
End If
next

platziert wurde.

Während die Schleife durchlaufen wird, ist das Snippet nicht korrekt ansprechbar (was ja auch irgendwie verständlich ist). Danach kann es wie ein ganz normaler TextFrame angesprochen werden, und FillColor färbt den Frame und nicht die Zeichen.

Tja, immer wieder diese Schleifen...

Viele Grüsse
Wolfgang


als Antwort auf: [#492844]

Wie spricht man ein platziertes Snippet an?

Hans Haesler
  
Beiträge gesamt: 5826

1. Apr 2012, 21:49
Beitrag # 13 von 14
Beitrag ID: #492848
Bewertung:
(4759 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Wolfgang,

ich sehe erst jetzt, dass ich die Aufgabe nicht verstanden habe ...

Nicht der Text, sondern der Hintergrund des Textrahmens soll eingefärbt werden. Dazu braucht es natürlich das ParentStory nicht.

Aber bei Deiner Schleife blicke ich nicht ganz durch. Woher nimmst Du denn die Pfade der Snippets? Die Schleife läuft vorwärts: Da müssen sich doch die importierten, gelabelten Snippets störend auswirken.

Ich habe jetzt in einem Dokument das Farbfeld "Knallgelb" angelegt und fünf Textrahmen erzeugt. Zwei davon mit einem Label versehen.

Zu Beginn wird per Dialog das Snippet ausgewählt. Dann werden in der rückwärts laufenden Schleife die Textrahmen geprüft. Wenn bei einem Rahmen das Label nicht ein leerer String ist, dann wird das Snippet geladen und der Hintergrund des Snippet-Rahmens wird mit "Knallgelb" eingefärbt.

Code
var curDoc    = app.documents[0]; 
var snipFile = File.openDialog ();
var txtFrames = curDoc.textFrames;
var nFrames = txtFrames.length;
for (var i=nFrames-1; i>0; i--) {
if (txtFrames.item(i).label != "") {
var SnippetFrame = curDoc.pages.item(0).place(File(snipFile));
SnippetFrame[0].fillColor = curDoc.colors.itemByName("Knallgelb");
}
}

Ergebnis: Das Snippet ist in der Schleife sehr wohl ansprechbar. Bedingung ist, dass SnippetFrame.Item(1) benutzt wird.

Ach ja: Entschuldige bitte das JavaScript. Aber für VBA sind meine Kenntnisse nicht ausreichend.

Gruss, Hans


als Antwort auf: [#492845]

Wie spricht man ein platziertes Snippet an?

wopii
Beiträge gesamt: 8

2. Apr 2012, 10:05
Beitrag # 14 von 14
Beitrag ID: #492861
Bewertung:
(4693 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Hans Haesler ] Hallo Hans,

Zitat Aber bei Deiner Schleife blicke ich nicht ganz durch. Woher nimmst Du denn die Pfade der Snippets?

Die stammen aus einer Datenbank, die im Zuge von Vorgängerprojekten angelegt wurde.

Zitat Die Schleife läuft vorwärts: Da müssen sich doch die importierten, gelabelten Snippets störend auswirken.


Ja, da hast Du völlig recht. Eine solche Schleife vorwärts laufen zu lassen, ist sicher keine gute Idee:-(

Zitat Ich habe jetzt in einem Dokument das Farbfeld "Knallgelb" angelegt und fünf Textrahmen erzeugt. Zwei davon mit einem Label versehen.

Zu Beginn wird per Dialog das Snippet ausgewählt. Dann werden in der rückwärts laufenden Schleife die Textrahmen geprüft. Wenn bei einem Rahmen das Label nicht ein leerer String ist, dann wird das Snippet geladen und der Hintergrund des Snippet-Rahmens wird mit "Knallgelb" eingefärbt.


Ich habe die Schleife versuchshalber mal rückwärts laufen lassen. Das sieht dann in VB etwa so aus:

Code
Dim AnzahlFrames as Integer 
Dim Z as Integer
Dim Pfad as String

AnzahlFrames = INDD.ActiveDocument.TextFrames.Count

For Z = AnzahlFrames To 1 Step -1
Set myFrame = INDD.ActiveDocument.TextFrames.Item(Z)
If myFrame.Label <> "" then
Set SnippetFrame = INDD.ActiveDocument.Place(Pfad)
SnippetFrame.Item(1).FillColor = INDD.ActiveDocument.Colors.Item("Knallgelb")
End If
Next Z


Ergebnis: Es wird die Schrift eingefärbt und nicht der Rahmen. Ein versuchsweise eingefügtes "ParentStory" erzeugt eine Fehlermeldung.

Fazit: Innerhalb dieser Schleife, egal ob vorwärts oder rückwärts, färbt FillColor die Schrift und nicht den TextFrame. Weiß der Teufel, warum. Scheint eine Besonderheit der VB-Implementierung zu sein.

Wenn ich nach dem Platzieren eine separate Schleife speziell zum Färben der TextFrames ausführe, färbt FillColor, wie erwartet, die TextFrames.

Ich hab's aufgegeben, das verstehen zu wollen...

Viele Grüsse
Wolfgang



als Antwort auf: [#492848]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
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!