[GastForen Programme Print/Bildbearbeitung Adobe InDesign Verschieben eines Rahmes in einen anderen Rahmen

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

Verschieben eines Rahmes in einen anderen Rahmen

Harald Zwer
Beiträge gesamt: 306

28. Nov 2007, 10:52
Beitrag # 1 von 10
Bewertung:
(2259 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich möchte per VB6 Skript einen Rahmen in einen anderen Rahmen schieben (also einen Inline-Rahmen erzeugen). Das funktioniert auch über eine Selektion.

Das gefällt mir aber nicht, da ich dann das Skript nicht mehr im Hintergrund ausführen kann. Gibt es eine Möglichkeit einen Rahmen ohne Selektion in einen anderen Rahmen zu schieben?

Mfg Harald
X

Verschieben eines Rahmes in einen anderen Rahmen

Kai Rübsamen
  
Beiträge gesamt: 4664

28. Nov 2007, 12:10
Beitrag # 2 von 10
Beitrag ID: #324731
Bewertung:
(2239 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nein und jetzt lehn ich mich mal aus dem Fenster ;-) :

Ich kann mir nicht vorstellen, das es über ein Skript geht. Woher sollte man wissen, welcher Rahmen verschoben werden soll. InDesign ist ein objektorientiertes Programm. Selbst wenn es dir gelingt die Obejekt-ID´s auf der Seite auszulesen, hast du immer noch nicht definiert, welches Objekt du jetzt verschieben willst.

Gruß Kai Rübsamen


als Antwort auf: [#324706]
(Dieser Beitrag wurde von ruebi am 28. Nov 2007, 12:11 geändert)

Verschieben eines Rahmes in einen anderen Rahmen

Martin Fischer
  
Beiträge gesamt: 12623

28. Nov 2007, 13:00
Beitrag # 3 von 10
Beitrag ID: #324744
Bewertung:
(2215 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Gibt es eine Möglichkeit einen Rahmen ohne Selektion in einen anderen Rahmen zu schieben?


Rübi hat teilweise Recht.
Es ist durchaus möglich, per Skript einen Rahmen in einen anderen Rahmen zu verankern.
Aber es ist natürlich notwendig, beide Rahmen zu adressieren.
Über den move()-Befehl kann der eine Rahmen in einen Einfügepunkt des anderen Rahmens verschoben werden.

Gibt es äußere oder innere Merkmale (AF oder ZF des ersten Absatzes), über welche die Rahmen zu identifizieren sind?

Viele Grüße
Martin




als Antwort auf: [#324706]

Verschieben eines Rahmes in einen anderen Rahmen

Harald Zwer
Beiträge gesamt: 306

28. Nov 2007, 13:20
Beitrag # 4 von 10
Beitrag ID: #324757
Bewertung:
(2204 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich kenne beide Rahmenobjekte. Und ich habe es schon mit move() probiert. Allerdings ohne Erfolg!

Wie kann ich dem move()-Befehl sagen, dass ich den Rahmen in einen anderen Rahmen plazieren will?

Mfg Harald


als Antwort auf: [#324744]

Verschieben eines Rahmes in einen anderen Rahmen

Martin Fischer
  
Beiträge gesamt: 12623

28. Nov 2007, 14:14
Beitrag # 5 von 10
Beitrag ID: #324773
Bewertung:
(2184 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du kennst das zu verschiebende Objekt?
Du kennst das Ziel?
Einen Einfügepunkt in einem der Rahmen?
Dann dahin verschieben.

Geht nicht.
Der move()-Befehl eines Textrahmens kennt als Ziel nur Druckbogen, Seit oder Ebene (Can accept: Array of 2 Units, Spread, Page or Layer).

Dann vielleicht so:
Am Ziel neuen Textrahmen erzeugen und dem die Eigenschaften des zu verschiebenden Textrahmens zuweisen. Den zu verschiebenden TR nicht verschieben, sondern löschen.

Code
myPage = app.activeDocument.pages[0]; 
TF1 = myPage.textFrames[0];
TF2 = myPage.textFrames[1];

TF3 = TF1.insertionPoints[0].textFrames.add();
TF3.properties = TF2.properties;
TF2.remove();


Allerdings werden auf diese Weise nicht alle Eigenschaften des alten Textrahmens übergeben.
Die Zeichenformatierungen wie auch Kontureigenschaften und Füllung gehen verloren.
Diese Eigenschaften könntest Du vielleicht einzeln wieder zuweisen (bevor der alte TR gelöscht wird).
Und den formatierten Text vielleicht in den neuen Textrahmen reinverschieben.
Etwa so:
Code
myPage = app.activeDocument.pages[0]; 
TF1 = myPage.textFrames[0];
TF2 = myPage.textFrames[1];

TF3 = TF1.insertionPoints[0].textFrames.add();
TF3.properties = TF2.properties;
TF3.parentStory.contents = "";
TF2.texts[0].move(LocationOptions.after, TF3.insertionPoints[0]);
TF3.fillColor = TF2.fillColor;
TF3.strokeColor = TF2.strokeColor;
TF3.strokeWeight = TF2.strokeWeight;
TF2.remove();


Doch Vorsicht!
Es ist möglich, daß sich InDesign bei dieser Prozedur verabschiedet.
Ich nehme an, daß der Inhalt des TF3 erst mal recomposed werden sollte, bevor Text reinverschoben wird, um InDesign stabil zu halten.

Viele Grüße
Martin




als Antwort auf: [#324757]

Verschieben eines Rahmes in einen anderen Rahmen

Martin Fischer
  
Beiträge gesamt: 12623

28. Nov 2007, 14:30
Beitrag # 6 von 10
Beitrag ID: #324779
Bewertung:
(2178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Harald,

mit der cut-paste Methode geht es fast noch einfacher:
Code
myPage = app.activeDocument.pages[0]; 
TF1 = myPage.textFrames[0];
TF2 = myPage.textFrames[1];

TF2.select();
app.cut();
TF1.insertionPoints[0].select();
app.paste();


Viele Grüße
Martin




als Antwort auf: [#324773]

Verschieben eines Rahmes in einen anderen Rahmen

Harald Zwer
Beiträge gesamt: 306

28. Nov 2007, 14:32
Beitrag # 7 von 10
Beitrag ID: #324780
Bewertung:
(2178 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

diese Zeile ist jetzt mein Problem:
TF3 = TF1.insertionPoints[0].textFrames.add();

Hier wird der Textrahmen erzeugt, allerdings ist der Rahmen viel zu hoch. Und die Texthöhe passt sich dann der Höhe des Rahmens an. Wie kann ich die Höhe des Rahmens vorgeben?

Mfg Harald


als Antwort auf: [#324773]

Verschieben eines Rahmes in einen anderen Rahmen

Martin Fischer
  
Beiträge gesamt: 12623

28. Nov 2007, 14:48
Beitrag # 8 von 10
Beitrag ID: #324784
Bewertung:
(2169 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
> Wie kann ich die Höhe des Rahmens vorgeben?

Über die geometricBounds.
Z.B.: TF3 = TF1.insertionPoints[0].textFrames.add({geometricBounds:TF2.geometricBounds});

Geht das?
Wenn nicht, dann geht das so:
Code
meineHöhe = meineBreite = 10; 
TF3 = TF1.insertionPoints[0].textFrames.add();
TF3.geometricBounds = [TF3.geometricBounds[0], TF3.geometricBounds[1], TF3.geometricBounds[0] + meineHöhe, TF3.geometricBounds[1] + meineBreite];


Viele Grüße
Martin




als Antwort auf: [#324780]

Verschieben eines Rahmes in einen anderen Rahmen

Harald Zwer
Beiträge gesamt: 306

28. Nov 2007, 15:58
Beitrag # 9 von 10
Beitrag ID: #324809
Bewertung:
(2147 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

das geht leider nicht:
TF3 = TF1.insertionPoints[0].textFrames.add({geometricBounds:TF2.geometricBounds});

Die zweite Variante geht in InDesign CS2. Bei der alten Version CS kann man den Rahmen zwar auch verkleinern, aber die Buchstaben drum herum, blieben in der alten Höhe des Rahmens. Aber das ist kein Problem! Hauptsache es geht in CS2.

Nochmals vielen Dank!

Mfg Harald


als Antwort auf: [#324784]

Verschieben eines Rahmes in einen anderen Rahmen

Martin Fischer
  
Beiträge gesamt: 12623

28. Nov 2007, 17:06
Beitrag # 10 von 10
Beitrag ID: #324821
Bewertung:
(2126 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Harald,

hast Du die Lösung von Dave und Peters Ergänzung in http://www.adobeforums.com/[email protected]@.3c056c92/0 zur Platzierung eines Objekts in einer Tabellenzelle gesehen?
Also den Workaround über ein Bibliotheksobjekt?

Code
myObj = app.selection[0];  
myTable = app.documents[0].stories[0].tables[0];
moveObjIntoTable(myObj, myTable, "2:3");

function moveObjIntoTable(obj, table, cellname) {
var myCell = table.cells.item(cellname);
if (myCell == null) {
alert("Requested cell doesn't exist");
return;
}
var myLib = app.libraries.add(File("~/Desktop/tempLib.indl"));
var myAsset = myLib.store(myObj);
myAsset.placeAsset(myCell.insertionPoints[0]);
myLib.close();
File("~/Desktop/tempLib.indl").remove();
}


Das sollte so auch mit Deinen Textrahmen gehen.

Viele Grüße
Martin




als Antwort auf: [#324809]
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
29.09.2022

IDUGS#85 Press2id

Zoom Meeting
Donnerstag, 29. Sept. 2022, 19.00 - 21.00 Uhr

Vortrag

Kennst du WordPress? Vielleicht. Verwendest du WordPress? Ja, klar! WordPress ist das am weitesten verbreitete System für die Erstellung von Webseiten. Um Webseitenbau soll es auf dieser IDUG aber nicht gehen. Gregor zeigt press2id (github.com/grefel/press2id). Seine Open-Source-Lösung für die Verbindung von Web und InDesign. Richtig gelesen: InDesign liest mithilfe von press2id die Inhalte der WordPress-Webseiten und generiert daraus Zeitschriften, Kataloge, Programmhefte oder Bierdeckel (das zeigen wir natürlich auch!). So wird die „Content First“ Theorie zu einer konkret anwendbaren Praxis, ohne gleich die ganz großen Räder zu drehen. Versprochen: Jeder kann nach der IDUG innerhalb kürzester Zeit Daten von WordPress nach InDesign importieren. Aber Achtung: Prinzipiell kann press2id aus jeder Website, oder besser Contentmanagementsystem (CMS) Daten auslesen und nach InDesign importieren! Spannend, oder? Danach geht es in die Praxis: Stefan hat die Webseite des Parktheater Iserlohn (parktheater-iserlohn.de) gestaltet. Die gedruckten Spielpläne (parktheater-iserlohn.de/interaktive-spielplaene) werden mit press2id realisiert. Wir schauen in den Maschinenraum und zeigen, wie die Lösung des Projekts realisiert wurde.

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs85.eventbrite.de/

Von Wordpress nach InDesign
Veranstaltungen
08.11.2022

Frankfurt, Fraport Conference Center
Dienstag, 08. Nov. 2022, 13.30 - 18.00 Uhr

Seminar

Auf der Enfocus World Tour stellen wir Ihnen gemeinsam mit Enfocus die aktuellen Highlights von Enfocus Switch und dem Impressed Workflow Server (IWS) vor. Wir präsentieren Ihnen anhand typischer Aufgabenstellungen in einem modernen Produktionsbetrieb die Möglichkeiten, die Enfocus Switch für die Automatisierung und Standardisierung von Abläufen bietet. Wir haben sowohl für Produktionsverantwortliche als auch technisch Interessierte ein spannendes Programm vorbereitet, bei dem Sie sicherlich viel Neues erfahren werden, welches Sie in Ihrem eigenen Betrieb umsetzen können. Die Veranstaltung bietet darüber hinaus eine hervorragende Möglichkeit, sich mit anderen Anwendern und Workflow-Spezialisten auszutauschen und Antworten auf konkrete Aufgabenstellungen zu erhalten, welche Sie mit Hilfe von Enfocus Switch/IWS umsetzen möchten.

Wir sind jeweils an 2 Tagen in Frankfurt, Hamburg und München vor Ort. Der erste (halbe) Tag richtet sich in erster Linie an Betriebsleiter und Produktionsverantwortliche in Druckereien - ist also weniger technisch orientiert - sondern gibt einen Überblick zu den heutigen Möglichkeiten einer automatisierten Produktion.

Der zweite Tag (Switch Anwender-Treffen) richtet sich an bestehende Switch-Anwender und Administratoren.

Anmeldung und weitere Infos: https://www.impressed.de/schulung.php?c=sDetail&sid=310

Ja

Organisator: Enfocus/Impressed

Kontaktinformation: Silvia Noack, E-Mailsnoack AT impressed DOT de

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

Enfocus World Tour 2022