nautilus-scripts : compression de PDF
[progfou.git] / nautilus-scripts / Conversion PDF vers texte
index 4a0cbfd..910f22a 100755 (executable)
@@ -6,20 +6,28 @@
 # Created: 2014-01-31
 # Debian-Depends: python (>= 2.6), poppler-utils (pdftotext)
 import sys
+import os
+import os.path
 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)
+    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]
-    file(filename + '.txt', 'wt').write(output)
-    os.chdir(olddir)
+    file(out_filename, 'wt').write(output)
+    if newdir:
+        os.chdir(olddir)
 
 sys.exit(0)