Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2013 21:40:34

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

конвертация в pdf

не пойму, почему , если по отдельности работают функции по конвертации(в разных скриптах) , то все нормально, если ,как здесь, вместе , то word документы отрабатывает нормально , а image , на время тормозит

# -*- coding: utf-8 -*-
from TkinterDnD2 import *
from Tkinter import *
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, flowables
import os.path
import os
import win32com.client
root = TkinterDnD.Tk()
wdFormatPDF = 17
st=str()
def word(filename):#word2pdf
        
        in_file = os.path.abspath(st)
        out_file = os.path.abspath(filename)
        word = win32com.client.Dispatch('Word.Application')
        doc = word.Documents.Open(st)
        doc.SaveAs(out_file, FileFormat=wdFormatPDF)
        doc.Close()
        word.Quit()
        
def drawPageFrame(canvas, doc):
        
        width, height = letter
        canvas.saveState()
        canvas.drawImage(
        st, 0, 0, height, width,
        preserveAspectRatio=True, anchor='c')
        canvas.restoreState()
def jpg2pdf(filename):#image2pdf
        
        width, height = letter
        # To make it landscape, pagesize is reversed
        # You can modify the code to add PDF metadata if you want
        doc = SimpleDocTemplate(filename, pagesize=(height, width))
        elem = []
        elem.append(flowables.Macro('canvas.saveState()'))
        elem.append(flowables.Macro('canvas.restoreState()'))
        doc.build(elem, onFirstPage=drawPageFrame)
       
class gui:
                
        def drop(self,event):
                global st
                x,y=event.x_root-root.winfo_rootx(),event.y_root-root.winfo_rootx()
                self.canvas.create_text(x,y,text=str(event.data))
                
                try:
                    files = event.data.split()
                    for f in files:
                        
                        st=str(f)
                        
                        st = st.decode('utf-8').encode('cp1251')
                        
                        (dirName, fileName) = os.path.split(st)
                        (fileBaseName, fileExtension)=os.path.splitext(fileName)
                        print fileExtension
                        ex=['.png','.jpeg']
                        for i in ex:
                                if i in fileExtension :
                                        jpg2pdf(dirName+'\\'+fileBaseName+'.pdf')#image2pdf
                  
                                else  :
                                        word(dirName+'\\'+fileBaseName+'.pdf')#word2pdf
                                
                        
                except Exception as e:
                    
                    self.canvas.create_text(x,y,text=str(e.message))
                    print e.message
        def __init__(self):
                self.canvas=Canvas(root,width=300,height=200) 
                self.canvas.pack()
                self.canvas.drop_target_register('*') 
                self.canvas.dnd_bind('<<Drop>>', self.drop)
              
a=gui()
root.mainloop()

Офлайн

#2 Окт. 20, 2013 01:44:08

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

конвертация в pdf

Послушайте. А для Вас принципиально, чтобы это все было в pdf по итогу?



Офлайн

#3 Окт. 20, 2013 07:20:52

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

конвертация в pdf

4kpt
Послушайте. А для Вас принципиально, чтобы это все было в pdf по итогу?
для скорости работы-да
вообще я сделал две отдельные программки, работают нормально, вкупе работать или не хотят или тормозит, если очередность как здесь, функций

Офлайн

#4 Окт. 20, 2013 11:21:46

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

конвертация в pdf

переделал очередность функций…перестал глючить…o_0

                        ex=['.png','.jpeg']
                        ux=['.doc','.docx']
                        for i in ux:
                                if i in fileExtension :
                                        word(dirName+'\\'+fileBaseName+'.pdf')#word2pdf
                                        #jpg2pdf(dirName+'\\'+fileBaseName+'.pdf')#image2pdf
                  
                                else  :
                                        #word(dirName+'\\'+fileBaseName+'.pdf')#word2pdf
                                        jpg2pdf(dirName+'\\'+fileBaseName+'.pdf')#image2pdf
                                

Офлайн

#5 Окт. 20, 2013 17:27:54

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

конвертация в pdf

Для какой скорости? Вы меряли и сравнивали? С чем?

Вы понимаете, что Вы лишаете пользователя возможности редактировать результат. Если Вы пишите ПО под заказ, то Вас будут смыкать по всякому поводу и без. Вылезла там линия за контур - звонок. Цена ушла влево - звонок. Товарный знак сместился на два миллиметра и заркыл первую букву названия - опять трезвонят. А это документы. Их печатать как попало не комильфо для фирмы. Заказчик был бы уже и сам рад это все одним движением подтянуть-расспечатать, и подождать, пока Вы все подпилите, но у него такой возможности нет. Кроме того существует тонны механизмов перегонки документа в pdf. Вы можете сформировать для себя площадку для последующего отступления, так сказать. Сейчас жмем в pdf, а потом можем отказаться от пережимки и вот Вам кошерный документ.

P.S. Я только привел доводы из своей повседневной практики. Делать или не делать - смотрите сами…



Отредактировано 4kpt (Окт. 20, 2013 17:29:59)

Офлайн

#6 Окт. 20, 2013 18:01:42

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

конвертация в pdf

по сравнению, допустим в отдельной программе, фото перегоняется в пдф быстро, в прошлом коде , где и дос и пдф, фото перегонялось дольше в разы, плюс еще и рабочий стол становился не кликабельным,а сейчас нормально, плюс приделал еще и excel в пдф
править не требуется, просто отправка на ресурс файлов требует файлы в pdf , другие не принимает , это так сказать просто отчеты

Офлайн

#7 Окт. 20, 2013 18:04:04

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

конвертация в pdf

Я где-то говорил про doc? Глянуть бы скорость в .odf :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version