summaryrefslogtreecommitdiff
path: root/doc/language-bindings/python-intro.html
blob: 338ff1e44b1de684ca21e8d14bc44aa624744424 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<html lang="en">
    <head>
        <title>Ghostscript language bindings</title>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
        <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
        <link rel="shortcut icon" href="../images/favicon.svg">
        <link href="css/default.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/default.js"></script>
    </head>

    <body>

        <header><h1></h1><div class="menu-icon" onclick="javascript:showMenu();"></div></header>

        <div id="burger-menu">
            <div class="navigation">
                <div class="title first">Introduction</div>
                <div class="link"><a href="index.html">About our APIs</a></div>
                <div class="link"><a href="demo-code.html">Demo code</a></div>

                <div class="title">C#</div>
                <div class="link"><a href="c-sharp-intro.html">Overview</a></div>
                <div class="link"><a href="c-sharp-ghost-api.html">GhostAPI</a></div>
                <div class="link"><a href="c-sharp-ghost-net.html">GhostNET</a></div>
                <div class="link"><a href="c-sharp-ghost-mono.html">GhostMono</a></div>

                <div class="title">Java</div>
                <div class="link"><a href="java-intro.html">Overview</a></div>
                <div class="link"><a href="java-gsjavajar.html">gsjava.jar</a></div>

                <div class="title">Python</div>
                <div class="link selected"><a href="python-intro.html">Overview</a></div>
                <div class="link"><a href="python-gsapi.html">gsapi.py</a></div>
            </div>
        </div>
        <div class="main">

            <div class="left">
                <div class="title first">Introduction</div>
                <div class="link"><a href="index.html">About our APIs</a></div>
                <div class="link"><a href="demo-code.html">Demo code</a></div>

                <div class="title">C#</div>
                <div class="link"><a href="c-sharp-intro.html">Overview</a></div>
                <div class="link"><a href="c-sharp-ghost-api.html">GhostAPI</a></div>
                <div class="link"><a href="c-sharp-ghost-net.html">GhostNET</a></div>
                <div class="link"><a href="c-sharp-ghost-mono.html">GhostMono</a></div>

                <div class="title">Java</div>
                <div class="link"><a href="java-intro.html">Overview</a></div>
                <div class="link"><a href="java-gsjavajar.html">gsjava.jar</a></div>

                <div class="title">Python</div>
                <div class="link selected"><a href="python-intro.html">Overview</a></div>
                <div class="link"><a href="python-gsapi.html">gsapi.py</a></div>
            </div>

            <div class="middle">

<!-- note: don't tab indent <article> as it has <pre> code which will have its layout adversly affected -->
<article class="markdown-body entry-content"><h1 id="python-overview">Python overview</h1>
<div class="banner">
<div class="python-text"></div>
<div class="vendor-logo python-logo"></div>
</div>

<h2 id="about">About</h2>
<p>The <code>Python</code> API is provided by the file <a href="python-gsapi">gsapi.py</a> - this is the binding to the Ghostscript <code>C</code> library.</p>
<p>In the <a href="https://github.com/ArtifexSoftware/ghostpdl">GhostPDL repository</a> sample <code>Python</code> examples can be found in <code>/demos/python/examples.py</code>.</p>
<h2 id="platform-setup">Platform &amp; setup</h2>
<h3 id="building-ghostscript">Building Ghostscript</h3>
<p>Ghostscript should be built as a shared library for your platform.</p>
<p>See <a href="index.html#building-ghostscript">Building Ghostscript</a>.</p>
<h2 id="specifying-the-ghostscript-shared-library">Specifying the Ghostscript shared library</h2>
<p>Two environmental variables can be used to specify where to find the Ghostscript shared library.</p>
<p><code>GSAPI_LIB</code> sets the exact path of the Ghostscript shared library, otherwise, <code>GSAPI_LIBDIR</code> sets the directory containing the Ghostscript shared library.</p>
<p>If neither is defined we will use the OS's default location(s) for shared libraries.</p>
<p>If <code>GSAPI_LIB</code> is not defined, the leafname of the shared library is inferred
from the OS type - <code>libgs.so</code> on Unix, <code>libgs.dylib</code> on MacOS, <code>gsdll64.dll</code> on Windows 64.</p>
<h2 id="api-test">API test</h2>
<p>The <code>gsapi.py</code> file that provides the <code>Python</code> bindings can also be used to test the bindings, by running it directly.</p>
<p>Assuming that your Ghostscript library has successfully been created, then from the root of your <code>ghostpdl</code> checkout run:</p>
<h4 id="windows">Windows</h4>
<div class="tag shellCommand"> from ghostpdl</div>

<pre><code>// Run gsapi.py as a test script in a cmd.exe window:
set GSAPI_LIBDIR=debugbin&amp;&amp; python ./demos/python/gsapi.py

// Run gsapi.py as a test script in a PowerShell window:
cmd /C "set GSAPI_LIBDIR=debugbin&amp;&amp; python ./demos/python/gsapi.py"</code></pre><h4 id="linux-openbsd-macos">Linux/OpenBSD/MacOS</h4>
<div class="tag shellCommand"> from ghostpdl</div>

<pre><code>// Run gsapi.py as a test script:
GSAPI_LIBDIR=sodebugbin ./demos/python/gsapi.py</code></pre><p>If there are no errors then this will have validated that the Ghostscript library is present &amp; operational.</p>
</article>

            </div> <!-- /middle -->

            <div class="right">
                <div class="link"><a href="#about">About</a></div>
                <div class="link"><a href="#platform-setup">Platform & setup</a></div>
                <div class="sub-link"><a href="#building-ghostscript">Building Ghostscript</a></div>
                <div class="link"><a href="#specifying-the-ghostscript-shared-library">Specifying the Ghostscript shared library</a></div>
                <div class="link"><a href="#api-test">API test</a></div>
            </div>

        </div>

        <footer></footer>

    </body>

</html>