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
|
#! /usr/bin/env python
#
# * example_11.c: sample gnome-print code
# *
# * This program is free software; you can redistribute it and/or
# * modify it under the terms of the GNU Library General Public License
# * as published by the Free Software Foundation; either version 2 of
# * the License, or (at your option) any later version.
# *
# * This program is distributed in the hope that it will be useful,
# * but WITHOUT ANY WARRANTY; without even the implied warranty of
# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# * GNU Library General Public License for more details.
# *
# * You should have received a copy of the GNU Library General Public
# * License along with this program; if not, write to the Free Software
# * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
# *
# * Authors:
# * Chema Celorio <chema@ximian.com>
# * Chris Lahey <clahey@ximian.com>
# Python conversion:
# Gustavo J. A. M. Carneiro <gustavo@users.sf.net>
# *
# * Copyright (C) 2002, 2003 Ximian Inc. and authors
# *
# */
#/*
# * See README
# */
import pygtk; pygtk.require("2.0")
import gnomeprint, gnomeprint.ui
TEMP_FILE = "temp.ps"
format = "%%! PS-Adobe-3.0 \n"\
"1 setlinewidth\n"\
"newpath\n"\
"100 100 moveto\n"\
"600 600 lineto\n"\
"stroke\n"\
"/Helvetica findfont\n"\
"24 scalefont setfont\n"\
"100 230 moveto\n"\
"(My page size is %fx%f) show\n"\
"showpage";
def my_print(job, preview):
file_ = file(TEMP_FILE, "w")
config = job.get_config()
width, height = gnomeprint.job_get_page_size_from_config(config)
output = format % (width, height)
file_.write(output)
# this is marked with GNOME_PRINT_UNSTABLE_API in the public headers
# OK. So this example becomes useless, I know.
#job.set_file(TEMP_FILE)
if not preview:
job.print_()
else:
gnomeprint.ui.JobPreview(job, "Title goes here").show()
job = gnomeprint.Job(gnomeprint.config_default())
dialog = gnomeprint.ui.Dialog(job, "Sample print dialog", 0)
# Run the dialog
response = dialog.run()
dialog.destroy()
if response == gnomeprint.ui.DIALOG_RESPONSE_PRINT:
my_print(job, False)
elif response == gnomeprint.ui.DIALOG_RESPONSE_PREVIEW:
my_print(job, True)
|