Postscript to pdf

Baladjy KICHENASSAMY baladjy at gmail.com
Mon Sep 21 17:20:47 CEST 2015


Hello,
This is my programe : on mac i was able to output ps file but i didn't
got the pdf file :/

# -*- coding: utf-8 -*-
# script lecture_gif.py
from Tkinter import *
import tkMessageBox
import Tkconstants
import tkFileDialog
from PIL import ImageTk
import PIL.Image
import os, sys
import subprocess


def Ouvrir():
    Canevas.delete(ALL) # on efface la zone graphique

    filename = tkFileDialog.askopenfilename(title="Ouvrir une
image",filetypes=[('gif files','.gif'),('all files','.*')])
    print(filename)
    photo = PhotoImage(file=filename)
    gifdict[filename] = photo  # référence
    print(gifdict)

    Canevas.create_image(0,0,anchor=NW,image=photo)
    Canevas.config(height=photo.height(),width=photo.width())

    Mafenetre.title("Image "+str(photo.width())+" x "+str(photo.height()))

def insertimage():
n=tkFileDialog.askopenfilename(filetypes = [("Image Files", ("*.jpg",
"*.gif")),("JPEG",'*.jpg'),("GIF",'*.gif'),('All','*')])
img = PIL.Image.open(n)
img = img.resize((229, 253))
photoimg = ImageTk.PhotoImage(img)
label = Label(image=photoimg)
label.image = photoimg # keep a reference!
Canevas.create_image(65,320,anchor=W,image = photoimg)
def insertsign():
n=tkFileDialog.askopenfilename(filetypes = [("Image Files", ("*.jpg",
"*.gif")),("JPEG",'*.jpg'),("GIF",'*.gif'),('All','*')])
img = PIL.Image.open(n)
img = img.resize((300, 100))
photoimg = ImageTk.PhotoImage(img)
Canevas.create_image(600,500,anchor=W,image = photoimg)
Canvas.pack()

def Fermer():
    Canevas.delete(ALL)
    Mafenetre.title("Image")

def save():
Canevas.update()
Canevas.postscript(file=tkFileDialog.asksaveasfilename(), colormode='color')
subprocess.call(["ps2pdf", "-dEPSCrop", "test.ps", "test.pdf"])

# def convert():
# ps2pdf -dEPSCrop image.ps
# convert -density 300 PASSPORTQUALITE.ps output.png

# class TkFileDialogExample(Tkinter.Frame):
#
#     def __init__(self, root):
#
#         Tkinter.Frame.__init__(self, root)
#         button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}
#         Tkinter.Button(self, text='Save',
command=self.asksaveasfilename).pack(**button_opt)
#
#         self.file_opt = options = {}
#         options['filetypes'] = [('all files', '.*'), ('text files', '.txt')]
#         options['initialfile'] = 'myfile.txt'
#         options['parent'] = root
#
#     def asksaveasfilename(self):
#         filename = tkFileDialog.asksaveasfilename(**self.file_opt)
#
#         if filename:
#             return open(filename, 'w')
#
# if __name__=='__main__':
#     root = Tkinter.Tk()
#     TkFileDialogExample(root).pack()
#     root.mainloop()
def Apropos():
    tkMessageBox.showinfo("A propos","Tutorial")

