nautilus-scripts : compression de PDF
[progfou.git] / nautilus-scripts / Conversion PDF vers texte
index 15673a2..910f22a 100755 (executable)
@@ -1,21 +1,33 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-# Debian-Depends: poppler-utils (pdftotext)
+# Copyright © 2014 AUF
+# Licence: GPL-2
+# Author: Progfou <jean-christophe.andre@auf.org>
+# Created: 2014-01-31
+# Debian-Depends: python (>= 2.6), poppler-utils (pdftotext)
 import sys
 import sys
+import os
+import os.path
 from subprocess import Popen, PIPE
 
 from subprocess import Popen, PIPE
 
-if len(sys.argv) < 2:
-    sys.exit(0)
-
-for filename in sys.argv[1:]:
-    olddir = os.getcwd()
-    os.chdir(os.path.dirname(filename))
+for filename in os.getenv("NAUTILUS_SCRIPT_SELECTED_FILE_PATHS", "").split("\n"):
+    newdir = os.path.dirname(filename)
+    if newdir:
+        olddir = os.getcwd()
+        os.chdir(newdir)
     filename = os.path.basename(filename)
     filename = os.path.basename(filename)
+    root, ext = os.path.splitext(filename)
+    # FIXME: vérifier plutôt le type MIME
+    if ext.lower() != ".pdf":
+        continue
+    # conversion
+    out_filename = root + ".txt"
     p1 = Popen(["/usr/bin/pdftotext", filename, "-"], stdout=PIPE)
     p2 = Popen(["/bin/sed", "-e", "s|\t\r  | |g;s|-­‐|–|g;s| \+| |g"], stdin=p1.stdout, stdout=PIPE)
     p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
     output = p2.communicate()[0]
     p1 = Popen(["/usr/bin/pdftotext", filename, "-"], stdout=PIPE)
     p2 = Popen(["/bin/sed", "-e", "s|\t\r  | |g;s|-­‐|–|g;s| \+| |g"], stdin=p1.stdout, stdout=PIPE)
     p1.stdout.close() # Allow p1 to receive a SIGPIPE if p2 exits.
     output = p2.communicate()[0]
-    file(filename + '.txt', 'wt').write(output)
-    os.chdir(olddir)
+    file(out_filename, 'wt').write(output)
+    if newdir:
+        os.chdir(olddir)
 
 sys.exit(0)
 
 sys.exit(0)