PDF.js getTextContent以错误的顺序返回文本

时间:2017-06-13 11:34:09

标签: javascript excel pdf promise pdf.js

我在使用PDF.js从pdf中提取文本时遇到问题。我使用从Excel导出的PDF,因此有多行/列。这是我用来获取文字的功能:

 gettext: function(url, name){
     var self = this;
     var data = url;
     console.log('attempting to get text');
     return pdfjs.getDocument(data).then(function(pdf) {
     var pages = [];
     for (var i = 0; i <= 1; i++) {
         pages.push(i);
     }
     return Promise.all(pages.map(function(pageNumber) {
         return pdf.getPage(pageNumber + 1).then(function(page) {
         return page.getTextContent().then(function(textContent) {
             return textContent.items.map(function(item) {

             return item.str;
             }).join('###');
         });
         });
     })).then(function(pages) {
         return pages.join("\r\n")
     });
     }).then(function(pages){
     return self.parsetext(pages, url, name);        
     });        
 },

这对大多数文本内容非常有效。非常烦人的问题是,对于某个部分,内容混淆了。当gettext函数到达 beschreibung 部分时,会记录以下内容:

这里发生了一件奇怪的事情: beschreibung 部分正在文本末尾被提取,即使它只是另一列,如 kks seite 。如果它保留了正确的顺序,我可以使用它,但正如你在下面看到的那样,它没有。

Data.vue?1e15:250 item string: 12
Data.vue?1e15:250 item string: MA-KF12
Data.vue?1e15:250 item string: 26
Data.vue?1e15:250 item string: MA-KF12
Data.vue?1e15:250 item string: 33
Data.vue?1e15:250 item string: MA-KF12
Data.vue?1e15:250 item string: 44
Data.vue?1e15:250 item string: MA-KF12
Data.vue?1e15:250 item string: 82
Data.vue?1e15:250 item string: Inbetriebnahme
2Data.vue?1e15:250 item string: Anhang
Data.vue?1e15:250 item string: Vorwort
Data.vue?1e15:250 item string: Produktübersicht
Data.vue?1e15:250 item string: Grundlagen der Kommunikation
Data.vue?1e15:250 item string: Montage und Verdrahtung
Data.vue?1e15:250 item string: Vorwort
Data.vue?1e15:250 item string: Produktübersicht
Data.vue?1e15:250 item string: Grundlagen der Kommunikation
Data.vue?1e15:250 item string: Montage und Verdrahtung
Data.vue?1e15:250 item string: Inbetriebnahme
Data.vue?1e15:250 item string: Produktübersicht
Data.vue?1e15:250 item string: Grundlagen der Kommunikation
Data.vue?1e15:250 item string: Montage und Verdrahtung
Data.vue?1e15:250 item string: Inbetriebnahme
Data.vue?1e15:250 item string: Anhang
Data.vue?1e15:250 item string: Produktdaten
Data.vue?1e15:250 item string: Dokumentation
Data.vue?1e15:250 item string: Beschreibung
Data.vue?1e15:250 item string: Vorwort

正如您所看到的,订单已关闭(但只是轻微......)

任何想法可能会出错?

enter image description here

0 个答案:

没有答案