IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

[PDFminer] conversion d'un pdf en html


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Par défaut [PDFminer] conversion d'un pdf en html
    Bonjour,
    Dans le cadre de mon stage je dois parser du pdf pour le transformer en html.
    M'étant un peu perdue sur le forum en cherchant une réponse je me permets d'ouvrir ce topic.
    Ne pouvant pas installer le module pdf2text sur les pc du labo j'ai trouvé deux programmes possibles pour contourner l'obstacle mais je n'arrive pas à trouver les erreurs pour que cela fonctionne.
    le premier dont j'ai corrigé pas mal d'erreurs
    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
    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
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    #from Interfaces.IReader import IReader
    #import pdfminer
    from pdfminer.pdfparser import PDFParser, PDFDocument
    #from pdfminer.pdfdocument import PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter#, process_pdf
    #process_page est une fonction, peut-on l'importer sur la même ligne des classes
    # from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, process_page
    # from pdfminer.pdfinterp.PDFPageInterpreter import process_page
    from pdfminer.pdfdevice import PDFDevice, TagExtractor
    #from pdfminer.pdfpage import PDFPage
    from pdfminer.converter import XMLConverter, HTMLConverter, TextConverter
    from pdfminer.cmapdb import CMapDB
    from pdfminer.layout import LAParams
    import getopt
    import unicodedata, codecs
    from io import StringIO
     
    class PdfReader(object):
    	"""
            classe pour transformer les pdf en html à partir de pdfminer
     
            """
    	def __init___(self):
    		pass
     
    	def readText(self,path,outType='texte',opts={}):
    		"""
                    fonction de lecture du pdf et de transformation
                    $1: fichier d'entrée
                    $2: le type de sortie
                    $3 les options définies plus loin
                    """
    		#fichier de sortie = le fichier d'entrée - 3 derniers caractère + le type de sortie
    		"""
                    définir le fichier de sortie
                    1. découper la chaine de caractère
                    2. faire un retour arrière de 3 caractères
                    3.placer dans outFile
                    """
    		myfile=path.split('\n')[:3]
    		decoupOpen=[]
    		for car in myfile:
    			decoupOpen.append(car)
    		myOut=outType.split('\n')
    		decoupOut=[]
    		for term in myOut:
    			decoupOut.append(term)
    		newlist=decoupOpen+decoupOut
    		outFile = ''.join(newlist)
    		#outFile = path[:-3]+outType
    		#détermination du chemin d'accès au fichier de sortie
    		#ce qu'il y a avant le / accolé avant le nom du fichier de sortie
    		outdir = '/'.join(path.split('/')[:-1])
    		#debug option ?
    		debug = 0
    		#input option
    		password = ''
    		pagenos= set()
    		maxpages=0
    		#output option
    		#?outFile = None
    		#?outType = None
    		outdir = None
    		#layoutmode = 'normal'
    		codec = 'utf-8'
    		pageno = 1
    		scale = 1
    		showpageno = True
    		laparams = LAParams()
    		opts=[]
    		for (k,v) in opts:
    			#délimitation des arg pour choisir les options
    			#reprend le principe des lignes de commandes
    			# k = type d'option (outdir, outFile...)
    			# v = option choisie
    			if k == '-d': debug += 1
    			elif k == '-p': pagenos.update(int(x)-1 for x in v.split('.')) #on séparer v quand il y a un '.'
    			elif k == '-m': maxpages =int(v)#on détermine le nombre max de pages avec v transformer en chiffres
    			elif k == '-P': password = v #déterminantion d'un mot de passe
    			elif k == '-o': outFile = v #détermination du fichier de sortie
    			elif k == '-n': laparams = None
    			elif k == '-A': laparams.all_texts = True
    			elif k == '-V': laparams.detect_vertical = True
    			elif k == '-M': laparams.char_margin = float(v)
    			elif k == '-L': laparams.line_margin = float(v)
    			elif k == '-W': laparams.word_margin = float(v)
    			elif k == '-F': laparams.box_flow =float(v)
    			elif k == '-Y': layoutmode = v
    			elif k == '-O': outdir = v
    			elif k == '-t': outType = v
    			elif k == '-c': codec = v
    			elif k == '-s': scale = v
     
    		print (laparams)
     
    		#PDFDocument.debug = debug
    		#PDFParser.debug debug
    		CMapDB.debug = debug
    		PDFResourceManager.debug = debug
    		PDFPageInterpreter.debug = debug
    		PDFDevice.debug = debug
     
    		rsrcmgr = PDFResourceManager()
    		"""
                    ResourceManager facilitates reuse of shared resources
                    such as fonts and images 
                    """
    		#outType = 'text'
    		#traitemet du fichier de sortie par chaines de caractères
    		outFile = StringIO()
    		#lancement de la convertion en html
    		#device = HTMLConverter(rsrcmgr,outFile,codec=codec,laparams=laparams)
    		device = HTMLConverter(rsrcmgr,outFile,laparams=laparams)
     
    		filePath=open(path,'rb')
     
    		#PDFPageInterpreter.process_page(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		#PDFPageInterpreter.process_p(self,page=pagenos)
    		#process_pdf(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		interpreter.process_page(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		filePath.close()
    		device.close()		
    		print (outFile.getvalue())
    		outFile.close()
     
    		return
    #appel class		
    reader = PdfReader()
    #choix des option avec la fonction map
     
    #opt = map(None,['-W','-L','-t'], [0.5,0.4,'html'])
    opt = map(None,['-t'], ['html'])
    #reader.readText("07849985.html","07849985.pdf",opt)
    reader.readText("07849985.pdf","07849985.html",opt)

    Nom : erreurtracebock.png