def Write():
def delete():
e1.delete(0,END)
e2.delete(0,END)
e3.delete(0,END)
e4.delete(0,END)
e5.delete(0,END)
e6.delete(0,END)
Canevas.delete("e1")
def valider():
Canevas.create_text(315,200,anchor=W,text="Surname/Nom",fill='Black',font='Arial
14')
Canevas.create_text(315,220,anchor=W,text=e1.get(),fill='Black',font='Arial
30',tags ="e1")
Canevas.create_text(315,250,anchor=W,text="Given
name/Prénom",fill='Black',font='Arial 14')
Canevas.create_text(315,270,anchor=W,text=e2.get(),fill='Black',font='Arial
30',tags ="e1")
Canevas.create_text(315,300,anchor=W,text="Fonction/Function",fill='Black',font='Arial
14')
Canevas.create_text(315,320,anchor=W,text=e3.get(),fill='Black',font='Arial
30',tags ="e1")
Canevas.create_text(470,395,anchor=W,text=e4.get(),fill='Black',font='Arial
30',tags ="e1")
Canevas.create_text(500,438,anchor=W,text=e5.get(),fill='Black',font='Arial
30',tags ="e1")
Canevas.create_text(228,503,anchor=W,text=e6.get(),fill='Black',font='Arial
30',tags ="e1")
master = Tk()
Label(master, text="Surname/Nom").grid(row=0)
Label(master, text="Given name/Prénom").grid(row=1)
Label(master, text="Fonction/Function").grid(row=2)
Label(master, text="Validity Date").grid(row=3)
Label(master, text="Chef").grid(row=4)
Label(master, text="Student number").grid(row=5)
e1 = Entry(master)
e2 = Entry(master)
e3 = Entry(master)
e4 = Entry(master)
e5 = Entry(master)
e6 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
e3.grid(row=2, column=1)
e4.grid(row=3, column=1)
e5.grid(row=4, column=1)
e6.grid(row=5, column=1)
Button(master, text='Ok', command=valider).grid(row=2, column=2,
sticky=W, pady=4)
Button(master, text='Delete', command=delete).grid(row=3, column=2,
sticky=W, pady=4)
mainloop( )

# Main window
Mafenetre = Tk()
Mafenetre.title("Image")

# Création d'un widget Menu
menubar = Menu(Mafenetre)

menufichier = Menu(menubar,tearoff=0)
menufichier.add_command(label="Open mask",command=Ouvrir)
menufichier.add_command(label="Save mask",command=save)
#menufichier.add_command(label="Convert pdf",command=convert)
menufichier.add_command(label="Close mask",command=Fermer)
menufichier.add_command(label="Quit",command=Mafenetre.destroy)
menubar.add_cascade(label="File", menu=menufichier)

menuwrite = Menu(menubar,tearoff=0)
menuwrite.add_command(label="Insert informations",command=Write)
menuwrite.add_command(label="Insert image",command=insertimage)
menuwrite.add_command(label="Insert signature",command=insertsign)
menubar.add_cascade(label="Informations", menu=menuwrite)


menuaide = Menu(menubar,tearoff=0)
menuaide.add_command(label="A propos",command=Apropos)
menubar.add_cascade(label="Aide", menu=menuaide)

# Affichage du menu
Mafenetre.config(menu=menubar)

# Création d'un widget Canvas
Canevas = Canvas(Mafenetre)
Canevas.pack(padx=5,pady=5)

# Utilisation d'un dictionnaire pour conserver une référence
gifdict={}

Mafenetre.mainloop()

2015-09-21 0:50 GMT+02:00 Laura Creighton <lac at openend.se>:
> In a message of Sun, 20 Sep 2015 23:11:20 +0200, Baladjy KICHENASSAMY writes:
>>well one more question :/
>>
>>i tried this
>>
>>def save():
>>     Canevas.update()
>>     Canevas.postscript(file=tkFileDialog.asksaveasfilename(),
>>colormode='color')
>>     subprocess.call(["ps2pdf", "-dEPSCrop", "test.ps", "test.pdf"])
>>
>>
>>i got the ps file but i didn't get the pdf file :/
>
> It's 00:41 here in Sweden, and I have an 08:00 meeting.  I am off to bed.
> Perhaps somebody else can help now, otherwise I will be back
> tomorrow.
>
> I've never tried to get subprocess to run as part of a savefile dialog.
> Try building a tkinter app that takes a filename argument (somepostscript
> file you have lying around) and then push the button, in the same dir
> makes a pdf of your ps using subprocess.
>
> If that works, then see about getting save to run that subprocess as
> part of the save process.  I am very curious about whether that can
> be done -- but first check that your subprocess is working, period.
> The wretched thing is slightly different between windows and linux,
> and even between different linuxes, so needing to fiddle a bit here is
> normal (and frustrating).
>
> So right now I cannot tell if your problem is 'save doesn't like
> it like that' or 'your subprocess isn't working'.
>
> But nothing in Tkinter likes 'Canevas' -- (which is great French
> but rotten English) you must have written Canvas in your code.
>
> Paste the real thing in next time, ok?
>
> Sorry I am off now,
> Laura



-- 
KICHENASSAMY Baladjy
Ingénieur en Génie Mécanique
Spécialiste Contrôle Non Destructif et Qualification des procédés spéciaux
COSAC CND Niveau 2 RT et PT
Aircelle SAFRAN
Tel:06.03.72.53.12


More information about the Python-list mailing list