couleur de fond d'evince

Avell Diroll avelldiroll at gmail.com
Sam 30 Jan 09:25:38 UTC 2010


Avell Diroll wrote:
(...)
> Pour ceux qui ne peuvent pas faire tourner compiz ou qui le trouve trop 
> lourd, voici un petit script qui permet de réaliser une copie d'un 
> document pdf en changeant la couleur du fond (par défaut en gris).
(...)

Quelques corrections après une seconde lecture ...

##############pdf_background.py############################
#!/usr/bin/env python

# This script require:
# *python: http://python.org/
# *PIL: http://www.pythonware.com/products/pil/
# *pyPDF: http://pybrary.net/pyPdf/

# pdf_background.py
# Copyright (c) 2010 Avell Diroll <avelldirolll at gmail.com>

"""pdf_background.py
This is a quick and dirty script to change the background colour of pdf 
files"""

__author__ =    "Avell Diroll <avelldirolll at gmail.com>"
__version__ =   "0.2"
__date__ =      "2010-01-29"
__copyright__ = "Copyright (c) 2010 %s. All rights reserved." % __author__
__licence__ =   "BSD"


from PIL import Image
from pyPdf import PdfFileWriter, PdfFileReader
from optparse import OptionParser
import sys
import tempfile


def change_background(input_file, output_file, background_colour):
     """add a coloured background to input_file and save it to 
output_file"""

     original = PdfFileReader(open(input_file))
     output = PdfFileWriter()

     for page_number in range(original.getNumPages()):
         page_width, page_height = 
original.getPage(page_number)['/MediaBox'][2:4]
         page_width = int(round(page_width))
         page_height = int(round(page_height))

         background_file = tempfile.NamedTemporaryFile()
         background = Image.new("RGB", (page_width, page_height), 
background_colour)
         background.save(background_file, "PDF")

         current_page = original.getPage(page_number)
         background_page = PdfFileReader(background_file)
         page = background_page.getPage(0)
         page.mergePage(current_page)
         output.addPage(page)

     output_stream = open(output_file, "wb")
     output.write(output_stream)
     output_stream.close()


def main():
     """Parse command line and launch process"""

     # create the options we want to parse
     usage = "\n%%prog [options] pdf_file \n\n%s" %__doc__
     version="%%prog %s %s" %(__version__, __date__)
     optParser = OptionParser(usage=usage, version=version)
     optParser.add_option("-c", "--colour", type="string",
           dest="background_colour",
           default="#aaaaaa", metavar="#aaaaaa",
           help="background colour - hexadecimal RGB value")
     optParser.add_option("-s", "--suffix", type="string", dest="suffix",
           default="-with-bg",
           help="Suffix to append at the end of the output filename, "
           "default: -with-bg")
     (options, args) = optParser.parse_args()

     # check that they passed in atleast one file to process
     if len(args) != 1:
         optParser.error("Process one file at a time\n")

     input_file = args[0]
     output_file = args[0][:-4] + options.suffix + ".pdf"
     background_colour = options.background_colour

     change_background(input_file, output_file, background_colour)
     return 0


if __name__ == '__main__':
     sys.exit(main())





Plus d'informations sur la liste de diffusion ubuntu-fr