Affichages : 1488
Taille : 105,9 Ko

    voici le deuxième code récupérer dans la doc pdf miner
    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
     
     
    #! /usr/bin/env python3
    # -*- coding: utf-8 -*-
    import sys
    import os
    import re
    from pdfminer.pdfparser import PDFParser, PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
    from pdfminer.pdfdevice import PDFDevice
    from pdfminer.layout import LAParams
    from pdfminer.converter import PDFPageAggregator
     
     
     
    # Open a PDF file.
    fp = open('07849985.pdf', 'rb')
    # Create a PDF parser object associated with the file object.
    parser = PDFParser(fp)
    # Create a PDF document object that stores the document structure.
    doc = PDFDocument()
    # Connect the parser and document objects.
    parser.set_document(doc)
    doc.set_parser(parser)
    # Supply the password for initialization.
    # (If no password is set, give an empty string.)
    doc.initialize("")
    # Check if the document allows text extraction. If not, abort.
    if not doc.is_extractable:
    	raise PDFTextExtractionNotAllowed
    # Create a PDF resource manager object that stores shared resources.
    rsrcmgr = PDFResourceManager()
    # Create a PDF device object.
    device = PDFDevice(rsrcmgr)
    # Create a PDF interpreter object.
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    # Process each page contained in the document.
    for page in doc.get_pages():
    	interpreter.process_page(page)
     
        # Set parameters for analysis.
    laparams = LAParams()
    # Create a PDF page aggregator object.
    device = PDFPageAggregator(rsrcmgr, laparams=laparams)
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    for page in doc.get_pages():
    	interpreter.process_page(page)
    	# receive the LTPage object for the page.
    	layout = device.get_result()
    Nom : Capture du 2017-03-23 10-23-31.png
