[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:
(2373 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: 4684

28. Nov 2007, 12:10
Beitrag # 2 von 10
Beitrag ID: #324731
Bewertung:
(2353 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.


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

28. Nov 2007, 13:00
Beitrag # 3 von 10
Beitrag ID: #324744
Bewertung:
(2329 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?


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

28. Nov 2007, 14:14
Beitrag # 5 von 10
Beitrag ID: #324773
Bewertung:
(2298 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.


als Antwort auf: [#324757]

Verschieben eines Rahmes in einen anderen Rahmen

Martin Fischer
  
Beiträge gesamt: 12783

28. Nov 2007, 14:30
Beitrag # 6 von 10
Beitrag ID: #324779
Bewertung:
(2292 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();



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

28. Nov 2007, 14:48
Beitrag # 8 von 10
Beitrag ID: #324784
Bewertung:
(2283 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];



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

28. Nov 2007, 17:06
Beitrag # 10 von 10
Beitrag ID: #324821
Bewertung:
(2240 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/webx?14@@.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.


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
18.06.2024

Online
Dienstag, 18. Juni 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

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

So optimieren Sie Ihren LFP-Workflow
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: 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? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

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

So optimieren Sie Ihren LFP-Workflow