CERN Accélérateur de science

Stamping fulltextes

The WebSubmit File Stamper library (websubmit_file_stamper.py) let you stamps your PDFs.

Python API

def stamp_file(options):
    """The driver for the stamping process. This is effectively the function
       that is responsible for coordinating the stamping of a file.
       @param options: (dictionary) - a dictionary of options that are required
        by the function in order to carry out the stamping process.

        The dictionary must have the following structure:
           + latex-template: (string) - the path to the LaTeX template to be
              used for the creation of the stamp itself;
           + latex-template-var: (dictionary) - This dictionary contains
              variables that should be sought in the LaTeX template file, and
              the values that should be substituted in their place. E.g.:
                    { "TITLE" : "An Introduction to Invenio" }
           + input-file: (string) - the path to the input file (i.e. that
              which is to be stamped;
           + output-file: (string) - the name of the stamped file that should
              be created by the program. This is optional - if not provided,
              a default name will be applied to a file instead;
           + stamp: (string) - the type of stamp that is to be applied to the
              input file. It must take one of 3 values:
                    - "first": Stamp only the first page of the document;
                    - "all": Apply the stamp to all pages of the document;
                    - "coverpage": Add a "cover page" to the document;
           + layer: (string) - the position of the stamp in the layers of the
              file. Is one of the following values:
                    - "background": stamp applied to the background layer;
                    - "foreground": stamp applied to the foreground layer;
           + verbosity: (integer) - the verbosity level under which the program
              is to run;
           + skip-metadata: (boolean) - whether to skip copying the metadata
              or not;
        So, an example of the returned dictionary would be something like:
              { 'latex-template'      : "demo-stamp-left.tex",
                'latex-template-var'  : { "REPORTNUMBER" : "TEST-2008-001",
                                          "DATE"         : "15/02/2008",
                                        },
                'input-file'          : "test-doc.pdf",
                'output-file'         : "",
                'stamp'               : "first",
                'layer'               : "background",
                'verbosity'           : 0,
                'skip-metadata'       : False,
              }

       @return: (tuple) - consisting of two strings:
          1. the path to the working directory in which all stamping-related
              files are stored;
          2. The name of the "stamped" file;
       @Exceptions raised: (InvenioWebSubmitFileStamperError) exceptions may
        be raised or propagated by this function when the stamping process
        fails for one reason or another.
    """

See websubmit_file_stamper API for a complete API description.