Affichages : 1428
Taille : 80,3 Ko

    Merci d'avance pour vos réponses.
    Pour le moment je peux faire la conversion via mon pc perso pour avancer sur le reste du programme mais ce n'est pas le but

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Par défaut
    J'ai pu avancer sur la première possibilité de programme mais j'ai des erreurs.
    a priori cela viendrai de la fonction process_page. J'ai fait plusieurs tests si quelqu'un a une idée???
    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
    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
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    #! /usr/bin/env python3
    # -*- coding: utf-8 -*-
    import sys
    import os
    import re
    #os.chdir("/Users/v17verde/pdfminer3k-1.3.1/pdfminer")
    #sys.path.append("/Users/Verdenet/AppData/Local/Programs/Python/Python-36-32/Lib/site-packages/pdfminer.six-20151013-py3.6egg/pdfminer")#PCperso
    sys.path.append("homes/v17verde/pdfminer3k-1.3.1/pdfminer")
     
    #from Interfaces.IReader import IReader
    #import pdfminer
    from pdfminer.pdfparser import PDFParser, PDFDocument
    #from pdfminer.pdfdocument import PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter#, process_pdf
    #process_page est une fonction, peut-on l'importer sur la même ligne des classes
    # from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, process_page
    # from pdfminer.pdfinterp.PDFPageInterpreter import process_page
    from pdfminer.pdfdevice import PDFDevice, TagExtractor
    #from pdfminer.pdfpage import PDFPage
    from pdfminer.converter import PDFPageAggregator, XMLConverter, HTMLConverter, TextConverter
    from pdfminer.cmapdb import CMapDB
    from pdfminer.layout import LAParams
    import getopt
    import unicodedata, codecs
    from io import StringIO
     
    class PdfReader(object):
    	"""
            classe pour transformer les pdf en html à partir de pdfminer
     
            """
    	def __init___(self):
    		pass
     
    	def readText(self,path,outType='texte',opts={}):
    		"""
                    fonction de lecture du pdf et de transformation
                    $1: fichier d'entrée
                    $2: le type de sortie
                    $3 les options définies plus loin
                    """
    		#fichier de sortie = le fichier d'entrée - 3 derniers caractère + le type de sortie
    		"""
                    définir le fichier de sortie
                    1. découper la chaine de caractère
                    2. faire un retour arrière de 3 caractères
                    3.placer dans outFile
                    """
    		myfile=path.split('\n')[:3]
    		decoupOpen=[]
    		for car in myfile:
    			decoupOpen.append(car)
    		myOut=outType.split('\n')
    		decoupOut=[]
    		for term in myOut:
    			decoupOut.append(term)
    		newlist=decoupOpen+decoupOut
    		outFile = ''.join(newlist)
    		#outFile = path[:-3]+outType
    		#détermination du chemin d'accès au fichier de sortie
    		#ce qu'il y a avant le / accolé avant le nom du fichier de sortie
    		outdir = '/'.join(path.split('/')[:-1])
    		#debug option ?
    		debug = 0
    		#input option
    		password = ''
    		pagenos= set()
    		maxpages=0
    		#output option
    		#?outFile = None
    		#?outType = None
    		outdir = None
    		#layoutmode = 'normal'
    		codec = 'utf-8'
    		pageno = 1
    		scale = 1
    		showpageno = True
    		laparams = LAParams()
    		opts=[ ]
    		for (k,v) in opts:
    			#délimitation des arg pour choisir les options
    			#reprend le principe des lignes de commandes
    			# k = type d'option (outdir, outFile...)
    			# v = option choisie
    			if k == '-d': debug += 1
    			elif k == '-p': pagenos.update(int(x)-1 for x in v.split('.')) #on séparer v quand il y a un '.'
    			elif k == '-m': maxpages =int(v)#on détermine le nombre max de pages avec v transformer en chiffres
    			elif k == '-P': password = v #déterminantion d'un mot de passe
    			elif k == '-o': outFile = v #détermination du fichier de sortie
    			elif k == '-n': laparams = None
    			elif k == '-A': laparams.all_texts = True
    			elif k == '-V': laparams.detect_vertical = True
    			elif k == '-M': laparams.char_margin = float(v)
    			elif k == '-L': laparams.line_margin = float(v)
    			elif k == '-W': laparams.word_margin = float(v)
    			elif k == '-F': laparams.box_flow =float(v)
    			elif k == '-Y': layoutmode = v
    			elif k == '-O': outdir = v
    			elif k == '-t': outType = v
    			elif k == '-c': codec = v
    			elif k == '-s': scale = v
     
    		print (laparams)
     
    		#PDFDocument.debug = debug
    		#PDFParser.debug debug
    		CMapDB.debug = debug
    		PDFResourceManager.debug = debug
    		PDFPageInterpreter.debug = debug
    		PDFDevice.debug = debug
     
    		rsrcmgr = PDFResourceManager()
    		"""
                    ResourceManager facilitates reuse of shared resources
                    such as fonts and images 
                    """
    		#outType = 'text'
    		#traitemet du fichier de sortie par chaines de caractères
    		outFile = StringIO()
    		#lancement de la convertion en html
    		#device = HTMLConverter(rsrcmgr,outFile,codec=codec,laparams=laparams)
    		device = HTMLConverter(rsrcmgr,outFile,laparams=laparams)
     
    		filePath=open(path,'rb')
     
    		#PDFPageInterpreter.process_page(self,page=pagenos)
    		#process_pdf(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		#PDFPageInterpreter.process_page(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		filePath.close()
    		PDFPageInterpreter.process_page(device,outFile)
    		device.close()		
    		print (outFile.getvalue())
    		outFile.close()
     
    		return
    #appel class		
    reader = PdfReader()
    #choix des option avec la fonction map
     
    #opt = map(None,['-W','-L','-t'], [0.5,0.4,'html'])
    opt = map(None,['-t'], ['html'])
    #reader.readText("07849985.html","07849985.pdf",opt)
    reader.readText("07849985.pdf","07849985.html",opt)
    les messages d'erreur
    Nom : error_processpage1.png
