Archive for the ‘docx4all’ Category

Web-based docx editing?

October 4th, 2014 by Jason

Following on from the previous post on content tracking, some people have been asking about how to edit a docx in a web browser.

So I thought I’d link to a proof of concept we did a year or so ago.

The idea is:

  • use docx4j to convert the docx to XHTML
  • use CKEditor to edit that XHTML in the web browser
  • on submit, convert the XHTML back to docx content

The general problem with converting to/from XHTML is the “impendance mismatch”.  That is, losing stuff during round trip.  This will be a familiar problem to anyone who has ever edited a docx in Google Docs or LibreOffice.

This demo addresses that problem by identifying docx content which CKEditor would mangle, and then on submit/save, using the original docx content for those bits.

In this demo, the problematic content is replaced with visual placeholders, so you can see it is there.

The intent is that you can add/edit text content in the browser, without other document content (headers/footers, text boxes etc) getting lost.

To give it a try, go to the upload page and choose a docx file from your computer

You should see your docx open with the CKEditor toolbars above it:

(In the demo and screenshot above, the grey “B” image represents a bookmark)

Make some edits, then hit the Submit button (at the bottom).

The docx will be streamed back to your computer as a download in your browser.

Now open it in Word, and compare it to the original.


If you want to add this type of functionality to your application, please let us know by emailing

We’d love to hear:

  • a bit more about your use case,
  • where you see your users doing their web-based editing:- on your intranet, extranet, or the web at large?
  • what kind of editing? is it proof reading,  customising particular sections, a step in a workflow..?
  • do you need to cater for iPads or Android tablets?  And if so, is a dedicated app on your roadmap?
  • any additional requirements you might have!

Update (Oct 2015)

Source code is available at


Unifying the web browser and the desktop?

December 9th, 2008 by Jason

You can launch docx4all as a desktop application, or as an applet in your web browser (requires Java 6).

If you choose to do the latter, you can (provided you are running then new Java Update 10) drag the applet to your desktop, where it will keep running even if you close the web browser.

See this video:

Get the Flash Player to see this content.

Is this a gimmick, or is it truly useful?

It is useful if you want to close your browser, but not docx4all.

It can also be thought of as a way to preview before you install (dragging it to the desktop installs the desktop shortcut / Start menu option).

It would be nice if, having dragged the applet outside of the browser, you could resize it (as you can with a normal desktop application) – but you can’t (at least without some extra coding on our part).

So, although its cool, it is not really a major feature.

collaborate on a Word doc with docx4all

November 16th, 2008 by Jason

docx4all has now reached the point where you can collaborate happily with a Word user, both working on the document at the same time.

This screencast shows a docx4all user and a Word user doing that:

Get the Flash Player to see this content.

docx4all will work on any platform if you have Java 6 installed – including Windows, OSX, or Linux.

You can try collaborating now, in your web browser by clicking here (warning: ~10 MB).  The download is of course one-time.  Next time, it will start quicker.

That link takes you to the docx4all applet, which does collaboration in your web browser.

You can also run docx4all as a desktop application – the functionality is identical.

The nice thing about the docx4all experience is that with just one-click you can be collaborating. Ok, a couple of clicks – one to start docx4all, and another to do File > Open.

Because all changes are versioned, from the Plutext menu you can see:

  • a history of all the changes which have been made to a given content control
  • a version of the document showing the most recent change to each paragraph

Click to try docx4all v0.2

May 3rd, 2008 by Jason

Jo and I are pleased to have just uploaded a new version of docx4all for you to try.

We’ve added quite a few features since I last blogged about docx4all (21 Feb).

New features include:

The VFS file chooser allows docx4all to open documents not just from the local file system, but also from a WebDAV server (such as Alfresco), and potentially, CIFS etc.  To do this, docx4all uses VFSJFileChooser, and webdavclient4j (a project we’ve started to address the gap left when Apache retired Slide, including its WebDAV client).

The incoming document filter is used to convert certain features of WordprocessingML which docx4all can’t yet handle, into something it can.   Examples include proofErr, hyperlink, and lastRenderedPageBreak.  This behaviour relies on a feature of docx4j, which makes it easy to apply a transform to a docx package (by converting it to pkg:package format).

Docx4all can’t yet render tables (let alone edit them), but we’re working on changing that.

Microsoft Office Online .. soon?

March 3rd, 2008 by Jason

Nick Carr has sparked speculation that Microsoft will soon unveil its strategy for bringing its Office suite online – which to me means a way of working with Office documents on any computer which has an internet connection.  If you are connected, I’d expect you to be able to collaborate with others in real time; if you are not connected, I’d expect the software to work in offline mode.

When I say “any computer”, I don’t mean to restrict that to any particular operating system (and indeed, Silverlight runs on the Mac, and Microsoft has announce it is working with Novell on a linux implementation).  What good is collaboration software if some of the people you need to collaborate with can’t play?I thought I’d make some predictions about the business model.

There seem to be 2 key questions:

  •  does each end user pay, or does a collaboration originator pay for the right to invite a certain number of collaborators?
  • what support for Mac and Linux users, and when?

Whether each individual user is required to pay, or the originator pays, will reveal much about how Microsoft regards its online offering.  The latter model, that the person who originates a collaboration session pays for a certain number of people to be able to collaborate (ie whatever their platform), would show that their focus is firmly on collaboration.  This is the model we would use for any plutext SAAS offering (available to people who don’t want to install plutext server internally, for free or a fee). 

