Convert Word doc to PDF - Python

12,966

Solution 1

You can use OpenOffice if it is available on the system.

import subprocess
import shutil

input_filename = 'input.doc'
output_filename = 'output.pdf'

p = subprocess.Popen(['unoconv', '--stdout', input_filename], stdout=subprocess.PIPE)
with open(output_filename, 'w') as output:
   shutil.copyfileobj(p.stdout, output)

You can also look at unoconv's source code if you want to do it directly with the Python bindings for UNO/OpenOffice COM.

Solution 2

Install a PDF printer driver like CutePDF.

Use COM automation to run MS Word; open the file, fill in the data, print the file as a PDF.

Alternatively: convert the Word file into a PDF form; use ReportLab to fill in the form.

Alternatively: print the Word file to a PDF file; use ReportLab to overlay text on the file.

Share:
12,966
RadiantHex
Author by

RadiantHex

hello! :)

Updated on June 14, 2022

Comments

  • RadiantHex
    RadiantHex almost 2 years

    I need to fill in a document and then try and convert it into a PDF.

    Any idea how I can do this?

  • Matt
    Matt over 13 years
    And if there are images in the document, you'll probably need to use the Python Imaging Library: pythonware.com/products/pil or something similar.
  • Samiuela
    Samiuela over 11 years
    +1 Depending on the complexity of the Word Document, other 'compatible' tools are not going to generate the same output. Programmatically controlling Word may end up being the only solution for some people.