Create Print Layouts Using XML and CSS

Wanna say something about this article? Please do! Tweet a comment!

Currently I have to use InDesign for a small magazine for school. I know, it’s a very feature-complete and extensive program, but most of the time it’s just terribly complex and everything but intuitive. Therefore I thought of what I would consider a better alternative.

What you may need to know: I do a lot of web design and enjoy structure and clean separation of content and appearance. So, what I came up with is basically just a combination of these experiences: On one hand I know that the concept of InDesign does not work well for me, and on the other hand I know that CSS is a powerful tool for designing and specifying layouts of webpages.

I thought, if CSS works for the web, why shouldn’t it work for print? The next step was to determine how the content should be represented. Well, I chose CSS so the logical choice would be XML for the content. Now, why would anybody want to make a layout using style sheet language instead of buttons and menus? And even more bizarre, what would you achieve by that?

I’d say you can benefit at least four times from the concepts of XML & CSS here:

  1. You can structure your layout without any problems, just by using XML.
  2. You can use classes and ids to apply styling of your elements using CSS. As a result, you can easily style related design elements coherently with minimal effort.
  3. You don’t need to search menu items in a messy application or are forced to use just one app, you can create and edit your layouts and contents with every small editor.
  4. You can create the XML of your layout automatically with almost every programming language in a blink of an eye (I myself like to do this in Python).

Besides that, you can theoretically view your layout in a regular web browser.

Of course these are the advantages. Sad to say, the disadvantages are quite serious yet, but I’d say if someone would really like to implement this whole idea it wouldn’t take long to eliminate them. Currently, there is no system I know of that uses pure XML and CSS for print layouts, so there is no standard in any way yet (naming of elements and properties). Also, there is no way I know of to guarantee that the typography looks anything alike when you render it across platforms.

All in all, I would say that the possibility to manipulate and see all the elements and style of your layout using rather simple XML and CSS is a really promising alternative to sticking to proprietary default applications for that job.