Wednesday, May 18, 2005

Print on Demand, and Hardcopy Copy Protection

You might be familiar with Print On Demand (POD) vendors like iUniverse and Lulu. They let you upload a document (say, a 300-page PDF) that customers can have printed into a softcover book on demand. The cost is only a little above the per unit cost of printing books in a traditional press run of 1,000 copies. This means you can print anything with essentially no overhead.

There's a subgenre of POD, called Variable Data Printing (VDP). This allows the document on the print server to be, in essence, "mail merged" with customer data from a database. So if John Doe orders a catalog from a company, the system can check John's previous order history and modify the catalog document just for him immediately before printing it. All customers can have a custom catalog.

So far, Variable Data Printing has not come to the well-known book publishers like iUniverse and Lulu. While it's not terribly practical for Lulu to host your company's customer database, there is a simple and useful form of VDP that they could provide; hardcopy copy protection.

Imagine that when you publish a book through Lulu, you also include in your book a reference to a web site that contains more information. For example, if you sell a cookbook, you might want to offer a companion web site with additional recipes, nutrition analysis, etc. You want this web site to require a code for entry, which you publish in your book, so that people must buy the book to use the web site.

Now, a normal book can only print one code. Well, a person could manually place a sticker with a code into the back of the book, but such a step breaks the efficiency model of iUniverse and Lulu; you have to use an automated system that requires no human intervention.

So Lulu offers you an option: along with your book document, you can upload a text file containing thousands of random-looking, unique codes. You edit your book document to contain a string like this: "###VDP:Code###". Whenever a customer orders a copy of your book, Lulu's system looks for the next unused code from your code file, and sticks it into your document wherever it sees the ###VDP:Code### string. Voila, you are now printing customized access codes, one per copy of the book.

(I concocted the ###VDP:blah### syntax because it's tremendously simpler than some full-bore XML solution. You only need to insert small snippets of text in the first place, and Lulu would want something that's both easy to implement and performs at high speed with large documents.)

Once Lulu can do this, they can offer other VDP possibilities, too. For example, ###VDP:Date### could be a placeholder for the date that copy of the book was printed.