PyPDF2 mergeTranslatedPage n'a pas fusionné correctement les pages

J'essaie d'utiliser PyPDF2 pour fusionner 2 pages pdf en une seule.

Here pdf example files http://ge.tt/9IvaIo01

Mais quand j'essaie de fusionner, je recive copie de chaque page de haut en bas. Voici un exemple qui montre quand utiliser mergeTranslatedPage sur la page 0 et la page 1 vous recive 2 copie de la page 0 et non de la page 1.

Peut-être que c'est ma faute ou malentendu. Je vous remercie.

from PyPDF2 import PdfFileReader,PdfFileWriter
import os

api = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'api')
input = PdfFileReader(file(api+"/example_doc_in.pdf",'rb'))
output = PdfFileWriter()
#Some logic with merging page
input.getPage(0).mergeTranslatedPage(page2=input.getPage(1),tx='0',ty='-384')
output.addPage(input.getPage(0))
outputStream = file(api+'/example_doc_out.pdf','wb')
output.write(outputStream)
0

1 Réponses

Donc, merci à https://www.freelancer.com/u/ils7.html pour passer du temps à trouver un bug. La solution est: Vous devez remplacer la fonction _mergeResources dans pdf.py

avec:

def _mergeResources(res1, res2, resource):
        newRes = DictionaryObject()
        newRes.update(res1.get(resource, DictionaryObject()).getObject())
        page2Res = res2.get(resource, DictionaryObject()).getObject()
        renameRes = {}
        for key in page2Res.keys():
            if newRes.has_key(key) and newRes[key] == page2Res[key]:
                newname = NameObject(key + "renamed")
                renameRes[key] = newname
                newRes[newname] = page2Res[key]
            elif not newRes.has_key(key):
                newRes[key] = page2Res.raw_get(key)
        return newRes, renameRes
    _mergeResources = staticmethod(_mergeResources)

ce code, l'erreur était dans `

newRes[key] == page2Res[key]:` 

cet endroit était:

newRes[key] != page2Res[key]:`

Merci encore à eux

0
ajouté