From 74fa77e936d88a82fbb6b625beae49287b8653e9 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 25 Jun 2018 23:22:32 +0200 Subject: gnu: Add docx2txt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/textutils.scm (docx2txt): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/textutils.scm | 66 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 5734bf62d6..5dec41428b 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2017 Alex Vong ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -675,3 +676,68 @@ (define-public go-github.com-mattn-go-runewidth measuring and checking the width of strings, with support east asian text.") (home-page "https://github.com/jessevdk/go-flags") (license license:expat))) + +(define-public docx2txt + (package + (name "docx2txt") + (version "1.4") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/docx2txt/docx2txt/v" + version "/docx2txt-" version ".tgz")) + (sha256 + (base32 + "06vdikjvpj6qdb41d8wzfnyj44jpnknmlgbhbr1w215420lpb5xj")))) + (build-system gnu-build-system) + (inputs + `(("unzip" ,unzip) + ("perl" ,perl))) + (arguments + `(#:tests? #f ; No tests. + #:make-flags (list (string-append "BINDIR=" + (assoc-ref %outputs "out") "/bin") + (string-append "CONFIGDIR=" + (assoc-ref %outputs "out") "/etc") + ;; Makefile seems to be a bit dumb at guessing. + (string-append "INSTALL=install") + (string-append "PERL=perl")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'fix-install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (config (string-append out "/etc/docx2txt.config")) + (unzip (assoc-ref inputs "unzip"))) + ;; According to INSTALL, the .sh wrapper can be skipped. + (delete-file (string-append bin "/docx2txt.sh")) + (rename-file (string-append bin "/docx2txt.pl") + (string-append bin "/docx2txt")) + (substitute* config + (("config_unzip => '/usr/bin/unzip',") + (string-append "config_unzip => '" + unzip + "/bin/unzip',"))) + ;; Makefile is wrong. + (chmod config #o644))))))) + (synopsis "Recover text from @file{.docx} files, with good formatting") + (description + "@command{docx2txt} is a Perl based command line utility to convert +Microsoft Office @file{.docx} documents to equivalent text documents. Latest +version supports following features during text extraction. + +@itemize +@item Character conversions; currency characters are converted to respective +names like Euro. +@item Capitalisation of text blocks. +@item Center and right justification of text fitting in a line of +(configurable) 80 columns. +@item Horizontal ruler, line breaks, paragraphs separation, tabs. +@item Indicating hyperlinked text along with the hyperlink (configurable). +@item Handling (bullet, decimal, letter, roman) lists along with (attempt at) +indentation. +@end itemize\n") + (home-page "http://docx2txt.sourceforge.net") + (license license:gpl3+))) -- cgit v1.2.3