X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=bin%2Ftools%2Fpdf_utils.py;h=d47a366d57976a8c962e98d6598b728f1ee2789f;hb=bdef22db72dc40ab328057ff8626ab366f71eed0;hp=4782e544429bc22cac41bb8f4426882ec03ca752;hpb=548d0931f0c533fedaa81ab2128ead490b40088b;p=odoo%2Fodoo.git diff --git a/bin/tools/pdf_utils.py b/bin/tools/pdf_utils.py index 4782e54..d47a366 100644 --- a/bin/tools/pdf_utils.py +++ b/bin/tools/pdf_utils.py @@ -33,8 +33,10 @@ without flatten, one could further edit the resulting form. with flatten, everything is turned into text. """ +from future import with_statement + import os -import netsvc,logging +import tempfile HEAD="""%FDF-1.2 @@ -91,14 +93,30 @@ def write_fields(out, fields): def extract_keys_from_pdf(filename): # what about using 'pdftk filename dump_data_fields' and parsing the output ? - os.system('pdftk %s generate_fdf output /tmp/toto.fdf' % filename) - lines = file('/tmp/toto.fdf').readlines() + tmp_file = tempfile.mkstemp(".fdf")[1] + try: + os.system('pdftk %s generate_fdf output \"%s\"' % (filename, tmp_file)) + with open(tmp_file, "r") as ofile: + lines = ofile.readlines() + finally: + try: + os.remove(tmp_file) + except Exception: + pass # nothing to do return extract_keys(lines) def fill_pdf(infile, outfile, fields): - write_fields(file('/tmp/toto.fdf', 'w'), fields) - os.system('pdftk %s fill_form /tmp/toto.fdf output %s flatten' % (infile, outfile)) + tmp_file = tempfile.mkstemp(".fdf")[1] + try: + with open(tmp_file, "w") as ofile: + write_fields(ofile, fields) + os.system('pdftk %s fill_form \"%s\" output %s flatten' % (infile, tmp_file, outfile)) + finally: + try: + os.remove(tmp_file) + except Exception: + pass # nothing to do def testfill_pdf(infile, outfile): keys = extract_keys_from_pdf(infile)