From: Hartmut Goebel on
Announcing:

python-ghostscript 0.3

A Python-Interface to the Ghostscript
C-API using ctypes

:Copyright: GNU Public License v3 (GPLv3)
:Author: Hartmut Goebel <h.goebel(a)crazy-compiler.com>
:Homepage: http://bitbucket.org/htgoebel/python-ghostscript
:Download: http://pypi.python.org/pypi/ghostscript

`Ghostscript`__, is a well known interpreter for the PostScript
language and for PDF. This package implements a interface to the
Ghostscript C-API using `ctypes`__. Both a low-level and a pythonic,
high-level interface are provided.

__ http://www.ghostscript.com/
__ http://docs.python.org/library/ctypes.html

This package is currently tested only under GNU/Linux. Please report
whether it works in your environment, too. Thanks.


Latest Changes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:0.3 (2010-08-12):

* Added support for win32: The DLL to load is searched in registry.

* On other platforms: Be more inteligent about finding Ghostscript
shared object file (fall back to ctypes.util.find_library() if
`libgs.8.so` can not be loaded

* Better error messages if lib/dll is not found.

* Removed relative imports, so older versions of Python can be used.

* Added nice project logo

:0.2 (2010-08-06):

* Fixed several bugs, esp. for running strings by Ghostscript.


Example
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Here is an example for how to use the high-level interface of
`python-ghostscript`. This implements a very basic ps2pdf-tool::

import sys
import ghostscript

args = [
"ps2pdf", # actual value doesn't matter
"-dNOPAUSE", "-dBATCH", "-dSAFER",
"-sDEVICE=pdfwrite",
"-sOutputFile=" + sys.argv[1],
"-c", ".setpdfwrite",
"-f", sys.argv[2]
]

ghostscript.Ghostscript(*args)

--
Regards
Hartmut Goebel

| Hartmut Goebel | h.goebel(a)crazy-compilers.com |
| www.crazy-compilers.com | compilers which you thought are impossible |
From: Peter Kleiweg on
Hartmut Goebel schreef op de 12e dag van de oogstmaand van het jaar 2010:

> Here is an example for how to use the high-level interface of
> `python-ghostscript`. This implements a very basic ps2pdf-tool::
>
> import sys
> import ghostscript
>
> args = [
> "ps2pdf", # actual value doesn't matter
> "-dNOPAUSE", "-dBATCH", "-dSAFER",
> "-sDEVICE=pdfwrite",
> "-sOutputFile=" + sys.argv[1],
> "-c", ".setpdfwrite",
> "-f", sys.argv[2]
> ]
>
> ghostscript.Ghostscript(*args)

How is this different from os.system(' '.join(args)) ?



--
Peter Kleiweg L:NL,af,da,de,en,ia,nds,no,sv,(fr,it) S:NL,de,en,(da,ia)
info: http://www.let.rug.nl/kleiweg/ls.html
From: Aahz on
In article <alpine.DEB.1.10.1008121733280.3749(a)localhost>,
Peter Kleiweg <p.c.j.kleiweg(a)rug.nl> wrote:
>Hartmut Goebel schreef op de 12e dag van de oogstmaand van het jaar 2010:
>
>> Here is an example for how to use the high-level interface of
>> `python-ghostscript`. This implements a very basic ps2pdf-tool::
>>
>> import sys
>> import ghostscript
>>
>> args = [
>> "ps2pdf", # actual value doesn't matter
>> "-dNOPAUSE", "-dBATCH", "-dSAFER",
>> "-sDEVICE=pdfwrite",
>> "-sOutputFile=" + sys.argv[1],
>> "-c", ".setpdfwrite",
>> "-f", sys.argv[2]
>> ]
>>
>> ghostscript.Ghostscript(*args)
>
>How is this different from os.system(' '.join(args)) ?

You don't have problems with shell metacharacters.
--
Aahz (aahz(a)pythoncraft.com) <*> http://www.pythoncraft.com/

"...if I were on life-support, I'd rather have it run by a Gameboy than a
Windows box." --Cliff Wells
From: Peter Kleiweg on
Aahz schreef op de 12e dag van de oogstmaand van het jaar 2010:

> In article <alpine.DEB.1.10.1008121733280.3749(a)localhost>,
> Peter Kleiweg <p.c.j.kleiweg(a)rug.nl> wrote:
> >Hartmut Goebel schreef op de 12e dag van de oogstmaand van het jaar 2010:
> >
> >> Here is an example for how to use the high-level interface of
> >> `python-ghostscript`. This implements a very basic ps2pdf-tool::
> >>
> >> import sys
> >> import ghostscript
> >>
> >> args = [
> >> "ps2pdf", # actual value doesn't matter
> >> "-dNOPAUSE", "-dBATCH", "-dSAFER",
> >> "-sDEVICE=pdfwrite",
> >> "-sOutputFile=" + sys.argv[1],
> >> "-c", ".setpdfwrite",
> >> "-f", sys.argv[2]
> >> ]
> >>
> >> ghostscript.Ghostscript(*args)
> >
> >How is this different from os.system(' '.join(args)) ?
>
> You don't have problems with shell metacharacters.

Then use os.spawnv(os.P_WAIT, args[0], args)



--
Peter Kleiweg L:NL,af,da,de,en,ia,nds,no,sv,(fr,it) S:NL,de,en,(da,ia)
info: http://www.let.rug.nl/kleiweg/ls.html