RSS category feeds

RSS site feeds


Compare documents and show diff in PDF with PyUNO PDF Print E-mail

This script compares two Word documents with OpenOffice via the PyUNO Bridge and shows the differents in PDF file. The PDF result is the original Word document with highlighted diffs. This script came from

Before you run this script in the OpenOffice program directory with the python.bat you should start OpenOffice in server mode like:

soffice -headless -invisible '-accept=socket,host=localhost,port=2002;urp; 

#!/usr/bin/env python
import uno
from import PropertyValue
url = uno.systemPathToFileUrl('d:\\changed_document.doc')
url_original = uno.systemPathToFileUrl('d:\\original_document.doc')
url_save = uno.systemPathToFileUrl('d:\\the_diff.pdf')
### Get Service Manager
context = uno.getComponentContext()
resolver = context.ServiceManager.createInstanceWithContext("", context)
ctx = resolver.resolve("uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext")
smgr = ctx.ServiceManager
### Load document
properties = []
p = PropertyValue()
p.Name = "Hidden"
p.Value = True
properties = tuple(properties)
desktop = smgr.createInstanceWithContext("", ctx)
doc = desktop.loadComponentFromURL(url, "_blank", 0, properties)
### Compare with original document
properties = []
p = PropertyValue()
p.Name = "URL"
p.Value = url_original
properties = tuple(properties)
dispatch_helper = smgr.createInstanceWithContext("", ctx)
dispatch_helper.executeDispatch(doc.getCurrentController().getFrame(), ".uno:CompareDocuments", "", 0, properties)
### Save File
properties = []
p = PropertyValue()
p.Name = "Overwrite"
p.Value = True
p = PropertyValue()
p.Name = "FilterName"
p.Value = 'writer_pdf_Export'
properties = tuple(properties)
doc.storeToURL(url_save, properties)

Last Updated ( Thursday, 02 February 2006 )
< Prev   Next >




  • hey how can we clear history of a single skype group ? any idea? More...
  • Dear Brent I'm trying to get the points coordinate in a PYTHON/CATIA macro but I... More...
  • Hi Brent, I'm trying to create a macro for create the best fitting circle given... More...
  • I have run your code on my own machine, but I just got the last paragraph of the... More...
  • Hello Gabriel, It seem that the linked site moved to (... More...

Login Form

Lost Password?

My prefered Python IDE

My prefered Python editor is Pyscripter from MMExperts. It is not only an editor. Pyscripter is a full Python IDE including (remote) debugging, a class browser, and all other nice helpers which a full featured IDE needs.

Do you have a script for me ?

Do you have an interesting Python script which does some really cool thing on Windows ? Please post them to this site. It`s very simple - simply copy&paste it to this form. No login is requiered.

Hint: For syntax highlighting and correct Python intendation place your code between html tags <pre> and </pre>.

My prefered web framework

My prefered web framework for developing web applications is Django. Django calls itself The web framework for perfectionists with deadlines. It is a really fast, scalable and (thanks Python) the sexiest web framework of the world.