2016-05-13 4 views
0

Я пытаюсь преобразовать этот документ: http://www.redbooks.ibm.com/redpapers/pdfs/redp5213.pdf в блоки ответа JSON, но он (и многие другие подобные) просто не будет обрабатывать эту службу. Если я попытаюсь обработать его через демонстрационную страницу по адресу https://document-conversion-demo.mybluemix.net/, он либо вернет ошибку «Отсутствуют требуемые параметры: либо параметр params.file или params.document_id должен быть указан«, либо он просто возвращает пустой результат. Если я попробую его через REST API через Node.js и watson-developer-cloud, он вернет код ошибки 400 вместе с сообщением «Входной документ не был преобразован, потому что исключение при преобразовании PDF в HTML» , (Почему он пытается конвертировать в HTML, я понятия не имею - я указал единицы ответа JSON, и этот код отлично работал с некоторыми другими документами, которые я пробовал).Получение загадочных ошибок из службы преобразования документов Bluemix

Есть ли что-то необычное в этих файлах, которые я пытаюсь преобразовать, или у службы преобразования документов есть проблемы?

ответ

0

Я скачал, что [Redpaper] [1] на мой ноутбук, а затем пошел к Document Conversion Demo, нажал Выберите файл и загрузил PDF Я только что загрузили и затем нажал ответить единицам JSON как желаемая выход формат. Сначала я ничего не видел. Нажатие на значок загрузки справа от Выходной документ дал мне преобразованный вывод JSON в качестве загрузки и также заполнил его на веб-странице. Перезагружая страницу, я получил преобразование, чтобы появиться на демонстрационной странице без необходимости загружать.

Я новичок в Node.js. Я получил следующий код для работы (на основе Document Conversion via Node) с использованием текущего пакета watson-developer-cloud, который является версией 1.8.0.

var watson = require('watson-developer-cloud'); 
var fs = require('fs'); 

var document_conversion = watson.document_conversion({ 
    username:  'username', 
    password:  'password', 
    version:  'v1', 
    version_date: '2015-12-15' 
}); 

document_conversion.convert({ 
    file: fs.createReadStream('redp5213.pdf'), 
    conversion_target: "ANSWER_UNITS" 
}, function (err, response) { 
    if (err) { 
    console.error(err); 
    } else { 
    console.log(JSON.stringify(response, null, 2)); 
    } 
}); 

Это займет от десяти до двадцати секунд, чтобы работать в кафе WiFi.

О, и я забыл ответить на ваш вопрос «Почему [он] пытается конвертировать в HTML?». Служба конвертации документов всегда конвертирует в HTML, а затем в нормализованный HTML. Для блоков ответа или обычного текста требуется дополнительный шаг преобразования нормализованного HTML в запрошенный формат. Это описано в Document Conversion - Customizing (что поражает меня как-то странно из-за базовой документации по потоку).

[1]: http://www.redbooks.ibm.com/redpapers/pdfs/redp5213.pdf Redpaper

+0

Поскольку вы пробовали тот же документ на демо-сайте, и она работала, я снова вернулся и попробовал сам. Я пробовал те же самые шаги 5 раз и получал очень странные и непоследовательные результаты - первые два раза приводил к тому же поведению, которое я описал выше. Третья попытка, однако, работала довольно много, как вы сказали. Еще две попытки после этого тоже, казалось, работали нормально. После этого я попробовал обновить мою библиотеку watson-developer-cloud до последней версии (это было в 1.4.1, и я обновил ее до 1.7.0) и повторил документы из Node.js, но все равно получаю те же ошибки как прежде. –

+0

Код, который я использую для вызова службы преобразования документов, приведен ниже. Конвертируемый PDF загружается в переменную «content»: document_conversion.конвертировать ({ файл: новый буфер (содержание), conversion_target: "ANSWER_UNITS", content_type: 'приложение/PDF' }, функция (эээ, ответ) { если (ERR) {... (Sorry его хорошо не форматируется в комментариях) –