Mein Hauptziel ist, PDF.js zu verwenden und die geparsten PDF-Daten an Front-End zu senden. Die PDF.js-Bibliothek arbeitet mit Versprechungen und gibt Daten aus der Datei nach Seitennummer zurück. Hier ist mein Problem. Ich bin mit Versprechungen nicht sehr vertraut und mache in ihnen Schleifen, um Daten zurückzugeben. Mein Code im Moment wie folgt aussieht:Zurückgeben von Daten von Promise
var pdf = path.join(__dirname, '../../testoutput.pdf');
pdfJsLib.getDocument(pdf).then(function(doc){
var promises = [];
for(i = 1; i <= doc.numPages; i++){
//promises.push(doc.getPage(i));
doc.getPage(i).then(function(page){
promises.push(page.getTextContent());
var response = [];
if(i == doc.numPages + 1){
var promiseLimiter = promises.length;
Promise.all(promises).then(function(data){
response.push(data[0]);
if(promiseLimiter == doc.numPages){
res.status(200).json(response);
}
})
}
})
Ich versuche page.getTextContent() Informationen zu einem Array zu drücken und das Array als Antwort zu senden, aber ich verstehe, dass ich dies für die falsche Art und Weise tue. Irgendwelche Ideen, wie man die Schleife mit Versprechungen in diesem Fall richtig arbeiten lässt?
Promise.all tun wollen würde, muss aus sein, WHW beendet und erfüllt Versprechen –
arr was getTextContext() –
getTextContext() ist eine Funktion, die von der PDF.js-Bibliothek zur Verfügung gestellt wird, und Sie können damit Textdaten aus der PDF-Seite extrahieren. Es gibt Ihnen Daten über die Wörter und ihre Position und Stile zurück. Daten von diesem sieht normalerweise ungefähr so aus: https://pastebin.com/tT7gSu2a. Dies sollte auch als Versprechen verwendet werden page.getTextContent(). Then (function (content) {// mach etwas mit Inhalt}) –