与ghostscript c-api的接口,包括基于cTypes的高级和低级接口

ghostscript的Python项目详细描述


Author:Hartmut Goebel <h.goebel@crazy-compiler.com>
Version:0.6
License:GNU Public License v3 (GPLv3)
Homepage:https://gitlab.com/pdftools/python-ghostscript

Ghostscript是postscript的著名解释器 语言和pdf格式。这个包实现了 Ghostscript C-API使用ctypes。无论是低级的还是Python的, 提供高级接口。

这个包目前只在gnu/linux下测试。请报告 它是否也适用于你的环境。谢谢。

示例

下面是一个如何使用 python鬼脚本。这实现了一个非常基本的ps2pdf工具:

import sys
import locale
import ghostscript

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

# arguments have to be bytes, encode them
encoding = locale.getpreferredencoding()
args = [a.encode(encoding) for a in args]

ghostscript.Ghostscript(*args)

下面是一个将字符串文档传递给ghostscript的示例:

doc = b"""%!
/Helvetica findfont 20 scalefont setfont
50 50 moveto
(Hello World) show
showpage
quit
"""

import ghostscript

args = b"""test.py
     -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile=/tmp/out.pdf
     -c .setpdfwrite""".split()

with ghostscript.Ghostscript(*args) as gs:
    gs.run_string(doc)

更多示例可以在 分发档案。

要求和安装

Please note:This package is meant for developers. Even if there are some usable examples included, installations instructions are meant for developers.

python ghostscript需要

  • Python2.7或更高版本(使用python 2.7、3.4、3.6和3.6进行测试)
  • setuptools用于安装(见下文)
  • Ghostscript8.x或更高版本(用9.x测试)

安装python ghostscript

既然这个包是为开发人员准备的,我们假设您已经 有安装python包的经验。

python ghostscript列在PyPI (Python Package Index)上,因此 您可以像往常一样使用pip install ghostscript来安装它。拜托 有关更多信息,请参阅pip手册。

或者我下载并解压 python ghostscript来自http://pypi.python.org/pypi/ghostscript和 运行:

python ./setup.py install

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应