Python >> Tutoriel Python >  >> Python Tag >> Linux

Conversion de docx en pdf avec du python pur (sous linux, sans libreoffice)

Les pages d'aide PythonAnywhere offrent des informations sur l'utilisation des fichiers PDF ici :https://help.pythonanywhere.com/pages/PDF

Résumé :PythonAnywhere a un certain nombre de packages Python pour la manipulation de PDF installés, et l'un d'eux peut faire ce que vous voulez. Cependant, débourser à abiword me semble le plus simple. La commande shell abiword --to=pdf filetoconvert.docx convertira le fichier docx en PDF et produira un fichier nommé filetoconvert.pdf dans le même répertoire que le docx. Notez que cette commande affichera un message d'erreur dans le flux d'erreurs standard se plaignant de XDG_RUNTIME_DIR (ou du moins pour moi), mais cela fonctionne toujours et le message d'erreur peut être ignoré.


Un autre que vous pourriez utiliser est libreoffice, mais comme le premier intervenant l'a dit, la qualité ne sera jamais aussi bonne que l'utilisation des comtypes réels.

de toute façon, après avoir installé libreoffice, voici le code pour le faire.

from subprocess import  Popen
LIBRE_OFFICE = r"C:\Program Files\LibreOffice\program\soffice.exe"

def convert_to_pdf(input_docx, out_folder):
    p = Popen([LIBRE_OFFICE, '--headless', '--convert-to', 'pdf', '--outdir',
               out_folder, input_docx])
    print([LIBRE_OFFICE, '--convert-to', 'pdf', input_docx])
    p.communicate()


sample_doc = 'file.docx'
out_folder = 'some_folder'
convert_to_pdf(sample_doc, out_folder)