ホームページ  >  記事  >  ウェブフロントエンド  >  Linuxシステムでnode.jsを使用してWordコンテンツを抽出する例の詳細な説明

Linuxシステムでnode.jsを使用してWordコンテンツを抽出する例の詳細な説明

零下一度
零下一度オリジナル
2017-06-19 09:11:011760ブラウズ

この記事では、Linux システムで Word (doc/docx) と PDF テキストを抽出するための node.js の使用方法を主に紹介します。この記事には、参考にして勉強するための詳細なサンプル コードが記載されています。エディターで見てください。

はじめに

全文検索エンジンを構築したい場合は、word/pdf などの文書の内容を抽出する必要があります。 PDF の場合は、xpdf などのオープンソース ソリューションがいくつかあります。

しかし、Word 文書の場合はもう少し複雑です。

PDF テキストコンテンツを抽出

Debian Linux へのインストールは非常に簡単です:

apt-get install xpdf

ここでは pdftotext 関数のみを使用します。ヘルプを表示するには直接入力してください:

root@raspberrypi:/var/www# pdftotext
pdftotext version 0.26.5
Copyright 2005-2014 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdftotext [options] <PDF-file> [<text-file>]
 -f <int>   : first page to convert
 -l <int>   : last page to convert
 -r <fp>   : resolution, in DPI (default is 72)
 -x <int>   : x-coordinate of the crop area top left corner
 -y <int>   : y-coordinate of the crop area top left corner
 -W <int>   : width of crop area in pixels (default is 0)
 -H <int>   : height of crop area in pixels (default is 0)
 -layout   : maintain original physical layout
 -fixed <fp>  : assume fixed-pitch (or tabular) text
 -raw    : keep strings in content stream order
 -htmlmeta   : generate a simple HTML file, including the meta information
 -enc <string>  : output text encoding name
 -listenc   : list available encodings
 -eol <string>  : output end-of-line convention (unix, dos, or mac)
 -nopgbrk   : don&#39;t insert page breaks between pages
 -bbox    : output bounding box for each word and page size to html. Sets -htmlmeta
 -opw <string>  : owner password (for encrypted files)
 -upw <string>  : user password (for encrypted files)
 -q    : don&#39;t print any messages or errors
 -v    : print copyright and version info
 -h    : print usage information
 -help    : print usage information
 --help   : print usage information
 -?    : print usage information

テストしてください:

root@raspberrypi:/var/www# pdftotext onceai.pdf onceai.txt
root@raspberrypi:/var/www# cat onceai.txt 产品介绍 顽石智能科技(上海)有限公司
....

次にノードで使用します。 js child_process はこのコマンドを直接呼び出すことができます。pdftotext はコンテンツをテキスト ファイルに出力しますが、これにはさらにいくつかの操作が必要になる場合があります。具体的なコードは省略します。

antiword を使用して .doc のコンテンツを抽出しますここでは、antiword オープン ソース ソフトウェアを使用して、word2003 の以前のバージョンのコンテンツを抽出します。インストールも非常に簡単です:

apt-get install antiword

ヘルプを表示します。


root@raspberrypi:/var/www# antiword
 Name: antiword
 Purpose: Display MS-Word files
 Author: (C) 1998-2005 Adri van Os
 Version: 0.37 (21 Oct 2005)
 Status: GNU General Public License
 Usage: antiword [switches] wordfile1 [wordfile2 ...]
 Switches: [-f|-t|-a papersize|-p papersize|-x dtd][-m mapping][-w #][-i #][-Ls]
  -f formatted text output
  -t text output (default)
  -a <paper size name> Adobe PDF output
  -p <paper size name> PostScript output
   paper size like: a4, letter or legal
  -x <dtd> XML output
   like: db (DocBook)
  -m <mapping> character mapping file
  -w <width> in characters of text output
  -i <level> image level (PostScript only)
  -L use landscape mode (PostScript only)
  -r Show removed text
  -s Show hidden (by Word) text

antiword は単語の内容をコンソールに直接出力します:

root@raspberrypi:/var/www# antiword spec.doc

SYNC Mobile – Ford APA
Project Number: DFYST
Requirements Specification

このコマンドは、node.js の child_process を使用して呼び出すこともできます。

.docx のコンテンツを解析して抽出します docx ドキュメントの場合、遺伝子自体は zip ファイルです。まず、node.js で解凍し、次に text.docxword を解析するだけです
。 document

.xml ファイルするだけです。

Github には、docx を HTML に解析するライブラリもいくつかあります

:

github.com/mwilliamson/mammoth.js

github.com/lalalic/docx2html

など。

以上がLinuxシステムでnode.jsを使用してWordコンテンツを抽出する例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。