2012-01-27 17 views

risposta

8

È possibile convertire facilmente uno in un altro, o utilizzare ad esempio un .doc modello per generare un file .pdf, ma probabilmente vorrai utilizzare un servizio web esistente per questa attività.

Questo può essere fatto utilizzando i servizi di Livedocx ad esempio

Per utilizzare questo servizio dal nodo, vedere node-livedocx (Disclaimer: io sono l'autore di questo modulo nodo)

+0

va bene, questo è stretto figlio. Ben fatto. – Alan

7

Sembra che ce ne siano alcuni per il pdf, ma non ne ho trovato nessuno per Word.

L'elaborazione legata alla CPU come quella non è realmente il punto di forza del nodo in ogni caso (cioè non si ottengono ulteriori vantaggi utilizzando il nodo per farlo su qualsiasi altra lingua). Un approccio pragmatico sarebbe quello di trovare uno strumento valido e utilizzarlo dal nodo.

ho sentito parlare bene di tutto l'ufficio su docsplit http://documentcloud.github.com/docsplit/

Anche se non è il nodo, si potrebbe facilmente richiamarlo dal nodo con http://nodejs.org/docs/latest/api/all.html#child_process.exec

+0

Il vantaggio di una soluzione di pura JS è che è portatile tra il browser e il Nodo – sdgfsdh

11

textract è un grande lib che supporta PDF, Doc, Docx, ecc.

+1

Nota: textract utilizza catdoc per i file '.doc' e non funziona in Windows. – Tracker1

+1

node-office non è in sviluppo attivo (npm dice end of life), hwile textract viene attivamente sviluppato a partire da settembre 2016. – steampowered

3

Suggerirei di esaminare unoconv per la conversione iniziale, questo utilizza LibreOffice o OpenOffice per la conversione effettiva. Che aggiunge un po 'di spese generali.

sarei messa a punto alcuni operai con tutta la messa a punto di prima necessità, e utilizzare una coda di richiesta/risposta per la gestione della conversione ... (potrebbe voler guardare in kue o)

In generale si tratta di un Compito legato alla CPU e attività pesante che dovrebbero essere scaricate ... Pandoc e altri menzionano specificamente .docx, non .doc in modo che possano o meno essere opzioni pure.


Nota: So che questa domanda è vecchio, solo voluto fornire una risposta in corso per gli altri a venire in questo.

2

per analizzare file PDF, è possibile utilizzare il modulo pdf2json nodo

Esso consente di convertire i file pdf a JSON e per i dati di testo grezzi.

2

Un'altra buona opzione se è necessario convertire solo da documenti di Word è Mammoth.js.

Mammoth è progettato per convertire i documenti .docx, come quelli creati da Microsoft Word, e li converte in HTML. Mammoth mira a produrre HTML semplice e pulito utilizzando le informazioni semantiche nel documento, e ignorando altri dettagli. Ad esempio, Mammoth converte qualsiasi paragrafo con lo stile Titolo da 1 a elementi h1, invece di tentando di copiare esattamente lo stile (carattere, dimensione del testo, colore, ecc.) dell'intestazione.

C'è una grande discrepanza tra la struttura utilizzata da .docx e la struttura di HTML, il che significa che la conversione è improbabile che sia perfetta per documenti più complicati. Mammoth funziona meglio se si utilizza solo gli stili per contrassegnare semanticamente il documento.

2

è possibile utilizzare il testo PDF per i file PDF. estrarrà il testo da un pdf in una serie di "blocchi" di testo. Utile per eseguire l'analisi fuzzy su testo strutturato in 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) 
}) 

per file docx è possibile utilizzare mammoth, estrarrà testo da file .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(); 

Spero che questo possa essere d'aiuto.

0

Ecco un esempio che mostra come scaricare ed estrarre il testo da un file PDF utilizzando 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)); 
Problemi correlati