Affichages : 1453
Taille : 224,1 Ko
    Nom : error_processpage2.png
Affichages : 1434
Taille : 230,6 Ko
    Nom : laparam2arg.png
Affichages : 1480
Taille : 370,8 Ko

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Par défaut
    Bonjour,
    je reviens par ici avec une progression de mon code. Mais j'ai à nouveau des erreurs.
    Voici
    le code modifié
    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
    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
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    #! /usr/bin/env python3
    # -*- coding: utf-8 -*-
    import sys
    import os
    import re
    #os.chdir("homes/v17verde/pdfminer3k-1.3.1/pdfminer")
    #sys.path.append("/Users/Verdenet/AppData/Local/Programs/Python/Python-36-32/Lib/site-packages/pdfminer.six-20151013-py3.6egg/pdfminer")#PCperso
    #sys.path.append("/Users/Verdenet/AppData/Local/Programs/Python/Python-36-32/Lib/site-packages/pdfminer.six-20151013-py3.6egg/pdfminer")#PCperso
    # sys.path.insert(0,"homes/v17verde/pdfminer3k-1.3.1/pdfminer")
    sys.path.insert(0,"/Users/Verdenet/AppData/Local/Programs/Python/Python-36-32/Lib/site-packages/pdfminer.six-20151013-py3.6egg/pdfminer")
     
    #from Interfaces.IReader import IReader
    #import pdfminer
    from pdfminer.pdfparser import PDFParser#, PDFDocument
    from pdfminer.pdfdocument import PDFDocument
    from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter#, process_page
    #process_page est une fonction, peut-on l'importer sur la même ligne des classes
    # from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter, process_page
    # from pdfminer.pdfinterp.PDFPageInterpreter import process_page
    from pdfminer.pdfdevice import PDFDevice, TagExtractor
    #from pdfminer.pdfpage import PDFPage
    from pdfminer.converter import PDFPageAggregator, XMLConverter, HTMLConverter, TextConverter
    from pdfminer.cmapdb import CMapDB
    from pdfminer.layout import LAParams
    import getopt
    import six
    from io import StringIO
     
    class PdfReader(object):
    	"""
            classe pour transformer les pdf en html à partir de pdfminer
     
            """
    	def __init___(self):
    		pass
     
    	def readText(self,path,outType='texte',opts={}):
    		"""
                    fonction de lecture du pdf et de transformation
                    $1: fichier d'entrée
                    $2: le type de sortie
                    $3 les options définies plus loin
                    """
    		#fichier de sortie = le fichier d'entrée - 3 derniers caractère + le type de sortie
    		"""
                    définir le fichier de sortie
                    1. découper la chaine de caractère
                    2. faire un retour arrière de 3 caractères
                    3.placer dans outFile
                    """
    		myfile=path.split('\n')[:3]
    		decoupOpen=[]
    		for car in myfile:
    			decoupOpen.append(car)
    		myOut=outType.split('\n')
    		decoupOut=[]
    		for term in myOut:
    			decoupOut.append(term)
    		newlist=decoupOpen+decoupOut
    		mynewFile = ''.join(newlist)
    		outFile = str(mynewFile)
    		#outFile = path[:-3]+outType
    		#détermination du chemin d'accès au fichier de sortie
    		#ce qu'il y a avant le / accolé avant le nom du fichier de sortie
    		outDoc = '/'.join(path.split('/')[:-1])
    		outdir = str(outDoc)
    		#debug option ?
    		debug = 0
    		#input option
    		password = ''
    		pagenos= set()
    		maxpages=0
    		#output option
    		#?outFile = None
    		#?outType = None
    		outdir = None
    		#layoutmode = 'normal'
    		codec = 'utf-8'
    		pageno = 1
    		scale = 1
    		showpageno = True
    		laparams = LAParams()
    		opts=[ ]
    		for (k,v) in opts:
    			#délimitation des arg pour choisir les options
    			#reprend le principe des lignes de commandes
    			# k = type d'option (outdir, outFile...)
    			# v = option choisie
    			if k == '-d': debug += 1
    			elif k == '-p': pagenos.update(int(x)-1 for x in v.split('.')) #on séparer v quand il y a un '.'
    			elif k == '-m': maxpages =int(v)#on détermine le nombre max de pages avec v transformer en chiffres
    			elif k == '-P': password = v #déterminantion d'un mot de passe
    			elif k == '-o': outFile = v #détermination du fichier de sortie
    			elif k == '-n': laparams = None
    			elif k == '-A': laparams.all_texts = True
    			elif k == '-V': laparams.detect_vertical = True
    			elif k == '-M': laparams.char_margin = float(v)
    			elif k == '-L': laparams.line_margin = float(v)
    			elif k == '-W': laparams.word_margin = float(v)
    			elif k == '-F': laparams.box_flow =float(v)
    			elif k == '-Y': layoutmode = v
    			elif k == '-O': outdir = v
    			elif k == '-t': outType = v
    			elif k == '-c': codec = v
    			elif k == '-s': scale = v
     
    		print (laparams)
     
    		#PDFDocument.debug = debug
    		#PDFParser.debug debug
    		CMapDB.debug = debug
    		PDFResourceManager.debug = debug
    		PDFPageInterpreter.debug = debug
    		PDFDevice.debug = debug
     
    		rsrcmgr = PDFResourceManager()
    		"""
                    ResourceManager facilitates reuse of shared resources
                    such as fonts and images 
                    """
    		#outType = 'text'
    		#traitemet du fichier de sortie par chaines de caractères
    		outFile = StringIO()
    		#lancement de la convertion en html
    		device = HTMLConverter(rsrcmgr,outFile.getvalue(),codec=codec,laparams=laparams)
    		# device = HTMLConverter(rsrcmgr,outFile,laparams=laparams)
     
    		filePath=open(path,'rb')
     
    		#PDFPageInterpreter.process_page(self,page=pagenos)
    		#process_pdf(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		#PDFPageInterpreter.process_page(rsrcmgr,device,outFile, pagenos,maxpages=maxpages,password=password,check_extractable=True)
    		filePath.close()
    		PDFPageInterpreter.process_page(device,outFile)
    		#PDFPageInterpreter.process_page(outFile)
    		#device.close()		
    		print (outFile.getvalue())
    		outFile.close()
     
    		return
    #appel class		
    reader = PdfReader()
    #choix des option avec la fonction map
     
    #opt = map(None,['-W','-L','-t'], [0.5,0.4,'html'])
    opt = map(None,['-t'], ['html'])
    #reader.readText("07849985.html","07849985.pdf",opt)
    reader.readText("07849985.pdf","07849985.html",opt)
    le message d'erreur
    Nom : encodagepdf2html.JPG
