首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在尝试使用IBM文档转换服务时会出现“无法向后推”错误?

为什么我在尝试使用IBM文档转换服务时会出现“无法向后推”错误?
EN

Stack Overflow用户
提问于 2017-03-16 15:27:51
回答 1查看 87关注 0票数 0

我试图使用Node.js应用程序使用Bluemix文档转换服务来转换文档。我得到的只是我的应用程序错误,但我使用的测试文档转换良好使用演示页面。下面是一个很小的应用程序来演示这个问题(注意,当这个应用从磁盘中转换一个PDF时,“真正的”应用程序无法做到这一点,因此成为缓冲区对象)。

代码语言:javascript
复制
'use strict';

var fs = require('fs');
var DocumentConversionV1 = require('watson-developer-cloud/document-conversion/v1');
var bluemix=require('./my_bluemix');
var extend=require('util')._extend; //Node.js' built-in object extend function

var dcCredentials =  extend({
  url: '<url>',
  version: 'v1',
  username: '<username>',
  password: '<password>'
}, bluemix.getServiceCreds('document_conversion')); // VCAP_SERVICES
var document_conversion = new DocumentConversionV1(dcCredentials);

var contents = fs.readFileSync('./testdoc.pdf', 'utf8');

var parms={
   file: new Buffer(contents,'utf8'),
   conversion_target: 'ANSWER_UNITS',     // (JSON) ANSWER_UNITS, NORMALIZED_HTML, or NORMALIZED_TEXT
   content_type:'application/pdf',
   contentType:'application/pdf', //don't know which of these two works, seems to be inconsistent so I include both
   html_to_answer_units: {selectors: [ 'h1', 'h2','h3', 'h4']},
   };
console.log('First 100 chars of file:\n******************\n'+contents.substr(0,100)+'\n******************\n');
document_conversion.convert(parms, function(err,answerUnits)
   {
   if (!err)
      console.log('Returned '+answerUnits.length);
   else
      console.log('Error: '+JSON.stringify(err));
   });

在测试PDF (782 K)上运行此程序的结果是:

代码语言:javascript
复制
$ node test.js
[DocumentConversion] WARNING: No version_date specified. Using a (possibly old) default. e.g. watson.document_conversion({ version_date: "2015-12-15" })
[DocumentConversion] WARNING: No version_date specified. Using a (possibly old) default. e.g. watson.document_conversion({ version_date: "2015-12-15" })
First 100 chars of file:
******************
%PDF-1.5
%����
1 0 obj
<</Type/Catalog/Pages 2 0 R/Lang(en-US) /StructTreeRoot 105 0 R/MarkInfo<<
******************

Error: {"code":400,"error":"Could not push back 82801 bytes in order to reparse stream. Try increasing push back buffer using system property org.apache.pdfbox.baseParser.pushBackSize"}
$

谁能告诉我

  1. 如何消除警告信息
  2. 为什么文档没有被转换
  3. 如何“增加推送缓冲区”?

其他文档给出了不同的错误,但我希望如果我能使这一个工作,那么其他的错误也会消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 17:57:11

  1. 您可以通过在配置中指定版本日期来消除警告消息。参见测试中的一个例子。1
  2. 如果文档通过演示转换,但在使用应用程序时无法转换,那么二进制数据如何传递到服务很可能是一个错误。(例如,它正在被破坏或截断。)您可以在这里看到演示的Node.js源代码,2。它可能会帮助您找出错误,或者给您一种不同的方法来加载/发送文件。
  3. 这是来自服务使用的底层库之一的错误。不幸的是,在这一点上调用者不能进行调整。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42838318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档