[GastForen Programme Print/Bildbearbeitung Adobe InDesign script seiten entfernen

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

script seiten entfernen

gozreh
Beiträge gesamt: 9

7. Nov 2018, 20:56
Beitrag # 61 von 71
Beitrag ID: #567411
Bewertung:
(8476 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Generell muss ich meine Druckdaten als pdf-Datei abliefern. Aber mir ist es lieber, wenn die Seitenentfernung in Indesign stattfinden kann, damit ich das Dokument vorher nochmals prüfen kann.


als Antwort auf: [#567392]
X

script seiten entfernen

Uwe Laubender
Beiträge gesamt: 5316

8. Nov 2018, 08:44
Beitrag # 62 von 71
Beitrag ID: #567416
Bewertung:
(8408 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,
das Skript könnte die nicht zu exportierenden Seiten im Seiten-Bedienfeld mit einer Farbe versehen. Der zeitliche Aufwand wäre minimal. Die Gesamtzeit würde unter einer Minute liegen.

Unten ein Beispiel mit UIColors.BRICK_RED als Farbe für die Seiten, die nicht exportiert werden.
Die Liste der verfügbare Farben in der Klasse der UIColors gibt's hier:

http://jongware.mit.edu/...6js/pe_UIColors.html

Code
/** 
* @@@BUILDINFO@@@ GetPageRangeForExport-ColorPagesWthNoExport-NoPagesWith-XXX.jsx !Version! Thu Nov 08 2018 08:36:53 GMT+0100
*/

( function()
{

app.scriptPreferences.userInteractionLevel = UserInteractionLevels.INTERACT_WITH_ALL;

getPageRangeForExport()

function getPageRangeForExport()
{

app.findGrepPreferences = app.changeGrepPreferences = null;
app.findTextPreferences = app.changeTextPreferences = null;

app.findTextPreferences.findWhat = "XX,XX";
app.findGrepPreferences.findWhat = "[0-9]+,[0-9]{2}";

// Color for the pages that will not be exported:
var noExportPageColor = UIColors.BRICK_RED;

var doc = app.activeDocument;
var docPagesLength = doc.documentPreferences.pagesPerDocument;

var textFindResults = doc.findText();
var textFindResultsLength = textFindResults.length;

var grepFindResults = doc.findGrep();
var grepFindResultsLength = grepFindResults.length;

var docOffsetNumbers = [];
var exportStringArray = [];

// Looping the findText results:
for(var n=0; n<textFindResultsLength; n++)
{
var parentPage = textFindResults[n].parentTextFrames[0].parentPage;
if( parentPage == null ){ continue };

parentPage.pageColor = noExportPageColor;

var docOffsetString = parentPage.documentOffset.toString();
docOffsetNumbers[ docOffsetString ] = docOffsetString; // The contents is not important.
};

// Looping the findGrep results:
for(var n=0; n<grepFindResultsLength; n++)
{
var parentPage = grepFindResults[n].parentTextFrames[0].parentPage;
if( parentPage == null ){ continue };

var nextPage = doc.pages[ parentPage.documentOffset+1 ];
nextPage.pageColor = noExportPageColor;

// We want to dismiss the next page:
var docOffsetString = ( nextPage.documentOffset ).toString();
docOffsetNumbers[ docOffsetString ] = docOffsetString; // The contents is not important.
};


// Building the exportStringArray:
for( var n=0; n<docPagesLength; n++ )
{
if( n.toString() in docOffsetNumbers ){ continue };
exportStringArray[exportStringArray.length++] = "+"+( n+1 );
};

app.pdfExportPreferences.pageRange = exportStringArray.join(",");

// $.writeln( exportStringArray.join(",") );

app.findGrepPreferences = app.changeGrepPreferences = null;
app.findTextPreferences = app.changeTextPreferences = null;

};

}() )



als Antwort auf: [#567411]

script seiten entfernen

Hans Haesler
Beiträge gesamt: 5826

10. Nov 2018, 10:50
Beitrag # 63 von 71
Beitrag ID: #567498
Bewertung:
(8366 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

Dein Vorschlag funktioniert. Das Zuweisen der Farbe an 573 Seiten (von insgesamt 1719) und das Erstellen des Strings für den PDF-Export dauert 01'47".

Aber: Das Überprüfen des Dokuments wird zu mühsam sein.

Deshalb könnte meine brilliante (gar nicht bescheiden :-) Idee umgesetzt werden: Das Einfärben der Seiten durch das Entfernen aller Objekte ersetzen ...

Code
parentPage.pageItems.everyItem().remove(); 

... und ...
Code
nextPage.pageItems.everyItem().remove(); 

Dann sind die "schlechten" Seiten alle weiss. Das dauert 4'11"

Zum Beschleunigen kann der Preflight abgestellt, das Dokument geschlossen und unsichtbar geöffnet werden. Nach der Behandlung wird es wieder sichtbar gemacht. Dauer: 1'04"

*****
Deine Idee mit dem Zwischenspeichern (im Beitrag #47) habe ich ausprobiert. Bringt leider nichts.

*****
Voranzeige: Der Vorschlag von Werner (Kopieren in ein anderes Dokument) ergibt tatsächlich eine markante Beschleunigung. Näheres folgt heute Nachmittag.

Gruss, Hans


als Antwort auf: [#567416]

script seiten entfernen

Uwe Laubender
Beiträge gesamt: 5316

10. Nov 2018, 14:13
Beitrag # 64 von 71
Beitrag ID: #567499
Bewertung:
(8343 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Hans,
das Entfernen der Objekte ist wirklich eine geniale Idee.
Das meine ich jetzt ohne jegliche Ironie!

Denn:
Bei der PDF-Ausgabe kannst Du entscheiden, dass leere Seiten nicht mit ausgegeben werden. Das würde das Löschen der Seiten überflüssig machen.


als Antwort auf: [#567498]

script seiten entfernen

Hans Haesler
Beiträge gesamt: 5826

10. Nov 2018, 15:00
Beitrag # 65 von 71
Beitrag ID: #567501
Bewertung:
(8332 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

Antwort auf: Bei der PDF-Ausgabe kannst Du entscheiden, dass leere Seiten nicht mit ausgegeben werden.

Das war mein Vorhaben. Ausgelöst durch Deine farbige Kennzeichnung. Aber den Geistesblitz hatte ich fern vom Computer. Und konnte es erst abends testen.

Doch ich fand heraus, dass es nur beim Drucken gehen würde: Also zuerst eine PostScript-Datei und dann destillieren. Das wäre etwas umständlich.

Ab welcher InDesign-Version ist denn diese Option "leere Seiten auslassen" vorhanden?

Gruss, Hans


als Antwort auf: [#567499]

script seiten entfernen

Uwe Laubender
Beiträge gesamt: 5316

10. Nov 2018, 17:03
Beitrag # 66 von 71
Beitrag ID: #567502
Bewertung:
(8309 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
sorry. Du hast ja Recht. Die Option gibt's wirklich nur im Druckmenü.
Für einen Workflow wie: PostScript drucken, PDF/X-1a distillen würde das zumindest ausreichen.


als Antwort auf: [#567501]

script seiten entfernen

Hans Haesler
Beiträge gesamt: 5826

10. Nov 2018, 17:07
Beitrag # 67 von 71
Beitrag ID: #567503
Bewertung:
(8301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uwe,

kein Problem. Danke für die Bestätigung.

Aber das wäre doch ein Wunsch-Feature für ein nächstes Update.
Du hast doch einen guten Draht zu Adobe ... ;-)

Gruss, Hans


als Antwort auf: [#567502]

script seiten entfernen

Hans Haesler
Beiträge gesamt: 5826

10. Nov 2018, 17:54
Beitrag # 68 von 71
Beitrag ID: #567504
Bewertung:
(8286 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

ich habe Dir per PM die Version 07d zugestellt.

*****
Dank Werner Perplies dauert jetzt die Ausführung nur noch knapp sieben Minuten. Werner hatte die tollkühne Idee, die Seiten nicht zu entfernen, sondern in ein neues Dokument zu kopieren.

Von zehn Testläufen liess ich die zwei schlechtesten und das beste der Ergebnisse weg, addierte die restlichen sieben und teilte den Wert durch sieben. Umgerechnet ergab das 6'44". Nicht schlecht, wenn man bedenkt, dass 1146 Seiten kopiert wurden.

*****
Von Uwe Laubender stammt die geniale Methode, die "guten" Seiten zu ermitteln. Hätte ich nie so geschafft!

*****
Weil die Ausführung jetzt akzeptabel schnell ist, wird auf das Abstellen der Auffrischung verzichtet. Und der Anwender kann mit drei Dialogen (siehe Anhänge) benachrichtigt werden, was gerade geschieht.

Gruss, Hans


als Antwort auf: [#567411]
Anhang:
1_Vorbereitungen.png (13.1 KB)   2_Seiten_kopieren.png (11.2 KB)   3_Aufraeumen.png (12.6 KB)

script seiten entfernen

WernerPerplies
Beiträge gesamt: 2760

10. Nov 2018, 18:15
Beitrag # 69 von 71
Beitrag ID: #567505
Bewertung:
(8271 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Hans,

Antwort auf: Dank Werner Perplies dauert jetzt die Ausführung nur noch knapp sieben Minuten. Werner hatte die tollkühne Idee, die Seiten nicht zu entfernen, sondern in ein neues Dokument zu kopieren.


Nichts Tollkühnes, sondern jahrelange Erfahrung. :-)
Immer wenn intensiv im Speicher geschoben werden muss, bei großer Datenmenge, ist das der Turbogang.


als Antwort auf: [#567504]

script seiten entfernen

Hans Haesler
Beiträge gesamt: 5826

11. Nov 2018, 09:12
Beitrag # 70 von 71
Beitrag ID: #567506
Bewertung:
(8160 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

:-)

Auf solche, Deine, Erfahrungen kann ich halt nicht zurückgreifen. Beim Produzieren von Zeitschriften werden andere Methoden eingesetzt.

Darum war ich zuerst eher skeptisch und erwartete keine grosse Verbesserung. Nochmals besten Dank für Dein hartnäckiges Dranbleiben.

Gruss, Hans


als Antwort auf: [#567505]

script seiten entfernen

Hans Haesler
Beiträge gesamt: 5826

2. Dez 2018, 21:25
Beitrag # 71 von 71
Beitrag ID: #567839
Bewertung:
(7684 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Armin,

jetzt habe ich endlich Zeit gefunden, um die im Beitrag #39 skizzierte Outline umzusetzen.

Und noch etwas effizienter: Der erhoffte Geschwindigkeits-Schub übertrifft die kühnsten Erwartungen.
Das Aktualisieren der 573 Seiten dauert zehn ... Sekunden! (plus ein paar Tausendstel :-).

*****
– Ein Dokument ist geöffnet, welches die notwendige Anzahl an Seiten (= 1146) aufweist;
– den ungeraden Seiten ist die Musterseite "A" (= die Vorderseite der Antwortkarte) zugewiesen;
– den geraden Seiten die Musterseite "B" (= die Rückseite, mit dem Treuebonus-Betrag);
– die Musterseite "C" ist vorbereitet. Sie enthält u.a. den benannten Textrahmen für die Adresse;
– nach dem Start des Scripts wird die gewählte CSV-Datei eingelesen;
– aus den Spalten "Vorname, Name", "Straße", "Ort" und "Betrag" wird je ein Array erzeugt;
– dann macht das Script eine Schleife durch den Array "Betrag".

Angenommen, der aktuelle Wert lautet "XX,XX". Dann wird ...
– der aktuellen Seite die Musterseite "C" zugewiesen, der Rahmen "Adresse" wird übergangen;
– die Werte für die Textkette "Frau\rVorname Name\rStraße\rOrt" werden aus den Arrays gepflückt ...
– ... und im Textrahmen "Adresse" eingesetzt.

Ist der aktuelle Wert ein Euro-Betrag, dann ...
– werden die Textrahmen "Treuebonus" und "Adresse" übergangen;
– im ersten wird per 'changeText()' der Name eingesetzt und mit 'changeGrep()' der Euro-Betrag;
– im Textrahmen "Adresse" wird die zusammengesetzte Adresse eingesetzt.

Zum Beschleunigen der Ausführung wird ...
– das Dokument geschlossen und versteckt geöffnet;
– der Preflight abgestellt.

Zusätzlich informiert ein Dialog laufend über die verbleibende Anzahl der zu ändernden Seiten.

Gruss, Hans


als Antwort auf: [#567411]
X