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.
Comments
-
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 over 13 yearsAnd 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 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.