Отказ сервера InDesign при слиянии данных - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь выполнить простейшее слияние данных с InDesign Server и продолжать сбой.Я начинаю сервер с ./InDesignServer -port 18383, запускается без проблем.Я вызываю скрипт с ./sampleclient ./scripts/test.jsx .jsx выглядит так:

var source = File("/Users/me/Desktop/InDesign Server/example/example.indd")
var destination = File("/Users/me/Desktop/InDesign Server/example/example.pdf")
var sourceData = File("/Users/me/Desktop/InDesign Server/example/example.csv")
var doc = app.open(source);

doc.dataMergeProperties.selectDataSource(sourceData);
doc.dataMergeProperties.dataMergePreferences.recordNumber = 1;
doc.dataMergeProperties.mergeRecords(); // <-- Crashes here

var myPDFExportPreset = app.pdfExportPresets.item(0);
app.documents.item(0).exportFile(ExportFormat.pdfType, destination, false, myPDFExportPreset);
app.documents.item(0).close(SaveOptions.no);
doc.close(SaveOptions.no);

InDesign Server отвечает:

Tue Sep 18 09:48:21 2018 INFO   [javascript] Executing Script
./InDesignServer: line 13: 30363 Segmentation fault: 11  "$installed_name" "$@"

И вылетает.Этот скрипт прекрасно работает в InDesign CC Desktop.Сбой сервера при вызове .mergeRecords ().Есть идеи, почему?

Редактировать: я изменил код на 1) Нет пробелов в пути к файлу 2) Проверьте, все ли мои объекты существуют перед выполнением слияния.

var source = File("/Users/me/Desktop/example/example.indd");
var destination = File("/Users/me/Desktop/example/example.pdf");
var sourceData = File("/Users/me/Desktop/example/example.csv");

var doc = app.open(source);
doc.dataMergeProperties.selectDataSource(sourceData);

if (source.exists && destination.exists && sourceData.exists) {
    try {
        app.consoleout("Performing merge...");
        doc.dataMergeProperties.mergeRecords(); // <-- Crashes here
    } catch (err) {
        app.consoleout(err);
    }
} else {
    app.consoleout("Something doesn't exist...");
}

В нем записывается «Выполнение слияния ...», поэтому пути к моим файлам фактически указывают на файлы, которые существуют.Более того, он полон при сбоях и не сообщает об ошибках.

Редактировать 2: Следует отметить, что это ошибка, которую окно Terminal, которое запускало sampleclient, получает от IDS: Error -1 fault: SOAP-ENV:Client [no subcode] "End of file or no input: Operation interrupted or timed out" Detail: [no detail]

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Люди в Adobe обратили внимание и исправили эту проблему в выпуске InDesign Server 2019 года.Тот же сценарий с аналогичным объединяющим документом больше не выдает ошибку.

Итак, для решения обновите до 2019.

Дополнительная информация: Сообщение на форумах Adobe

0 голосов
/ 23 сентября 2018

Нашли решение, если другие окажутся в моей ситуации.До сих пор остается загадкой, почему mergeRecords () на сервере не работает

var source = File("/Users/me/Desktop/example/example.indd");
var destination = File("/Users/me/Desktop/example/example.pdf");
var sourceData = File("Macintosh HD:Users:me:Desktop:example:example.csv");

var doc = app.open(source);
var myExport = File(doc.filePath + "/" + doc.name.split(".indd")[0] + ".pdf");  
doc.dataMergeProperties.dataMergePreferences.recordNumber = 3;
with (doc.dataMergeProperties.dataMergePreferences) {
			recordSelection = RecordSelection.ONE_RECORD;    
            }
			app.dataMergeOptions.removeBlankLines = true;  
                doc.dataMergeProperties.exportFile(myExport, "[High Quality Print]", ); 

Все еще требуется некоторая настройка, но она выполняет слияние - это то, что мне было нужно.

...