Bonjour à tous,

Suite à mon sujet sur l'avancement d'une tâche (http://www.developpez.net/forums/d14...p-mise-lignne/) que Tyrtamos m'a résolu . Je reviens ici pour demander plus ou moins la même chose.

J'ai commencé par suivre les conseils de Tyrtamos, si une méthode n'a pas de callback disponible alors il faut en ajoutant une en réécrivant la méthode. Ce que je veux faire c'est suivre la progression d'une conversion d'un PDF en image (ici je n'ai qu'une page, monpdf.pdf[0])

J'utilise donc Wand et la class Image de wand.image. Dans mon cas je veux suivre la progression lors de la sauvegarde, donc je regarde ici : https://github.com/dahlia/wand/blob/...image.py#L2269

Je reprend la méthode pour étendre de cette classe (j'ajoute mon paramètre callback à None). Mais le soucis c'est que je ne sais pas quoi faire comme calcul :/ la méthode à l'air pas mal compliqué :/. Pour le coup j'aurais bien tenté de faire un calcul sur le nombre de page mais si j'ai qu'une page à convertir je vais voir la progression de 0 à 100% directement. Et de toute façon il me semble pas que j'ai le nombre de page du document.

Vous auriez une idée pour arriver à ce que je veux ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
class WandImage(Image):
 
    def save(self, file=None, filename=None, callback=None):
        """Saves the image into the ``file`` or ``filename``. It takes
        only one argument at a time.
        :param file: a file object to write to
        :type file: file object
        :param filename: a filename string to write to
        :type filename: :class:`basestring`
        .. versionadded:: 0.1.5
           The ``file`` parameter.
        .. versionadded:: 0.1.1
        """
        if file is None and filename is None:
            raise TypeError('expected an argument')
        elif file is not None and filename is not None:
            raise TypeError('expected only one argument; but two passed')
        elif file is not None:
            if isinstance(file, string_type):
                raise TypeError('file must be a writable file object, '
                                'but {0!r} is a string; did you want '
                                '.save(filename={0!r})?'.format(file))
            elif isinstance(file, file_types) and hasattr(libc, 'fdopen'):
                fd = libc.fdopen(file.fileno(), file.mode)
                if len(self.sequence) > 1:
                    r = library.MagickWriteImagesFile(self.wand, fd)
                else:
                    r = library.MagickWriteImageFile(self.wand, fd)
                libc.fflush(fd)
                if not r:
                    self.raise_exception()
            else:
                if not callable(getattr(file, 'write', None)):
                    raise TypeError('file must be a writable file object, '
                                    'but it does not have write() method: ' +
                                    repr(file))
                file.write(self.make_blob())
        else:
            if not isinstance(filename, string_type):
                raise TypeError('filename must be a string, not ' +
                                repr(filename))
            filename = encode_filename(filename)
            if len(self.sequence) > 1:
                r = library.MagickWriteImages(self.wand, filename, True)
            else:
                r = library.MagickWriteImage(self.wand, filename)
            if not r:
                self.raise_exception()
Merci d'avance.