hilfdirselbst.ch
Facebook Twitter gamper-media

Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Textexport als Worddokument

 

« « 1 2 » »  


Karsten Lange
Beiträge: 160

18. Okt 2005, 18:44

Beitrag #1 von 19
Bewertung:

(10497 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo alle zusammen,

zugegebenermaßen die Überschrift umschreibt nur ansatzweise mein Anliegen. Bin kein InDesign Benutzer - das nur vorweg.
Das es anscheinend keinen direkten Textexport in ein Wordformat gibt hat mich offengestanden erstaunt, aber rtf wird es bei mir auch machen.
Nun zu meinem Problem: Habe ein Dokument erhalten in dem leider mehr Textrahmen nicht miteinander verkettet sind als umgekehrt. Ergo: Der Textexport ist mühsam. Habe es dann mit dem Script "ExportAllStories.jsx" versucht. Is ja auch ganz schön, nur die Vergabe der Dateinamen nervt, da man sich keinen Plan machen kann, in welcher Reihenfolge die Textrahmen exportiert werden. Ausgehend von der Hoffnung, das InDesign seitenweise vorgeht, müßte man doch bspw. die Dateinamen von 00001 bis 99999 vergeben können. Hat hier jemand das Script dahingehend schon verändert - habe keine Ahnung von Java - oder eine andere gute Idee zum Problem.

Danke + Gruß Karsten.


PS: Ein Problem beim rtf Export ist mir allerdings schon aufgefallen. In dem Dokument wurde für den fetten Schriftschnitt die Schrift "Franklin Gothic - Demi" verwendet. Leider erkennt Word das nicht. QuarkXPress aber auch nicht. Dann liegst vielleicht doch eher am InDesign Export.
Top

Martin Fischer  M  p
Beiträge: 9374

18. Okt 2005, 19:19

Beitrag #2 von 19
Beitrag ID: #191619

Bewertung:

(10484 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Mit dem Skript von http://www.hilfdirselbst.ch/...i?post=160604#160604 kannst du alle Textflüsse miteinander verketten, so daß Du zum Schluß nur noch einen Textfluß hast.

Mist, da hat die Forensoftware mal wieder die Schleifenvariable zerhackstückelt. Hier das überarbeite Skript:
Code
//join_stories.js 
if(app.documents.length != 0){
var myDoc = app.activeDocument;
for (oneStory=myDoc.stories.length-1;oneStory>0;oneStory--){
// fügt am Ende des Textflusses eine Absatzschaltung ein,
// wenn der Textfluß nicht bereits mit einer Absatzschaltung endet.
if (myDoc.stories[oneStory-1].characters.length>0){
if (myDoc.stories[oneStory-1].characters[-1].contents!="\r") myDoc.stories[oneStory-1].insertionPoints[-1].contents="\r";
}
// Verknüpfung des letzten Textrahmens des vorherigen Textflusses (oneStory-1)
// mit dem ersten Textrahmen des aktuellen Textflusses (oneStory)
myDoc.stories[oneStory-1].textFrames[-1].nextTextFrame = myDoc.stories[oneStory].textFrames[0];
}
}



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#191614] Top

pava
Beiträge: 282

18. Apr 2006, 12:26

Beitrag #3 von 19
Beitrag ID: #224105

Bewertung:

(10194 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo,

ich wollte per join_stories und exportallstories den Text meines ID-Docs sichern. Bei der Benutzung obigen Scriptes bekommme ich dauernd folgende Fehlermeldung:

JavaScript Fehler!
Fehlernummer: 45
Fehlerzeichenfolge: Object is invalid
Quelle: Return value

Kann mir jemand helfen? Oder gibt es eein vergleichbares Applescript?

Danke
Christoph

PS: Mac OS 10.3.9, ID CS2

als Antwort auf: [#191619] Top

Martin Fischer  M  p
Beiträge: 9374

18. Apr 2006, 13:44

Beitrag #4 von 19
Beitrag ID: #224143

Bewertung:

(10166 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Sind Fußnoten in Deinem Dokument?
Ist es möglich, daß ein Textfluß mit einer Fußnote endet (kein Zeichen mehr nach der Fußnotenziffer im Text)?

Sind die Textflüsse nach Bestätigung dieser Fehlermeldung vereinigt?

Diese Fehlermeldung ist mir mittlerweile einigermaßen vertraut.
Normalerweise taucht sie auf, wenn die letzte Änderung während dem Ablauf eines Skripts in einer Fußnote erfolgt. Abhilfe verschafft etwa die Auswahl eines beliebigen Zeichens außerhalb der Fußnote (etwa: "app.documents[0].stories[0].insertionPoints[0].select()") am Ende eines Skripts. Kannst Du diese Zeile (den Text zwischen den Anführungszeichen, aber ohne die Anführungszeichen selbst) mal an Ende des Skripts anhängen? - richtig wäre die Plazierung vor der letzten geschweiften Klammer; ganz am Ende wirkt es aber auch.

Es handelt sich wahrscheinlich um einen Bug.
Eine einleuchtende Erklärung für diese Fehlermeldung kann ich allerdings nicht geben.

Interessant wäre jetzt freilich, festzustellen, ob der Fehler sich auf JavaSkripte beschränkt oder ob er auch bei anderen Skriptsprachen auftaucht (was ich annehme). Unter Umständen fangen andere Skriptsprachen diesen Fehler jedoch anders ab und geben keine Fehlermeldungen.

Ferner wäre es interessant, festzustellen, ob der Fehler nur bei Verwendung von JavaSkripten auf dem MAC erscheint oder ob er auf beiden Plattformen auftaucht. Ich erinnere mich dunkel daran, daß sich JavaSkripte auf dem MAC manchmal anders benehmen als unter WIN.

Diese Versuchsreihen nachzustellen, fehlt mir grad die Zeit.
Vielleicht interessiert heute jemand anderen, was die fehlerbehaftete Welt im Innersten zusammenhält.

Abgesehen von dem reklamierten Fehler wäre hier noch ein weiterer Verbesserungsvorschlag für das Skript:
Im obigen Zustand vereinigt es alle Textflüsse, also auch z.B. Kolumnentitel, einzelne Textrahmen für die Seitenzahlen usw.
Das könnte man abstellen, indem man eine Bedingung einfügt: berücksichtige nur Textflüsse ab einer bestimmten Anzahl an Zeichen oder ab einer bestimmten Anzahl an Zeilen.
Wenn's tatsächlich jemand brauchen könnte, würde ich mich drum kümmern.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#224105] Top

pava
Beiträge: 282

19. Apr 2006, 18:11

Beitrag #5 von 19
Beitrag ID: #224504

Bewertung:

(10113 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo Martin,

Fußnoten habe ich nicht. Nach Einfügen der Zeile scheint die Fehlermeldung nicht mehr zu kommen. Ein Nachteil des Skriptes ist allerdings, dass überzähliger Platz in den Textrahmen nach Ablauf des Skriptes quasi aufgefüllt wurde, somit das Layout verändert wird :-(

Falls Du wieder Zeit hast und Dich um das Skript kümmern könntest, wärst Du meiner großen Dankbarkeit sicher - und bestimmt auch der anderer Kollegen.

LG
Christoph

als Antwort auf: [#224143] Top

Martin Fischer  M  p
Beiträge: 9374

19. Apr 2006, 19:33

Beitrag #6 von 19
Beitrag ID: #224530

Bewertung:

(10102 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


> Ein Nachteil des Skriptes ist allerdings, dass überzähliger Platz in den Textrahmen
> nach Ablauf des Skriptes quasi aufgefüllt wurde, somit das Layout verändert wird :-(

Das Ziel des Skripts war nicht, den Umbruch zu erhalten, sondern eine Lösung für den Export des gesamten Textinhalts eines InDesign-Dokuments in eine einzelne Datei (RTF, Word, TXT oder was auch immer) vorzubereiten.


Es gibt aber eventuell doch eine Möglichkeit, den Umbruch zu erhalten: jeder erste Absatz in einem Textfluß erhält vor der Vereinigung die Umbruchoption "Nächster Textrahmen". Das wäre sogar mit einem vertretbaren Aufwand skripttechnisch umzusetzen.

Vielleicht finde ich die nächsten Tage mal fünf freie Minuten dafür...

> Falls Du wieder Zeit hast und Dich um das Skript kümmern könntest, wärst
> Du meiner großen Dankbarkeit sicher - und bestimmt auch der anderer Kollegen.

Gibt's da tatsächlich Bedarf für?
Mir selber wäre mit einer derart modifizierten Datei nicht wohl.
Ich vertraue nicht einmal den Skripten, die ich selbst gefälscht habe.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#224504]

(Dieser Beitrag wurde von Martin Fischer am 19. Apr 2006, 19:39 geändert)
Top

arnolddesign I
Beiträge: 75

19. Apr 2006, 21:26

Beitrag #7 von 19
Beitrag ID: #224551

Bewertung:

(10089 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Antwort auf [ Martin Fischer ] Abhilfe verschafft etwa die Auswahl eines beliebigen Zeichens außerhalb der Fußnote (etwa: "app.documents[0].stories[0].insertionPoints[0].select()") am Ende eines Skripts.


Hallo Martin, ich hatte die Fehlermeldung auch bei Dokumenten ohne jegliche Fussnoten (OS X 10.3.9/ID CS2). Mit der obigen Ergänzung ist sie aber wie du richtig vermutest weg. Danke, dass du uns einmal mehr einen sinnlosen Mausklick bzw. einen Tastendruck zur Bestätigung einer Fehlermeldung erspart hast! (Resultat des Windows-Tests folgt.)

Antwort auf [ Martin Fischer ] Das könnte man abstellen, indem man eine Bedingung einfügt: berücksichtige nur Textflüsse ab einer bestimmten Anzahl an Zeichen oder ab einer bestimmten Anzahl an Zeilen. Wenn's tatsächlich jemand brauchen könnte, würde ich mich drum kümmern.


Ich glaube schon, dass wir eine Verbesserung wie von dir vorgeschlagen brauchen könnten. Ich würde es aber vorziehen, bestimmte (jeweils händisch im Skript eingetragene) Absatz- und/oder Zeichenformate auszuschliessen. Bei unseren Magazinen müssen wir bei jeder Ausgabe Texte für die Übersetzer exportieren, da bleiben die auszuschliessenden Formate natürlich immer die selben. Ich bin aber überzeugt, dass sich das Anpassen des Skripts auch für einen einmaligen Auftrag mit speziellen Formatnamen lohnen würde.

Wär' toll, wenn du dich bei Gelegenheit mal damit beschäftigen könntest!

Gruss, Lukas

als Antwort auf: [#224143] Top

Martin Fischer  M  p
Beiträge: 9374

19. Apr 2006, 23:43

Beitrag #8 von 19
Beitrag ID: #224565

Bewertung:

(10071 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo Lukas,

die Sache mit den auszuschließenden Absatz- und Zeichenformaten wäre etwas aufwendiger.
Was wäre das Ausschlußkriterium?
Das Absatzformat des ersten Absatzes eines Textflusses?
Oder das mindestens einmalige Vorkommen des Absatzformats in irgendeinem Absatz des Textflusses.

Mit dem Zeichenformat wird die Sache noch verzwickter.

Aber für die, die noch mit Zeilen und Zeichen rechnen habe ich unter Umständen eine Lösung.
Ich schreibe "unter Umständen", weil ich mir noch nicht ganz sicher bin, ob das Skript immer das tut, was ich oder ein anderer Anwender erwartet. ;-)
Das ist als Aufforderung für Betatester zu verstehen!

Das Skript startet mit einem Dialog in dem die Mindestbedingungen (Zeilen- und Zeichenzahl) für die zu berücksichtigenden Textflüsse definiert werden (es müssen beide Bedingungen zutreffen).
Danach vereinigt es die Textflüsse, wobei stets der erste Absatz des nächsten zur Vereinigung anstehenden Textflusses das Umbruchattribut "Absatzbeginn in nächstem Rahmen" verpaßt bekommt.

Jetzt bin ich auf die Testergebnisse gespannt.
Bei mir hat's am Ende meist funktioniert.

Code
//join_stories_2.js  

if (app.documents.length != 0)
{
myFilter = myDisplayDialog(1,1);
if (myFilter[0] != undefined)
{
var myCounter = 0;
var myDoc = app.activeDocument;
var myStoriesLength = myDoc.stories.length;
var myMainStory = myDoc.stories[0];
for (oneStory= 1; oneStory < myStoriesLength; oneStory++)
{
var theCurrentStory = myDoc.stories[oneStory - myCounter];
if ((theCurrentStory.lines.length >= myFilter[0]) // Mindestlinienzahl
&& (theCurrentStory.characters.length >= myFilter[1]) // Mindestzeichenzahl
&& (theCurrentStory.textFrames[0].parent.constructor.name == "Page")) // Ausschluß von verankerten Textrahmen
{
// fügt am Ende des Haupttextflusses eine Absatzschaltung ein,
// wenn der Textfluß nicht bereits mit einer Absatzschaltung endet.
if ((myMainStory.characters.length > 0) && (myMainStory.characters[-1].contents!="\r"))
{
myMainStory.insertionPoints[-1].contents="\r";
}
// Umbruchoption für ersten Absatz des Textflusses, der an den Haupttextfluß angehängt werden soll: nächster Textrahmen
if (theCurrentStory.characters.length > 0) theCurrentStory.paragraphs[0].startParagraph = StartParagraph.nextFrame;
// Verknüpfung des letzten Textrahmens des Hauptextflusses (myMainStory)
// mit dem ersten Textrahmen des letzten Textflusses (theCurrentStory)
myMainStory.textFrames[-1].nextTextFrame = theCurrentStory.textFrames[0];
myCounter +=1; // Zähler für die Vereinigungen
}
}
alert("Fertig");
}
}

function myDisplayDialog(myDefaultLines, myDefaultChars){
var myFieldWidth = 80;

var myDialog = app.dialogs.add({name:"Vereinigung von Textflüssen mit ..."});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"mindestens", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var myLinesDropdown = realEditboxes.add({editValue:myDefaultLines, minWidth:50, minimumValue:0, maximumValue:100000000, largeNudge:10, smallNudge:1});
}
with(dialogColumns.add()){
staticTexts.add({staticLabel:" Linie(n)"});
}
}

with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"und", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var myCharactersDropdown = realEditboxes.add({editValue:myDefaultChars , minWidth:50, minimumValue:0, maximumValue:100000000, largeNudge:10, smallNudge:1});
}
with(dialogColumns.add()){
staticTexts.add({staticLabel:" Zeichen"});
}
}
}
var theResult = myDialog.show();
if(theResult == true){
var theMinLines =myLinesDropdown.editValue;
var theMinChars =myCharactersDropdown.editValue;
myDialog.destroy();
}
else{
myDialog.destroy();
}
return [theMinLines, theMinChars];
}



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#224551] Top

Martin Fischer  M  p
Beiträge: 9374

19. Apr 2006, 23:49

Beitrag #9 von 19
Beitrag ID: #224566

Bewertung:

(10067 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Zitat ich hatte die Fehlermeldung auch bei Dokumenten ohne jegliche Fussnoten (OS X 10.3.9/ID CS2). Mit der obigen Ergänzung ist sie aber wie du richtig vermutest weg.


Das macht mich jetzt wieder etwas stutzig.
Was gibt es außer den bekannten - wenn auch bislang unerklärlichen - Gründen bei den Fußnoten noch für weitere Fallstricke?
Sind in Deinen/Euren Dokumenten verankerte Textrahmen enthalten?
Oder sonst etwas Außergewöhnliches, an was ein Skripter nicht gleich denkt?

Fein, daß wenigstens die Lösung für das unbekannte Problem funktioniert.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#224551]

(Dieser Beitrag wurde von Martin Fischer am 19. Apr 2006, 23:50 geändert)
Top

MusicOn
Beiträge: 2

20. Apr 2006, 10:26

Beitrag #10 von 19
Beitrag ID: #224598

Bewertung:

(10032 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo,

vielleicht hilft Dir das Script, welches mit CopyFlow Gold (auch in der frei ladbaren 10-Tage Demo enthalten) als *.dot mitkommt.
Dieses Script vereinigt Exportdateien und trennt sie für den Reimport nach der Übersetzung. Ich bin noch nicht sicher, ob bestimmte Namenskonventionen eingehalten werden müssen, aber es ist bestimmt einen Test wert.

http://www.napsys.com/cfgindesign.html

Grüße aus dem Wtal
Boris

als Antwort auf: [#191614] Top

Randy Andy
Beiträge: 13

24. Apr 2006, 14:15

Beitrag #11 von 19
Beitrag ID: #225274

Bewertung:

(9916 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo Martin,
wenn ich mich hier ganz kurz für eine Frage einklinken darf: Ich habe Dokumente mit Überschriften in der Marginale. Die Überschriften stehen in verankerten Textrahmen. Beim Exportieren für den Übersetzer fehlen die Überschriften. Gibt es eine Lösung für das Problem?

Grüßle, Andy

als Antwort auf: [#224566] Top

Martin Fischer  M  p
Beiträge: 9374

24. Apr 2006, 14:33

Beitrag #12 von 19
Beitrag ID: #225283

Bewertung:

(9911 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


> wenn ich mich hier ganz kurz für eine Frage einklinken darf

Kein Problem, wir waren schon fertig.

> Die Überschriften stehen in verankerten Textrahmen.
> Beim Exportieren für den Übersetzer fehlen die Überschriften.
> Gibt es eine Lösung für das Problem?

Per Skript: ja.

Hier ein Skript mit der Hammerschlagmethode:
Code
if ((app.selection.length > 0) && (app.selection[0].constructor.name = "InsertionPoint")) 
{
mySel = app.selection[0];
myLeader = "\r";
myTrailer = "\r;"
myHeadersInAnchoredFrames = mySel.parentTextFrames[0].textFrames;

for (oneH = myHeadersInAnchoredFrames.length-1; oneH >=0; oneH--)
{
myContent = myHeadersInAnchoredFrames[oneH].contents;
myHeadersInAnchoredFrames[oneH].parent.contents = myLeader + myContent + myTrailer;
}
}


Es setzt voraus, daß der Cursor vor dem Start des Skipts in dem zu bearbeitenden Textfluß steht.
Bei dieser (Hammerschlag-)Methode wird der Anker des Textrahmens durch dessen Inhalt, eingerahmt von myLeader und myTrailer ersetzt.
Im obigen Beispiel wird also zunächst eine Absatzschaltung eingefügt, dann der Inhalt des verankerten Textrahmens, gefolgt von einer weiteren Absatzschaltung.

Eleganter wäre die Copy- oder Move-Methode: dabei blieben die Formatierungen des Inhalts der verankerten Textrahmen erhalten.


Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#225274] Top

Randy Andy
Beiträge: 13

24. Apr 2006, 15:02

Beitrag #13 von 19
Beitrag ID: #225290

Bewertung:

(9900 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo Martin, vielen Dank für die schnelle Antwort, aber ich erhalte eine Fehlermeldung (Fehler 46). Der Debugger findet den Fehler gleich in Zeile 1: (Undefined ist kein Objekt). Leider bin ich mit Scripts nicht sehr bewandert. Was bedeutet der Fehler?

Grüße aus dem Odenwald

als Antwort auf: [#225283] Top

Martin Fischer  M  p
Beiträge: 9374

24. Apr 2006, 15:26

Beitrag #14 von 19
Beitrag ID: #225299

Bewertung:

(9883 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Sorry, mein Fehler.
In der ersten Zeile sollte statt dem einfachen ein doppeltes Gleichheitszeichen stehen (das Gleichheitszeichen dient hier nicht als Zuweisung eines Werts sondern als Vergleich zweier Werte)

Code
if ((app.selection.length > 0) && (app.selection[0].constructor.name == "InsertionPoint")) 
{
mySel = app.selection[0];
myLeader = "\r";
myTrailer = "\r;"
myHeadersInAnchoredFrames = mySel.parentTextFrames[0].textFrames;

for (oneH = myHeadersInAnchoredFrames.length-1; oneH >=0; oneH--)
{
myContent = myHeadersInAnchoredFrames[oneH].contents;
myHeadersInAnchoredFrames[oneH].parent.contents = myLeader + myContent + myTrailer;
}
}



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#225290]

(Dieser Beitrag wurde von Martin Fischer am 24. Apr 2006, 15:38 geändert)
Top

Martin Fischer  M  p
Beiträge: 9374

24. Apr 2006, 21:41

Beitrag #15 von 19
Beitrag ID: #225374

Bewertung:

(9849 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

Textexport als Worddokument


Hallo Randy Andy,

ich hatte Tomaten auf den Augen.
Das Skript oben behandelt nur die verankerten Textrahmen des Textrahmens in dem der Cursor steht und nicht - wie beabsichtigt - alle verankerten Textrahmen im aktuellen Textfluß.

Das folgende Skript sollte dies zuverlässiger erledigen:

Code
if ((app.selection.length > 0) && (app.selection[0].constructor.name == "InsertionPoint"))  
{
mySel = app.selection[0];
myLeader = "\r";
myTrailer = "\r;"
myHeadersInAnchoredFrames = mySel.parentStory.allPageItems;
for (oneH = myHeadersInAnchoredFrames.length-1; oneH >=0; oneH--)
{
if (myHeadersInAnchoredFrames[oneH].constructor.name == "TextFrame")
{
myContent = myHeadersInAnchoredFrames[oneH].contents;
myHeadersInAnchoredFrames[oneH].parent.contents = myLeader + myContent + myTrailer;
}
}
}



Martin Fischer

Skripte für InDesign im Skriptarchiv von HilfDirSelbst.ch

als Antwort auf: [#225299] Top
« « 1 2 » »  


Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign » Textexport als Worddokument


^