[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Verpacken und PDF erstellen in einem

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

Verpacken und PDF erstellen in einem

pitware2005
Beiträge gesamt: 39

15. Jul 2014, 13:34
Beitrag # 1 von 4
Bewertung:
(2660 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe versucht aus 2 Skripten eines zu machen. Leider hackt es nun bei der Feinarbeit und ich finde den Fehler nicht.

Könnt ihr mir bitte kurz helfen?

Er macht alles bis zum Schluss und dann bringt er die Warnmeldung ob es das Setting wirklich gibt, es ist auf dem Rechner aber vorhanden.

Hier sind die Skripte:
Mein neues:
Code
//  Teil 1: Öffnen   
fileType = "*.indd";
var topFolder = Folder.selectDialog ("Wähle einen Ordner aus");
inputFileType = "*.indd" //prompt("input file type like '*.indd'", fileType);
if(inputFileType != null) { fileType = inputFileType; }

scanSubFolders(topFolder);

function scanSubFolders(tFolder)
{
var sFolders = new Array();
var allFiles = new Array();

sFolders[0] = tFolder;
for (var j = 0; j < sFolders.length; j++) // loop through folders
{
var procFiles = sFolders[j].getFiles();
for (var k=0;k<procFiles.length;k++) // loop through this folder contents
{
if (procFiles[k] instanceof File) allFiles.push(procFiles[k]);
else if (procFiles[k] instanceof Folder) sFolders.push(procFiles[k]);
var letzt = procFiles[k];
var myArray = letzt.name.split(".");
var myLast = myArray.pop();
if (myLast == "indd") {app.open(letzt)};
}
}
}


// Funktion zum Einlesen der PDF-Vorgabesets
function myGetPDFPresets()
{
var myPDFPresets = new Array;
for (var onePreset = 0; onePreset < app.pdfExportPresets.length; onePreset++)
{
myPDFPresets.push(app.pdfExportPresets.item(onePreset).name);
}
return myPDFPresets;
}


// Teil 2: Verpacken & PDF erstellen
do
{
if (app.documents.length !=0)
{
// Name der aktiven Datei
var myDocFullName = app.activeDocument.fullName;

// Ordnername
var myFolderName = String(myDocFullName).replace(/\.indd/,' ');

// Ordner erstellen
var f = new Folder (myFolderName);
f.create();

// Verpacken
app.activeDocument.packageForPrint (f , true, true, true, true, true, true, true);

// PDF erstellen
var myPresets = ["Kleinste Dateigröße+Hyperlinks+Lesezeichen"];
for (onePreset=0; onePreset < myPresets.length; onePreset++)
{
var pdfFile = new File( f + '/' + myFolderName + '.pdf' )
try {
app.activeDocument.exportFile(ExportFormat.pdfType, pdfFile, false, myPresets[onePreset]);
}
catch(e) {
alert("Error\nIst das Vorgabeset \"" + myPresets[onePreset] + "\" tatsächlich vorhanden?")
};
}

// Dokument schließen
app.activeDocument.close(SaveOptions.NO);
}
}
while(app.documents.length !=0);


Das verpacken Skript:
Code
//  Backup_Verpacken.jsx   
//DESCRIPTION: Verpackt InDesign-Dateien eines ausgewählten Verzeichnisses und dessen Unterverzeichnissen in namensgleiche Unterverzeichnisse.
//
// Holger aka Krings
// 9.2.2009
//
// Teil 1: Öffnen
//
fileType = "*.indd";
var topFolder = Folder.selectDialog ("Wähle einen Ordner aus");
inputFileType = "*.indd" //prompt("input file type like '*.indd'", fileType);
if(inputFileType != null) { fileType = inputFileType; }

scanSubFolders(topFolder);

function scanSubFolders(tFolder)
{
var sFolders = new Array();
var allFiles = new Array();

sFolders[0] = tFolder;
for (var j = 0; j < sFolders.length; j++) // loop through folders
{
var procFiles = sFolders[j].getFiles();
for (var k=0;k<procFiles.length;k++) // loop through this folder contents
{

if (procFiles[k] instanceof File) allFiles.push(procFiles[k]);
else if (procFiles[k] instanceof Folder) sFolders.push(procFiles[k]);
var letzt = procFiles[k];
var myArray = letzt.name.split(".");
var myLast = myArray.pop();
if (myLast == "indd") {app.open(letzt)};
}
}
}
// Teil 2: Verpacken

do{
if(app.documents.length !=0){
// Name der aktiven Datei
var myDocFullName = app.activeDocument.fullName;
// Ordnername
var myFolderName = String(myDocFullName).replace(/\.indd/,' ');
// Ordner erstellen
var f = new Folder (myFolderName);
f.create();
// Verpacken
app.activeDocument.packageForPrint (f , true, true, true, true, true, true, true);
}
app.activeDocument.close(SaveOptions.NO);

}
while(app.documents.length !=0);


Das PDF Skript von Martin Fischer:
Code
//indd2pdf.js  
//
// Exportiert alle InDesign-Dateien (mit der Endung ".indd") eines während der Ausführung des Skripts
// auszuwählenden Verzeichnisses in PDF-Dateien.
// Dabei werden verschiedene PDF-Vorgabesets verwendet (s.u. PDF-Vorgabesets).
// Beim Export erhalten die PDF-Dateien den Namen des InDesign-Dokuments (ohne die Endung ".indd"),
// zuzüglich einem Trennzeichen ("_") und dem Namen des PDF-Vorgabesets, das zur Herstellung der PDF-
// Datei verwendet wurde.
// Als Vorgabesets werden entweder (1.) alle vorhandenen PDF-Vorgabesets verwendet (Voreinstellung) oder
// nur die Vorgabesets, die in der Liste unter 2. angegeben sind. Zur Aktivierung / Deaktivierung der einen oder anderen
// Einstellung bitte die Zuweisung auskommentieren bzw. den Kommentar entfernen.
//
//
// PDF-Vorgabesets
// bitte Vorgaben unter 1. oder 2. durch Löschen der Kommentierung wählen
//
// 1. alle vorhandenen Vorgaben berücksichtigen
var myPresets = myGetPDFPresets();
//
// 2. nur die unten angegebenen Vorgaben berücksichtigen
// var myPresets = ["Laserdruck", "email"];

var myDir = Folder.selectDialog ("Choose a Folder...");

var myDocs = Folder(myDir).getFiles('*.indd');
for( oneDoc = 0 ; oneDoc < myDocs.length ; oneDoc++ ){
myFile = app.open( myDocs[oneDoc]);
for (onePreset=0; onePreset < myPresets.length; onePreset++){
var pdfFile = new File( myDocs[oneDoc].path +'/' + cutFileName(myDocs[oneDoc].name ) + '_' + myCleanFileName(myPresets[onePreset]) + '.pdf' )
try{
myFile.exportFile(ExportFormat.pdfType, pdfFile, false, myPresets[onePreset]);
}
catch(e){
alert("Error\nIst das Vorgabeset \"" + myPresets[onePreset] + "\" tatsächlich vorhanden?")
};
}
app.activeDocument.close( )
}

// Funktion zum Abtrennen der Dateiendung
function cutFileName (oneFile) {
return oneFile.substring (0, oneFile.length-5)
}

// Funktion zum Einlesen der PDF-Vorgabesets
function myGetPDFPresets(){
var myPDFPresets = new Array;
for(var onePreset = 0; onePreset < app.pdfExportPresets.length; onePreset++){
myPDFPresets.push(app.pdfExportPresets.item(onePreset).name);
}
return myPDFPresets;
}

// Funktion zum Ersetzen von (hinsichtlich des Dateisystems) problematischen
// Zeichen im Namen eines Vorgabesets (Slash, Backslash, Doppelpunkt)
function myCleanFileName(oneFilename){
var oneFilename = String(oneFilename.split('/').join('_').split('\\').join('_').split(':').join('¯'));
return oneFilename;
}

Viele Grüße
Peter
X

Verpacken und PDF erstellen in einem

Kai Rübsamen
Beiträge gesamt: 4659

15. Jul 2014, 14:47
Beitrag # 2 von 4
Beitrag ID: #529786
Bewertung:
(2638 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo!

Ohne das komplett gelesen und geschweige denn getestet zu haben: Du hast eine Funktion "myGetPDFPresets". Führst du die in deiner Version auch irgendwo aus? >> Siehe Martins Variante.

Gruß Kai Rübsamen


als Antwort auf: [#529776]

Verpacken und PDF erstellen in einem

pitware2005
Beiträge gesamt: 39

15. Jul 2014, 15:26
Beitrag # 3 von 4
Beitrag ID: #529791
Bewertung:
(2616 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

danke für Deine Antwort. Aber diese Funktion ist völlig ohne Bedeutung, hab ich nur noch nicht gelöscht. Diese wird nur benötigt wenn man Martins Version 1 ausführen möchte (alle vorhanden Presets) zu verwenden.

Gruß Peter
Viele Grüße
Peter


als Antwort auf: [#529786]

Verpacken und PDF erstellen in einem

Kai Rübsamen
Beiträge gesamt: 4659

15. Jul 2014, 16:55
Beitrag # 4 von 4
Beitrag ID: #529795
Bewertung:
(2587 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hm, hast du dir mal überlegt, dass das auch einer lesen muss? Also bitte nur solchen Code posten, der auch geprüft werden soll.

Ich glaube die Fehlermeldung ist völliger Käse, denn der Export mit meinem PDF-Skript u. deinem Setting geht.

Der Fehler liegt m.E. hier:
var pdfFile = new File( f + '/' + myFolderName + '.pdf' )

Schau dir mal an, was in 'pdfFile' nach dem Ausführen der Zeile ankommt und dann tausch 'myFolderName' mal gegen:

app.activeDocument.name.split( "." )[0]

also:
var pdfFile = new File( f + '/' + app.activeDocument.name.split( "." )[0] + '.pdf' )

Gruß Kai Rübsamen


als Antwort auf: [#529791]
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
25.01.2021 - 26.01.2021

Digicomp Academy AG, Bern oder Zürich
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

In diesem Basic-Kurs lernen Sie das Wichtigste über den Aufbau und die Funktionsweise von Photoshop. Zusammen mit den notwendigen Grundlagen von Farbenlehre bis Bildauflösung lernen Sie zudem die kreativen Möglichkeiten von Photoshop kennen.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/PHOTM1

Veranstaltungen
25.01.2021 - 26.01.2021

Digicomp Academy AG, Zürich oder virtuell
Montag, 25. Jan. 2021, 08.30 Uhr - Dienstag, 26. Jan. 2021, 17.00 Uhr

Kurs

Im Kurs lernen Sie die Schritte vom Import des Rohmaterials bis zum fertig exportierten Clip kennen. Dazu zählen die Materialverwaltung, das Trimmen für Roh- und Feinschnitt, Blenden, Titel und Effekte und eine Übersicht über die wichtigsten Formate.

Preis: CHF 1'700.-
Dauer: 2 Tage

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/AP6

Neuste Foreneinträge


InDesign 2021 – Suchen/Ersetzen: Farbe

Exel ohne leeres Tabellenblatt starten

Text- oder Grafikrahmen nach Position und Größe suchen und ändern

Langsamer MacMini

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Balken hinter einen Bildteil

Geteiltes Album

Verschiedene Netzwerke Handeln

Nicht "Silben über Spalten hinweg trennen" (CC 2018/ CC 2021)

Wordpress - Video per CSS mit Datenschutzerklrung DSGVO erstellen. Wie geht es?
medienjobs