Here are my predictions:

  1. Enterprise version (ie behind the firewall).  There will be a version an enterprise can install on its Sharepoint server, for those businesses which are not comfortable with their documents being hosted externally.  I’m sure Microsoft can work out how to let people give access to people outside the firewall as necessary.  An enterprise licensee will be able to invite people outside the enterprise without charge.
  2. Cloud version. I expect there will be a cloud version for SMBs.  I think you will be able to use this for free, provided you have a license for the traditional Office product.  You will definitely need this (2007 version) to originate collaboration around a document (ie invite other users) – unless you are prepared to pay a full price for the online offering.  Maybe anyone will be able to accept a collaboration invitation (ie whether or not they are licensed to use Office), making the “who pays” question mute.  To create a new document (or print it?), I expect you will need to have a licence for the traditional Office product, or pay for the SAAS offering.
  3. Mac and Linux support.  I think Microsoft will offer Mac support sooner or later, but delay any hint of support for Linux for as long as possible.  This is because Linux is much more of a threat than OSX (two reasons: (1) Linux is free, and (2) it is very easy to install it on your existing Windows PC).  That said, they might have it “only on Windows” to try to keep people there – until some critical tipping point is reached.  I would say that even now, the only thing stopping Microsoft from seeking revenues from Linux users are the inevitable press headlines along the lines of “Microsoft admits defeat” that would come with this.  The cost of this in terms of perception would surely outweigh any incremental revenues in the short term.  Mac users may be able to use it for free – provided they had an Office license they were able to associate with their online user ID.  
  4. docx only. The documents which come out of this online service will be docx documents, not binary or RTF.  This will help to make the new format ubiquitous.

I wonder whether the collaboration protocols will be published under the recent interoperability initiative?  If they are, the way would be open for a rich world, in which docx4all could potentially play…  I’d be pleasantly surprised if they were, and there was nothing stopping someone from making a client or server of their own.  If anyone else could create a server, then why not get rid of it altogether and go peer-to-peer?  Maybe, just maybe, the thinking is that it would take forever for someone other than Microsoft to create a fully featured server, so third party implementations are to be encouraged (as is presently the case for OpenXML), since Microsoft’s offering will always be the RollsRoyce implementation which attracts the most usage, with the other implementations adding value to the ecosystem.

 The announcement, if/when it comes, will be fascinating!  (more…)

Document Collaboration – Magic Quadrant

February 25th, 2008 by Jason

In comment 18 to comment of the day “Google Docs is Chock Full of Fail” by Karim on Read/Write web, Bernard Lunn says:

if you drew a magic quadrant with “control over presentation/formatting” on one axis and “rapid online collaboration” on the other, neither MS Office or GOOG Apps would be in the magic quadrant

That’s precisely the quadrant we’re aiming for with plutext. We still have a way to go :)

Anonymous comment 4 to Scoble’s contribution to the debate also articulates our reason for being:

I’ve found Google Docs is great for collaborative editing. Once everyone’s done editing then it’s up to someone to take the Google Docs version and properly format the doc using a desktop word processor.

Based on this observation, Google needs to completely clone a desktop word processor or focus on perfecting collaboration

VMware appliance lands

February 21st, 2008 by Jason

Well, the VMware appliance is mentioned in my last post is now available.

Its a great way for prospective developers to examine docx4all, and also an easy way for people to work on Alfresco.

The appliance is built around Ubuntu’s JeOS (‘Just enough Operating System’), and Eclipse, which also means a desktop (for which we chose Xfce).

A stack of pre-built open source software delivered as an appliance which runs in a free container (eg VMware Server or Player) on your operating system of choice reduces to pretty much zero the cost for new developers to get started.

Its a pity we can’t deliver a similar appliance for developers wanting to work on our Word 2007 add-in – developers need Visual Studio, VSTO and Word 2007;  it would be great if Microsoft gave their blessing to a freely downloadable virtual appliance which contained these things (perhaps they could ensure that the only way you could launch Word was by running your application from Visual Studio).

That’s why I didn’t mention plutext-server in the second paragraph (even though you can install it into Alfresco with a single command).  Currently, you really need the Word 2007 add-in to work with plutext-server.  The barriers to entry for plutext client developers are one of the reasons we’re working to make docx4all a fully functioning plutext-client.  Stay tuned!  In the meantime, we’ll provide an easy installer for the Word 2007 add-in, so at least you can try the system end-to-end – provided you’ve got Word 2007.

docx4all now in subversion

December 6th, 2007 by Jason

I’m excited to say that today Jojada uploaded his work to date on docx4all to subversion.

Docx4all is our open source word processor which uses OOXML WordprocessingML as its native document format. Like our other projects, we’re releasing it under a GPL (in this case v3).

We intend it to run wherever Swing runs, and both from the desktop and within a web browser.

Docx4all is a thoroughly modern Swing application, in that its built on JavaFX Script and the Swing App Framework.

Here is a screenshot of a simple document rendered in it (click to enlarge), running on Ubuntu:

docx4all v0.1 screenshot

Its very early days yet. As you can see from the screenshot, docx4all can render simple paragraph content. But you can’t actually edit yet. That will change before Christmas.

The philosophy we’re taking is that if docx4all encounters any WordML markup which it doesn’t understand, it should preserve (ie round trip it).

You can see in the screenshot that sectPr currently falls into that category. As I said, its very early days!

But we wanted to get docx4all out there, so that anyone who’d like to work on it is able to get started.

The wiki contains instructions for building docx4all. Let us know how you go in the forums.