[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Ein Bild mehrfach verankern und skalieren

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

Ein Bild mehrfach verankern und skalieren

faxinger666
Beiträge gesamt: 113

28. Apr 2020, 08:03
Beitrag # 1 von 14
Bewertung:
(3534 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Forumsmitglieder!

Ich bitte um Hilfe bei der Umsetzung eines Skriptes, mit dem ein Bild in mehreren Textrahmen verankert werden soll und dann auch noch skaliert werden soll, abhängig von der verwendeten Schriftgröße des jeweiligen Absatzes (ist immer nur einer pro Textrahmen).

Was ich bis jetzt schaffe:
Das Bild wird auf einer neu erstellten Ebene per platzieren geladen und in der variablen bild gespeichert.

Woran ich bisher scheiterte ist:

Ich fragte alle Textrahmen nach deren Objektformat ab und wollte testhalber einen Text hinzufügen.

Das Problem dabei: Wenn die Textrahmen mit anderen Elementen gruppiert sind funktioniert die Abfrage scheinbar nicht.

Was ich eigentlich wissen will:

Wie kann ich ein Objekt mehrmals in Textrahmen (insertionPoints[0]) verankern. Mit copyTo würde es ja nur an die betreffende Stelle kopiert aber nicht verankert.

Und wie skaliere ich das jeweilige Bild. Ich kann ja erst skalieren nachdem ich einen Bezug zum Absatz des jeweiligen Textrahmens hergestellt habe, oder?

Ich hoffe ich habe mich halbwegs verständlich ausgedrückt und hoffe auf zahlreiche Tipps.

Danke euch allen.
LG
faxinger666
X

Ein Bild mehrfach verankern und skalieren

TMA
Beiträge gesamt: 362

29. Apr 2020, 07:46
Beitrag # 2 von 14
Beitrag ID: #575063
Bewertung:
(3463 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin faxinger666,
ich habe das zwar noch nicht gemacht aber folgendes bzgl. Anker gefunden:
Es gibt 'insertAnchoredObject()'.
Vielleicht hilft dir dieses hier weiter:
https://www.indesignjs.de/...d1e383930__d1e384388

Gruß
TMA


als Antwort auf: [#575038]

Ein Bild mehrfach verankern und skalieren

faxinger666
Beiträge gesamt: 113

29. Apr 2020, 07:52
Beitrag # 3 von 14
Beitrag ID: #575064
Bewertung:
(3458 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA,

danke für deine Antwort.

Insert anchored Object kenne ich. Mir geht es aber darum ein Bild mehrfach zu verankern. D.H. Das Bild X wird im ersten gefundenen Textrahmen verankert, das Bild X wird im zweiten gefundenen Textrahmen verankert usw. Die Frage ist wie man das umsetzt. Kann man mit CopyTo gleichzeitig verankern?

Oder gäbe es da einen anderen Workaround?

LG
faxinger666


als Antwort auf: [#575063]
(Dieser Beitrag wurde von faxinger666 am 29. Apr 2020, 07:53 geändert)

Ein Bild mehrfach verankern und skalieren

TMA
Beiträge gesamt: 362

29. Apr 2020, 08:13
Beitrag # 4 von 14
Beitrag ID: #575065
Bewertung:
(3450 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Da ich das noch nie gemacht habe, kann ich dir da leider nicht weiterhelfen.
Ich gehe aber mal davon aus, dass man ein Object so oft man möchte irgendwo verankern kann.
Also wenn man eine Schleife durch die textFrames macht, sollte die function 'insertAnchoredObject()' doch jedesmal ausführbar sein.

Gruß
TMA


als Antwort auf: [#575064]

Ein Bild mehrfach verankern und skalieren

Martin Fischer
  
Beiträge gesamt: 12311

29. Apr 2020, 08:45
Beitrag # 5 von 14
Beitrag ID: #575066
Bewertung:
(3443 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielleicht einen Prototypen des mehrfach zu verankerten Rahmens erstellen und in die Zwischenablage kopieren.

Dann GREP-Suche nach den Stellen, wo er eingefügt werden soll (z.B. 1. Zeichen "^." + Absatzformat).

GREP-Ersetzen: ^c$0
(Inhalt der Zwischenablage, formatiert + Fundstelle)

Viele Grüße
Martin




als Antwort auf: [#575065]
(Dieser Beitrag wurde von Martin Fischer am 29. Apr 2020, 08:46 geändert)

Ein Bild mehrfach verankern und skalieren

WernerPerplies
Beiträge gesamt: 2521

29. Apr 2020, 19:54
Beitrag # 6 von 14
Beitrag ID: #575083
Bewertung:
(3389 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Faxinger,

also ich mache das so:
1. temporären Rahmen mit Bild erzeugen,
2. Rahmen duplizieren,
3. Duplizierten Rahmen verankern.
Zum Schluss:
temporären Rahmen löschen.

Eines von vielen Moglichkeiten meines Skriptes
WpsCreateAnchoredFrames

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575038]

Ein Bild mehrfach verankern und skalieren

faxinger666
Beiträge gesamt: 113

29. Apr 2020, 21:12
Beitrag # 7 von 14
Beitrag ID: #575085
Bewertung:
(3380 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für deine Antwort.

Ich habs voerst mal mit "meiner" Methode versucht ->
Alle Textrahmen mit dem gewünschten Objektformat durchlaufen und Bild verankern.

Ergebnis: das Bild wurde nur einmal verankert. :-(
Problem dabei auch: Textrahmen in Gruppen werden nicht durchsucht.

Der nächste Versuch wird dein Vorschlag sein.
Was mit dabei noch nicht so gefällt ist, dass ich vorher das Bild händisch in die Zwischenablage kopieren muss.

Vielleicht gibt es da noch einen eleganteren Workaround? Das Bild-Objekt ist ja schon in einer Variablen gespeichert.

LG
faxinger666


als Antwort auf: [#575066]

Ein Bild mehrfach verankern und skalieren

faxinger666
Beiträge gesamt: 113

29. Apr 2020, 21:16
Beitrag # 8 von 14
Beitrag ID: #575086
Bewertung:
(3379 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

danke für deine Antwort. Deine Herangehensweise finde ich gut.

Was ich dabei nicht verstehe: Was meinst du mit temporären Rahmen?

Ich habe mein Bild-Objekt auf eine eigens erzeugte Hilfsebene platziert, die nach Durchführung des Skriptes gelöscht wird.

Zum Rahmen duplizieren: Die Frage ist wie oft muss ich duplizieren? Das will ich keinesfalls manuell machen müssen.

LG
faxinger666


als Antwort auf: [#575083]

Ein Bild mehrfach verankern und skalieren

WernerPerplies
Beiträge gesamt: 2521

29. Apr 2020, 21:57
Beitrag # 9 von 14
Beitrag ID: #575087
Bewertung:
(3370 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Faxinger,

Zitat Was ich dabei nicht verstehe: Was meinst du mit temporären Rahmen?

Das ist der Rahmen, den Du als Quelle für das Duplikat verwendest.
Zitat Ich habe mein Bild-Objekt auf eine eigens erzeugte Hilfsebene platziert, die nach Durchführung des Skriptes gelöscht wird.

genau, das wäre mein temporärer Rahmen.

Zitat Die Frage ist wie oft muss ich duplizieren?

Na ja, so viel wie brauchst.

Zitat Das will ich keinesfalls manuell machen müssen.


Wir sind doch hier im Skriptforum, oder?

Also, Du machst das in etwa so:

Code
var number =  ???; 
var rahmenDuplikat = null;

for (var i = 0; i < number; i++){
rahmenDuplikat = DeinBildObjekt.duplicate(IrgendEinSeitenObjekt);
// Das Ziel must Du in der Schleife anpassen.
rahmenDuplikat.anchoredObjectSettings.insertAnchoredObject(Ziel, z. B. AnchorPosition.INLINE_POSITION);

}


Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575086]

Ein Bild mehrfach verankern und skalieren

Uwe Laubender
Beiträge gesamt: 4777

30. Apr 2020, 23:44
Beitrag # 10 von 14
Beitrag ID: #575118
Bewertung:
(3266 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo faxinger666,
was die Auffindbarkeit von Textrahmen angeht, die mit einem bestimmten Objektformat ausgestattet sind:

Ermittele alle Stories des Dokuments.
Jede Story hat einen textContainers-Array, in dem Textrahmen oder TextPfade gespeichert sind.

Du prüfst, ob ein textContainer ein Textrahmen ist und mit dem gewünschten Objektformat ausgestattet ist.
Dort verankerst Du ein Duplikat des Grafikrahmens mit der Abbildung.

Code
// First select the text frame with the object style. 
// Then add a graphic frame with the image to the selection.

var doc = app.documents[0];

var masterTextFrame = app.selection[0];
var objectStyle = masterTextFrame.appliedObjectStyle;

var masterGraphicFrame = app.selection[1];

var allStories = doc.stories.everyItem().getElements();

for( var n=0; n<allStories.length; n++ )
{
var textContainersArray = allStories[n].textContainers ;

for( var t=0; t<textContainersArray.length; t++ )
{
if( textContainersArray[t].constructor.name == "TextPath" ){ continue };

if( textContainersArray[t].appliedObjectStyle == objectStyle )
{
var dup = masterGraphicFrame.duplicate();

// My assumption:
// The graphic frame should be anchored in the first insertion point of the found text frame
// With INLINE_POSITION

dup.anchoredObjectSettings.insertAnchoredObject
(
textContainersArray[t].insertionPoints[0] ,
AnchorPosition.INLINE_POSITION
);

// ALSO:
// Change size or anchor position as well
};
}
};

*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#575086]
(Dieser Beitrag wurde von Uwe Laubender am 30. Apr 2020, 23:45 geändert)

Ein Bild mehrfach verankern und skalieren

faxinger666
Beiträge gesamt: 113

3. Mai 2020, 20:36
Beitrag # 11 von 14
Beitrag ID: #575144
Bewertung:
(3094 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner, hallo Uwe,

recht herzlichen Dank für eure aufschlussreichen Antworten.

Ich bin mit dem Skript soweti auch durch und es macht was es soll bis auf eine Ausnahme: Ich schaffe es nicht den Bezugspunkt für das verankerte Objekt (AnchorPoint) zu ändern. Egal was ich eingebe er ändert sich nicht.

Habt ihr dazu eine Idee?

Hier mal das Skript:

Code
var _dok = app.activeDocument; 
var kreuz = _dok.pages.item(0).place(File("~/Desktop/kreuz.ai"), [0, 0])[0];

for (var a = 0; a < _dok.textFrames.length; a++) {
var txt = _dok.textFrames[a];
var _breite = txt.geometricBounds[3] - txt.geometricBounds[1];
var _hoehe = txt.characters[0].pointSize;
if ((txt.appliedObjectStyle.name == 'Streichung') ||
(txt.appliedObjectStyle.name == 'Streichung_gross')){
var dupliziertesBild = kreuz.parent.duplicate();
dupliziertesBild.anchoredObjectSettings.insertAnchoredObject
(txt.insertionPoints[0],

AnchorPosition.ANCHORED,
AnchorPoint.TOP_LEFT_ANCHOR,
AnchoredRelativeTo.TEXT_FRAME,
HorizontalAlignment.LEFT_ALIGN,
VerticallyRelativeTo.LINE_ASCENT
)
dupliziertesBild.anchoredObjectSettings.anchorXoffset = 0;
dupliziertesBild.anchoredObjectSettings.anchorYoffset = 0;
dupliziertesBild.absoluteHorizontalScale = _breite*2,5;
dupliziertesBild.absoluteVerticalScale = _hoehe*2,5;

}
};


Danke
LG faxinger666


als Antwort auf: [#575118]
(Dieser Beitrag wurde von faxinger666 am 3. Mai 2020, 20:54 geändert)

Ein Bild mehrfach verankern und skalieren

WernerPerplies
Beiträge gesamt: 2521

4. Mai 2020, 05:27
Beitrag # 12 von 14
Beitrag ID: #575146
Bewertung:
(3022 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Faxinger,

ohne jetzt Deinen Programmcode analysiert zu haben, empfehle ich Dir es Dir manuell einen Musterrahmen zu erstellen, der alle von Dir gewünschten Eigenschaften hat.

Diesen verwendest Du dann als Orginal für das Duplikat.

Aus dem Orginal liest Du dann alle Ankereigenschaften aus und weist sie anschließend nach der Verankerung dem verankerten Rahmen zu.

Übrigens, dass was Du da programmierst und noch viel mehr macht mein Skript WpsCreateAnchoredFrames

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575144]

Ein Bild mehrfach verankern und skalieren

faxinger666
Beiträge gesamt: 113

4. Mai 2020, 07:57
Beitrag # 13 von 14
Beitrag ID: #575147
Bewertung:
(2985 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke Werner für deine Antwort. Na du bist ja ein richtiger Frühaufsteher :-)

Deinen Tipp mit dem Mustertextrahmen verstehe ich schon, aber es muss doch auch möglich sein nachträglich per Skript den Ankerpunkt zu ändern oder etwa nicht?

Danke auch für deinen Hinweis auf dein Skript. Mir ging es ja darum, das selber zu programmieren und auch genau auf meine Bedürfnisse anzupassen. Mehr muss es ja auch gar nicht können. Niemals würde ich mich mit dir da messen wollen :-)
Meine Kenntnisse sind im Vorschul-Bereich, deine Kenntnisse Hochschule. :-)

Danke nochmals für alles. LG
faxinger666


als Antwort auf: [#575146]

Ein Bild mehrfach verankern und skalieren

WernerPerplies
Beiträge gesamt: 2521

4. Mai 2020, 08:35
Beitrag # 14 von 14
Beitrag ID: #575148
Bewertung:
(2955 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Faxinger,

Zitat Danke Werner für deine Antwort. Na du bist ja ein richtiger Frühaufsteher :-)

Na ja, Du weißt doch, ein Selbstständiger arbeitet (fast) ständig! :-)
Zitat Deinen Tipp mit dem Mustertextrahmen verstehe ich schon, aber es muss doch auch möglich sein nachträglich per Skript den Ankerpunkt zu ändern oder etwa nicht?

Bestimmt, aber ich gehe einen anderen Weg, weil ich wirklich alle Anpassungen ermöglichen wollte und mein Anwender die Position überprüfen kann, bevor 10.000 Anker produziert wurden. :-)

Aber soweit ich mich erinnere, war es wichtig, dass die Position nach der Verankerung bestimmt werden muss.

Ich denke mal, dass beim Verankern immer die voreingestellten Werte gelten.

Aber es ist ziemlich lange her, dass ich diesen Teil des Skriptes programmiert habe.

Auf jeden Fall habe ich gerade mal in der JavaScript-Konsole Dein Anliegen ausprobiert und Folgendes funktioniert bei mir:
Code
alter Wert: 
app.selection[0].anchoredObjectSettings.anchorPoint -> BOTTOM_RIGHT_ANCHOR
neuer Wert:
app.selection[0].anchoredObjectSettings.anchorPoint = AnchorPoint.TOP_LEFT_ANCHOR;

Der Rahmen wird sichtbar verschoben.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#575147]
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
04.09.2020 - 05.03.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 04. Sept. 2020, 13.00 Uhr - Freitag, 05. März 2021, 12.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. Mit dem Abschluss «Publisher Professional – Profil «Multimedia» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

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

Nein

Organisator: Digicomp Academy AG

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

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-professional-profil-multimedia

Veranstaltungen
02.10.2020 - 11.12.2020

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 02. Okt. 2020, 13.00 Uhr - Freitag, 11. Dez. 2020, 15.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. Mit dem Abschluss «Publisher Basic» verliehen durch die Digicomp Academy AG, bestätigen Sie Ihre Praxiserfahrungen und Qualifizierung in den genannten Themengebieten gegenüber Ihrem Arbeitgeber sowie Ihren Kunden.

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.

Nein

Organisator: Digicomp Academy AG

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

https://www.digicomp.ch/weiterbildung/software-anwendungs-trainings/adobe-trainings/publishing-lehrgaenge/lehrgang-publisher-basic

Neuste Foreneinträge


In die/eine Auswahl einfügen!

Dropdown Farbmenu

RTF Export Fußnoten (CC2020[15.1.1],WIN10)

InDesign-Settings (Adobe Cloud) von einem anderen Mac übernehmen

Werkzeugleisten verschwunden

Konvertierung von Framemaker 2019 nach Word

Indesign Fußnoten/Endnoten bei Buchfunktion

JavaScript mit IF Else um Email Adresse auszwählen

Pfad aus Zwischenablage für neues Bild ( rahmen )

Aufzählung mit hängendem Einzug in QX20?
medienjobs