[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Kastentext per Script in den Lauftext verschieben

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

Kastentext per Script in den Lauftext verschieben

WernerPerplies
Beiträge gesamt: 2763

27. Jul 2012, 15:59
Beitrag # 16 von 25
Beitrag ID: #498660
Bewertung:
(5348 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

Zitat Aber Genaueres weiss ich nicht mehr.



constructor.name -> Stringvergleich -> langsam
instanceof ist intern wohl ein numerischer Vergleich -> schneller

typeof(Variable) gibt m. E. nach nur undefined, boolean, function, number, object oder string zurück.


als Antwort auf: [#498654]
X

Kastentext per Script in den Lauftext verschieben

allora
Beiträge gesamt: 47

27. Jul 2012, 18:38
Beitrag # 17 von 25
Beitrag ID: #498664
Bewertung:
(5315 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen, vielen Dank Hans,
es ist wunderbar, deinen Skripts beim Arbeiten zuzuschauen ;-)

Schönen Gruß
Anita


als Antwort auf: [#498645]

Kastentext per Script in den Lauftext verschieben

Hans Haesler
  
Beiträge gesamt: 5826

27. Jul 2012, 19:02
Beitrag # 18 von 25
Beitrag ID: #498665
Bewertung:
(5302 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Anita,

bitteschön.

Zitat es ist wunderbar, deinen Skripts beim Arbeiten zuzuschauen ;-)

Vor allem, wenn man vorher die Aktionen händisch erledigen musste ...

Und? Ist das Ergebnis brauchbar?

Gruss, Hans


als Antwort auf: [#498664]
(Dieser Beitrag wurde von Hans Haesler am 27. Jul 2012, 21:57 geändert)

Kastentext per Script in den Lauftext verschieben

Uwe Laubender
Beiträge gesamt: 5319

27. Jul 2012, 19:14
Beitrag # 19 von 25
Beitrag ID: #498666
Bewertung:
(5291 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo, Werner!

Danke sehr für die Erklärung!

Da bleibt wahrscheinlich als Wahl der Mittel bevorzugt "instanceof".
Aber bei Gelegenheit kann ich ja mal nach dem Thread im Adobe Scripting Forum suchen. Da gab's noch ein Argument…


als Antwort auf: [#498660]

Kastentext per Script in den Lauftext verschieben

allora
Beiträge gesamt: 47

27. Jul 2012, 22:09
Beitrag # 20 von 25
Beitrag ID: #498667
Bewertung:
(5233 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Und? Ist das Ergebnis brauchbar?


definitiv :-)

LG


als Antwort auf: [#498665]

Kastentext per Script in den Lauftext verschieben

TineF
Beiträge gesamt: 4

4. Sep 2012, 18:13
Beitrag # 21 von 25
Beitrag ID: #500385
Bewertung:
(4964 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Hallo Anita,

ich sprach von einem Ansatz, nicht von einer fertigen, allgemeinen Lösung.

Ich kann momentan den Aufwand nicht leisten, die konkreten Bedingungen zu erfragen/ermitteln und eine speziell angepasste Version zu liefern.

Das o.g. Skript bearbeitet nur verankerte Textrahmen mit dem zugewiesenen Objektstil 'Marginalie'. Möglicherweise benötigst Du diese Einschränkung nicht.

Code
if (app.selection.length >= 0 && (app.selection[0].hasOwnProperty ('baseline') || app.selection[0].constructor.name == 'TextFrame') )   
{
var tf = app.selection[0].parentStory.textFrames;
for (var i = tf.length-1; i >= 0; i--)
{
// if (tf[i].appliedObjectStyle.name == 'Marginalie') // prüfe zugewiesenen Objektstil
// {

if (tf[i].texts.firstItem().characters.lastItem().contents != '\r') // wenn das letzte Zeichen im verankerten Textrahmen keine Absatzschaltung ist, dann füge am Ende eine ein
tf[i].texts.firstItem().insertionPoints.lastItem().contents = '\r';
tf[i].texts.firstItem().move(LocationOptions.AT_BEGINNING, tf[i].parent.paragraphs.firstItem()); // verschiebe den Inhalt des verankerten Textrahmens (mit der Absatzmarke am Ende) an den Anfang des Absatzes, in dem er steht
tf[i].remove(); // lösche den verankerten Textrahmen.
}
//}
}



Hallo, alles was ich intuitiv mal probiert habe, klappt irgendwie nicht. Ich würde das Script gerne folgendermaßen anpassen:
1. Es soll auf ein bestimmtes Zeichenformat prüfen.
2. Der Text soll direkt am Ankerpunkt eingefügt werden ohne Absatz und sonstige Zusätze.

Für Hilfe wäre ich sehr dankbar.


als Antwort auf: [#498208]

Kastentext per Script in den Lauftext verschieben

Hans Haesler
  
Beiträge gesamt: 5826

4. Sep 2012, 20:03
Beitrag # 22 von 25
Beitrag ID: #500387
Bewertung:
(4940 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TineF,

von einem Zeichenformat war bisher nicht die Rede.

Angebot: Sende mir bitte ein Testdokument mit Angaben, was Du erwartest.
Eilt: Donnerstag werde ich für eine Woche verreisen.

Gruss, Hans


als Antwort auf: [#500385]

Kastentext per Script in den Lauftext verschieben

Hans Haesler
  
Beiträge gesamt: 5826

5. Sep 2012, 08:35
Beitrag # 23 von 25
Beitrag ID: #500395
Bewertung:
(4878 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tine,

ich bedanke mich für das Testdokument.

Das zweite Script aus dem Beitrag #12 habe ich angepasst ("TextFrame" statt "Group") und ein paar nichtgewünschte Zeilen entfernt.

Ich habe Dir einen Dropbox-Link gemailt, wo Du das Script herunterladen kannst. Hier funktioniert es gut: 114 Seiten in ungefähr vier Sekunden.

Für Interessierte:

Code
//PaginaVerschieben_601d.js  
//© 05.09.12 / Hans Haesler, Châtelard 52, CH-1018 Lausanne
//DESCRIPTION:Den Inhalt des verankerten Rahmens in den Lauftext verschieben

// vorbeugenderweise das Anzeigen von Dialogen aktivieren
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// prüfen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Es ist kein Dokument offen.", "Achtung");
exit();
}

// alle Rahmen des Dokuments
var allFrames = app.documents[0].allPageItems;
for (var f=(allFrames.length)-1; f>-1; f--) {
// prüfen, ob verankert ...
if (allFrames[f].parent == "[object Character]") {
var curFrame = allFrames[f];
// ... und ob Textrahmen
if (curFrame.constructor.name == "TextFrame") {
// die Position des Ankers speichern
var fPos = curFrame.parent.insertionPoints[0];
// den Text verschieben
curFrame.parentStory.move(LocationOptions.AT_BEGINNING, fPos);
// den Rahmen entfernen
curFrame.remove();
}
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(1500);
// das Fenster schliessen
dlog.close();

Beim Verschieben des Textes geht natürlich das zugewiesene Absatzformat verloren. 
Sollte das ein Problem sein, könnte dem Text vorher ein Zeichenformat zugewiesen werden.
Eine andere Möglichkeit: Dahinter ein Halbgeviert einfügen, damit die Zahlen eindeutig gefunden werden können.

Gruss, Hans


als Antwort auf: [#500387]
(Dieser Beitrag wurde von Hans Haesler am 5. Sep 2012, 08:50 geändert)

Kastentext per Script in den Lauftext verschieben

Hans Haesler
  
Beiträge gesamt: 5826

5. Sep 2012, 10:24
Beitrag # 24 von 25
Beitrag ID: #500400
Bewertung:
(4858 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Tine,

Du hast meine Vermutung bestätigt, dass die verschobenen Seitenzahlen markiert werden müssen.

Mit der folgenden zweiten Version wird zudem geprüft, ob das Absatzformat "pagina" zugewiesen ist (um andere verankerte Rahmen zu verschonen). Falls ja, wird das Zeichenformat "pagina" zugewiesen.

Code
//PaginaVerschieben_602d.js  
//© 05.09.12 / Hans Haesler, Châtelard 52, CH-1018 Lausanne
//DESCRIPTION:Den Inhalt des verankerten Rahmens in den Lauftext verschieben

// vorbeugenderweise das Anzeigen von Dialogen aktivieren
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;

// prüfen, ob ein Dokument geöffnet ist
if (app.documents.length == 0) {
alert ("Es ist kein Dokument offen.", "Achtung");
exit();
}

// alle Rahmen des Dokuments
var allFrames = app.documents[0].allPageItems;
for (var f=(allFrames.length)-1; f>-1; f--) {
// prüfen, ob verankert ...
if (allFrames[f].parent == "[object Character]") {
var curFrame = allFrames[f];
// ... und ob Textrahmen
if (curFrame.constructor.name == "TextFrame") {
// das zugewiesene Absatzformat prüfen
if (curFrame.parentStory.appliedParagraphStyle.name == "pagina") {
// ein Zeichenformat zuweisen
curFrame.parentStory.appliedCharacterStyle = "pagina";
// die Position des Ankers speichern
var fPos = curFrame.parent.insertionPoints[0];
// den Text verschieben
curFrame.parentStory.move(LocationOptions.AT_BEGINNING, fPos);
// den Rahmen entfernen
curFrame.remove();
}
}
}
}

// das Ende der Aktion verkünden
var dlog = new Window("palette");
dlog.size = [320,100];
dlog.add("statictext", [80, 100, 320, 116], "Fertig.");
dlog.show();
// eine kleine Pause
$.sleep(1500);
// das Fenster schliessen
dlog.close();

Gruss, Hans


als Antwort auf: [#500395]

Kastentext per Script in den Lauftext verschieben

TineF
Beiträge gesamt: 4

5. Sep 2012, 18:18
Beitrag # 25 von 25
Beitrag ID: #500446
Bewertung:
(4817 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kann ich nur bestätigen: Es läuft einwandfrei. Habe mir im Nachhinein noch überlegt doch auf ein Zeichenformat zu prüfen und dieses wieder zuzuordnen. So brauche ich nur ein Format und mein vorher getätigtes Skript weist sowieso ein Zeichenformat zu bei Erstellung der Textrahmen. Mir ging es dabei vorrangig um die Unterscheidung zu anderen verankerten Rahmen und um den Tagexport später.

Danke für die schnelle und professionelle Hilfe. :)


als Antwort auf: [#500400]
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
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!