2012-01-27 10 views

Odpowiedz

8

można łatwo przekształcić jeden do drugiego, lub użyć na przykład .doc szablon do wygenerowania pliku .pdf, ale prawdopodobnie będziesz chciał użyć istniejącej usługi internetowej do tego zadania.

Można to zrobić korzystając z usług Livedocx np

Aby skorzystać z tej usługi od węzła zobacz node-livedocx (Zastrzeżenie: Jestem autorem tego modułu Node)

+0

porządku, to jest mocno syn. Ładnie wykonane. – Alan

7

Wygląda na to, że jest kilka dla pdf, ale nie znalazłem żadnego dla Worda.

W ten sposób przetwarzanie związane z procesowaniem nie jest tak naprawdę silnym punktem węzła (tzn. Nie uzyskuje się dodatkowych korzyści z używania węzła w innym języku). Pragmatyczne podejście polegałoby na znalezieniu dobrego narzędzia i wykorzystaniu go z poziomu węzła.

słyszałem dobre rzeczy w biurze o docsplit http://documentcloud.github.com/docsplit/

Choć nie jest to węzeł, można łatwo wywołać go od węzła z http://nodejs.org/docs/latest/api/all.html#child_process.exec

+0

Zaletą czystym roztworze JS jest to, że jest to przenośny pomiędzy przeglądarką a węzłem – sdgfsdh

11

textract jest wielki lib że obsługuje pliki PDF, Doc, Docx, itp.

+1

Uwaga: textract używa catdoc do plików '.doc' i nie działa w oknach. – Tracker1

+1

węzeł-biuro nie jest w fazie rozwoju (npm mówi koniec życia), hwile textract jest aktywnie rozwijany od września 2016. – steampowered

3

Proponuję przejrzeć unoconv dla twojej początkowej konwersji, to używa LibreOffice lub OpenOffice dla faktycznej konwersji. Który dodaje trochę narzut.

ja bym konfiguracja kilku pracowników z całej instalacji potrzeb i używać kolejki żądanie/odpowiedź do obsługi konwersji ... (może zajrzeć do kue lub)

Na ogół jest to Obciążenie procesora i ciężkie zadanie, które powinno zostać wyładowane ... Pandoc i inni wyraźnie wymieniają .docx, a nie .doc, więc mogą one, ale nie muszą być również opcjami.


Uwaga: Wiem, że to pytanie jest stare, chciałem tylko przedstawić aktualną odpowiedź dla innych osób.

2

Do parsowania plików pdf można użyć modułu pdf2json węzła

To pozwala na konwertowanie plików PDF do formatu JSON, jak również do surowych danych tekstowych.

2

Inną dobrą opcją, jeśli potrzebujesz tylko konwertować z dokumentów Word jest Mammoth.js.

Mammoth jest przeznaczony do konwersji .docx dokumenty, takie jak te tworzone przez Microsoft Word, i konwertować je do formatu HTML. Mammoth ma na celu wygenerowanie prostego i czystego kodu HTML za pomocą informacji semantycznych w dokumencie i zignorowanie innych szczegółów. Na przykład Mammoth przekształca każdy akapit ze stylem Heading 1 na elementy h1, zamiast , próbując dokładnie skopiować styl (czcionkę, rozmiar tekstu, kolor itp.) Nagłówka.

Istnieje duża rozbieżność pomiędzy strukturą stosowanego przez .docx i struktury HTML , co oznacza, że ​​konwersja jest mało prawdopodobne, aby być idealny dla bardziej skomplikowanych dokumentów. Mammoth działa najlepiej, jeśli używasz tylko stylów do semantycznego oznaczania dokumentu.

2

możesz użyć tekstu w formacie pdf do plików pdf. wyodrębni tekst z pliku pdf do tablicy "fragmentów" tekstu. Przydatny do wykonywania rozmytego analizowania tekstu strukturalnego w formacie pdf.

var pdfText = require('pdf-text') 
var pathToPdf = __dirname + "/info.pdf" 


pdfText(pathToPdf, function(err, chunks) { 
    //chunks is an array of strings 
    //loosely corresponding to text objects within the pdf 
    //for a more concrete example, view the test file in this repo 
}) 

var fs = require('fs') 
var buffer = fs.readFileSync(pathToPdf) 
pdfText(buffer, function(err, chunks) { 
console.log(chunks) 
}) 

dla plików docx, które można używać mamuta, wyodrębni tekst z plików .docx.

var mammoth = require("mammoth"); 

mammoth.extractRawText({path: "./doc.docx"}) 
    .then(function(result){ 
     var text = result.value; // The raw text 
     console.log(text); 
     var messages = result.messages; 
    }) 
    .done(); 

Mam nadzieję, że to pomoże.

0

Oto przykład pokazujący, jak pobrać i wyodrębnić tekst z pliku PDF za pomocą PDF.js:

import _ from 'lodash'; 
import superagent from 'superagent'; 
import pdf from 'pdfjs-dist'; 

const url = 'http://unec.edu.az/application/uploads/2014/12/pdf-sample.pdf'; 

const main = async() => { 
    const response = await superagent.get(url).buffer(); 
    const data = response.body; 
    const doc = await pdf.getDocument({ data }); 
    for (const i of _.range(doc.numPages)) { 
    const page = await doc.getPage(i + 1); 
    const content = await page.getTextContent(); 
    for (const { str } of content.items) { 
     console.log(str); 
    } 
    } 
}; 

main().catch(error => console.error(error)); 
Powiązane problemy