Affichages : 1398
Taille : 88,3 Ko

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Enlève le getvalue(), il te sert après pour récupérer le contenu de stringIO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		device = HTMLConverter(rsrcmgr, outFile ,codec=codec, laparams=laparams)

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 7
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Enlève le getvalue(), il te sert après pour récupérer le contenu de stringIO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    		device = HTMLConverter(rsrcmgr, outFile ,codec=codec, laparams=laparams)
    Hello merci pour ta réponse le problème c'est que j'ai un autre souci quand je l'enlève
    Voici
    Nom : erreutebytstr.JPG
Affichages : 1355
Taille : 108,5 Ko

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Peut-être que le fichier d'entrée est lu en mode binaire (avec l'argument 'rb').

    Mais je ne vois nulle part dans ton code où est ouvert le fichier d'entrée.

Discussions similaires

  1. Conversion PDF en HTML
    Par kiki29 dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/03/2017, 14h40
  2. [Débutant] Conversion doc/docx/pdf to HTML
    Par eldiable2005 dans le forum C#
    Réponses: 4
    Dernier message: 24/05/2012, 13h43
  3. [PDFLib] Conversion PDF vers HTML
    Par soccersoft dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 14/07/2007, 13h05
  4. [string->HTML] Conversion d'une chaine en HTML
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 24/07/2005, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo