[GastForen Programme Print/Bildbearbeitung Adobe InDesign automatischer Textfluss

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

automatischer Textfluss

database
Beiträge gesamt:

24. Feb 2006, 11:00
Beitrag # 1 von 4
Bewertung:
(23290 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

es gibt in ID ja die Möglichkeit des automatischen Textflusses. Ich habe eine Seite mit fünf Spalten und benötige hier diesen automatischen Textfluss d.h. ich bekomme das rote Kreuz für den Übersatz angezeigt und setzte mit gedrückter Umschalttase in der nächsten Spalte meinen Rahmen und bekomme dann dementprechend viele Rahmen und Seiten wie ich Text habe.

Soweit passt das ja auch alles. Aber hier die Schwierigkeit. Ich habe XMLs die ich einfließen lassen möchte und ich suche nach einer Möglichkeit diese einfließen zu lassen und automatisch werden diese oben beschriebenen Rahmen und Seiten erzeugt. Ohne das ich es noch einmal anfassen muss.
Benötige ich hierfür ein Script oder geht es auch so?

Vielen Dank schon einmal

P.S. ID CS2 und WINXP
X

automatischer Textfluss

Martin Fischer
  
Beiträge gesamt: 12783

24. Feb 2006, 13:42
Beitrag # 2 von 4
Beitrag ID: #213800
Bewertung:
(23157 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es gibt ein Plugin namens InFlow.

Und es gibt eine Skriptfunktion von Dave Saunders: http://jsid.blogspot.com/...nction-snippets.html

Daraus ließe sich etwa folgendes Skript basteln, das - nach Start des Skripts - dann (eine) neue Seite(n) einfügt, wenn in dem Textfluß, in dem der Cursor steht, Übersatz ist.



Code
//AppendPagesIfStoryOverflows.jsx 
//
// thanks to Dave Saunders for the functions isText() and DumbRunPages()
// http://jsid.blogspot.com/2005/10/standard-methods-and-functions.html

Object.prototype.isText = function()
{
switch(this.constructor.name)
{
case "InsertionPoint":
case "Character":
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "TextFrame":
return true;
default :
return false;
}
}

if ((app.documents.length> 0) && (app.selection.length > 0) && (app.selection[0].isText())) {
var aStory = app.selection[0].parentStory;
var aDoc = app.documents[0];

DumbRunPages(aDoc, aStory)
}
else {
alert("Fehler\rBitte Text auswählen.")
}

function DumbRunPages(theDoc, theStory) {
// What makes this "dumb" is that default master pages are used.
var uRuler = theDoc.viewPreferences.rulerOrigin;
theDoc.viewPreferences.rulerOrigin = RulerOrigin.spreadOrigin;
while (theStory.textFrames[-1].overflows) {
/*
// Original: Seite nach der letzten Dokumentseite einfügen
theDoc.documentPreferences.pagesPerDocument = theDoc.documentPreferences.pagesPerDocument + 1;
var backPage = theDoc.pages[-1];
*/

//alternativ: Seite nach der letzten Textrahmenseite einfügen
var backPage = aDoc.pages.add(LocationOptions.after, aStory.textFrames[-1].parent)

app.activeWindow.activePage = backPage;
backPage.appliedMaster = theDoc.pages[-2].appliedMaster;
var myPbounds = backPage.bounds;
var myNewTF = backPage.textFrames.add();
if ((backPage.name % 2 == 1) || (!theDoc.documentPreferences.facingPages)) {
myNewTF.geometricBounds =
[myPbounds[0] + backPage.marginPreferences.top,
myPbounds[1] + backPage.marginPreferences.left,
myPbounds[2] - backPage.marginPreferences.bottom,
myPbounds[3] - backPage.marginPreferences.right];
} else {
myNewTF.geometricBounds =
[myPbounds[0] + backPage.marginPreferences.top,
myPbounds[1] + backPage.marginPreferences.right,
myPbounds[2] - backPage.marginPreferences.bottom,
myPbounds[3] - backPage.marginPreferences.left];
}
myNewTF.itemLayer = theStory.textFrames[-1].itemLayer;
myNewTF.previousTextFrame = theStory.textFrames[-1];
myNewTF.textFramePreferences.textColumnCount = backPage.marginPreferences.columnCount;
myNewTF.textFramePreferences.textColumnGutter = backPage.marginPreferences.columnGutter;
if (myNewTF.characters.length == 0){
theDoc.viewPreferences.rulerOrigin = uRuler;
alert("Permanently overset"); // This indicates a permanent overset condition so break out of loop
}
}
theDoc.viewPreferences.rulerOrigin = uRuler;
}



als Antwort auf: [#213731]
(Dieser Beitrag wurde von Martin Fischer am 3. Aug 2009, 08:52 geändert)

automatischer Textfluss

database
Beiträge gesamt:

24. Feb 2006, 16:13
Beitrag # 3 von 4
Beitrag ID: #213839
Bewertung:
(23145 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke erstmal,

ich probiers mal aus.

Viele Grüße


als Antwort auf: [#213800]

automatischer Textfluss

Martin Fischer
  
Beiträge gesamt: 12783

22. Jan 2008, 05:38
Beitrag # 4 von 4
Beitrag ID: #332434
Bewertung:
(22160 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier die CS3-Version des obigen Skripts 'AppendPagesIfStoryOverflows.jsx':

Code
//AppendPagesIfStoryOverflows_CS3.jsx  
//
// thanks to Dave Saunders for the functions isText() and DumbRunPages()
// http://jsid.blogspot.com/2005/10/standard-methods-and-functions.html

Object.prototype.isText = function()
{
switch(this.constructor.name)
{
case "InsertionPoint":
case "Character":
case "Word":
case "TextStyleRange":
case "Line":
case "Paragraph":
case "TextColumn":
case "Text":
case "TextFrame":
return true;
default :
return false;
}
}

if ((app.documents.length> 0) && (app.selection.length > 0) && (app.selection[0].isText())) {
var aStory = app.selection[0].parentStory;
var aDoc = app.documents[0];

DumbRunPages(aDoc, aStory)
}
else {
alert("Fehler\rBitte Text auswählen.")
}

function DumbRunPages(theDoc, theStory) {
// What makes this "dumb" is that default master pages are used.
var uRuler = theDoc.viewPreferences.rulerOrigin;
theDoc.viewPreferences.rulerOrigin = RulerOrigin.spreadOrigin;
while (theStory.textContainers[theStory.textContainers.length-1].overflows) {
//Seite nach der letzten Textrahmenseite einfügen
var backPage = aDoc.pages.add(LocationOptions.after, aStory.textContainers[theStory.textContainers.length-1].parent)

app.activeWindow.activePage = backPage;
backPage.appliedMaster = theDoc.pages[-2].appliedMaster;
var myPbounds = backPage.bounds;
var myNewTF = backPage.textFrames.add();
if ( (!theDoc.documentPreferences.facingPages) || (backPage.side == PageSideOptions.rightHand) ) {
myNewTF.geometricBounds =
[myPbounds[0] + backPage.marginPreferences.top,
myPbounds[1] + backPage.marginPreferences.left,
myPbounds[2] - backPage.marginPreferences.bottom,
myPbounds[3] - backPage.marginPreferences.right];
} else {
myNewTF.geometricBounds =
[myPbounds[0] + backPage.marginPreferences.top,
myPbounds[1] + backPage.marginPreferences.right,
myPbounds[2] - backPage.marginPreferences.bottom,
myPbounds[3] - backPage.marginPreferences.left];
}
myNewTF.itemLayer = theStory.textContainers[theStory.textContainers.length-1].itemLayer;
myNewTF.previousTextFrame = theStory.textContainers[theStory.textContainers.length-1];
myNewTF.textFramePreferences.textColumnCount = backPage.marginPreferences.columnCount;
myNewTF.textFramePreferences.textColumnGutter = backPage.marginPreferences.columnGutter;
if (myNewTF.characters.length == 0){
theDoc.viewPreferences.rulerOrigin = uRuler;
alert("Permanently overset"); // This indicates a permanent overset condition so break out of loop
}
}
theDoc.viewPreferences.rulerOrigin = uRuler;
}



als Antwort auf: [#213800]
X