December 4, 2006  ·  Lessig

Let’s say you release a draft of a paper using PDF. But when people open the paper to read it, you’d like the PDF to check whether there’s a more recent version available. If there is, you’d like it to indicate as much — somewhere. Obviously, you could always include a link that says “For the most current version, go here.” But is there a way to say, “A more recent version of this document is available here.”?

  • http://www.adobe.com David

    Hi,

    You can effectively do this (and much more) with Adobe LiveCycle Policy Server.

    It is an enterprise server for rights management, and includes the ability to revoke and replace a document. I can’t tell if it would be a fit for your use case, but let me know if interested and I can get someone to get get details.

    -David
    Adobe

  • http://www.jessemerriman.com/ Jesse Merriman

    You could probably do this with a bit of JavaScript embedded in the PDF, though the only PDF viewer that I know has support for this is Adobe’s. See:


    Scripting Reference


    Scripting Guide


    Unexpected features in Acrobat 7

  • http://www.laboratorium.net/ James Grimmelmann

    Alert! Alert! Unauthorized read of outdated version in Section 7-G! Killbots have been dispatched to the document’s location.

  • http://www.DonAssad.com Josef Assad

    I think this is inadvisable at best.

    Documents should not “call home”; to be very clear, they can’t in fact call home since the document file is content, not computer instructions. The computer instructions are in the viewer.

    So, for your pdf to call home and check for a newer copy, the document would have to contain a section which your viewer identifies as an address where updates might be available, and then to check that address and possibly modify the content based on the location of the address.

    Here’s some reasons why this is a bad idea:
    1. Opening files becomes implicit acts of trust in a URL. I’m opening a file, not checking a web location. It creates incremental layers of vulnerability: instead of having only to worry about whether the document contains a buffer overflow exploit, I have to worry also about whether the response from the site will overflow also.
    2. Assuming that we have decided not to totally distort the handy distinction between documents (content) and viewers (content display tools), then the document would only contain a section with the information concerning where this update is. It would be up to the viewer to do the checking, which means all the pdf viewers out there would have to be modified. Either that or we’d have a few extra steps to encode “safe” pdfs which render fine in “Insta-update-omagic”-enabled viewers. Why the heck would we want to do that? I’m typesetting a book, I don’t want to have to bother with encoding a field for the viewer to be able to call home correctly!
    3. If we’re going to let our pdf call home to check for a new version, then we’re sitting on a nice log of IPs of people who read our pdf. Which is fine if we’re reading “10 good reasons to liberate iraq.pdf”, but not if we’re reading something like “nuclear bomb theory chapter 2: defusing.pdf”. It’s a potential violation of privacy, and it’s a bad idea.
    4. If it becomes a cultural norm for the content consumer to have the option to have a direct back-channel (i.e. to check back for updates) then this reduces the technical obstacles to making this option mandatory (DRM, anyone?). I think that legislation is the correct way to prevent mandatory and pervasive DRM, but if the legislative environment discourages sane prevention of such a scenario then technical obstacles will do.

    If you have a look at the Adobe Livecycle Server product from comments prior to mine, you’ll see an example of where a technology which can call back (the wording there reflects precisely what you want in fact: “version control”) has inevitably led to a broader employment of the capability to back-channel to the content owner/producer. “Audit trails”, “who has viewed and printed a document and when”, “revoke access and usage rights”, etc.

    I understand that, with the fine books you have written you are concerned that your readers access the latest editions. But really, if there’s a link in the document where the reader can check for themselves, the marginal effort isn’t high enough to justify going looking for a way to have your books give you a holler. Mailing lists also make a good idea; maybe just a small textbox here for example or somewhere prominent inside the book.

  • rich

    Low-tech but easy – you can always put a URL at the top of the first page that says “this document may be out of date – to ensure that you have the latest copy click here”.

    Not as elegant as the solution you’re describing, but no policy server required…

  • anon

    What? You would use software that Phones Home?!

    Please don’t.

    (I read pdf files with xpdf or kpdf on Linux.)

  • Brian Ashenfelter

    In short, there is nothing out-of-the-box that PDF or Acrobat provides.

    Yes, you could do this with some embedded JavaScript inside the PDF. However, you won’t be able to have this automatically run when the document is opened – the Acrobat JavaScript spec doesn’t provide a hook for this. It will allow you to run this check automatically when the document is saved, closed or printed but not when it is opened (probably for security reasons). Alternatively, you could have this check be user-initiated by placing a link/button on the first page of the PDF and run the JavaScript from there.

    In any case, the JavaScript that you need will most likely use the SOAP object to talk to your web server to check for a more recent version of the document. All of this assumes you’re using Acrobat as your reader.

  • Serge Wroclawski

    As several other posters have said, you can do this with some Javascript, but the idea that PDF needs Javascript is silly, and the only viewer that seems to support it is Acrobat itself. It’s one of those features that seems useful on the surface, but which many users don’t want. After all, would you want to know each time you read a document someone else writes? It’s a feature that Free Software developers are likely to disable, at least by default.

    So, yes you can do it, but please don’t. :)

  • http://weblogs.macromedia.com/jd John Dowdell

    David Mendels had the direct info, in the first reply. You can indeed maintain a relationship with the documents you create. Large groups may want to install their own version of Adobe LiveCycle Policy Server, but individuals and ad-hoc groups may prefer to use document relationships as a hosted service:
    http://createpdf.adobe.com/

    This service can make sure all readers are working with the current document, and can also prevent snooping by strangers, or determine which readers can edit or print your document, or incorporate reader comments and synchronize across all your readers, and more. It lets you turn a simple package of digital bits into an ongoing relationship with the author.

    (I think it should also be possible to use the Mozilla SpiderMonkey engine inside the free Adobe Reader to check a server for update info, but I haven’t happened to come across implementations or tutorials myself yet. Noncompliant PDF readers may ignore such instructions, though, so the encryption management of Adobe LiveCycle Policy Server makes sure your private documents remain private.)

    Is there a valid use case for preventing your data from copying by others? I think so… it’s quite similar to the use cases for other publicly available encryption abilities.

    Any particular implementation of rights-management needs to be acceptable to all involved (see the Zune case for unilateral terms causing business problems), but the ability to manage rights for digital data shouldn’t be limited to Big5 Music and other rent-seekers. Agreed…?

    John Dowdell, Adobe Systems

  • NoWayJose

    No Way, Jose!

    I run a firewall and an application called Little Snitch to stop evil people and their applications from “phoning home” without my permission.

    What you’re talking about is creepy and authoritarian.

  • NoWayJose

    Oh, and for all the reasons mentioned by the Adobe guy, I do not have any Adobe Reader software on my computer and only use opensource pdf viewers, and refuse to accept “Adobe only” pdfs.

    Creepy.

  • Kaa

    It’s a very bad idea for all the reasons stated above.

    A note on the first page stating that “The current version of this document can be downloaded from ….” is all you need.

    Kaa

  • http://ansuz.sooke.bc.ca/bonobo-conspiracy/ Matthew Skala

    “Any particular implementation of rights-management needs to be acceptable to all involved (see the Zune case for unilateral terms causing business problems), but the ability to manage rights for digital data shouldn’t be limited to Big5 Music and other rent-seekers. Agreed…?”

    Not agreed here. True rights are inalienable and not subject to “management”.

  • http://lokeymassive.net lokey

    ‘True rights are inalienable and not subject to “management”.’

    this is perfectly acceptable, as long as you will grant that the number of these true, inalienable rights is vanishingly small.

  • http://www.blisspix.net Fiona

    Though still in development, and still somewhat theoretical, Herbert Van de Sompel has been working on how to link together all kinds of files and versions so that scholars can track the development of a work, and subsequent links and citations to it.

    I saw him speak at a conference earlier this year, and it’s some truly amazing stuff.

    Might also be applicable in, for example, tracking the uses of Creative Commons works.

    His website and recent presentations are here – http://public.lanl.gov/herbertv/

  • Anonymous

    Given Adobe Acrobat {Reader,Pro} (but not necessarily other PDF viewers)

    (1) It is very easy to “annotate” a PDF so that if a user clicks anywhere on content in his display, the viewer will contact an arbitrary URL and even replace the current display with the contents. Of course, you have to provoke that click. You don’t have to make it obvious what will happen, nor do you have to actually change the content on display (whatever the URL yields). Since you *can* download new content, you could just make it so clicking anywhere in the document will download an updated version.

    (2) There are several ways to get Acrobat Reader (and Acrobat Pro) to open a URL on document launch. See this news article…

    http://www.eweek.com/article2/0,1895,2016606,00.asp

    and the more technical explanation from the discoverer:

    http://michaeldaw.org/md-hacks/backdooring-pdf-files/

    the first exploit seems to involve deprecated-in-PDF-1.3 /AA keys (I will not explain further) but there are other routes through the maze…

  • http://ansuz.sooke.bc.ca/bonobo-conspiracy/ Matthew Skala

    lokey: There are only a few inalienable rights. I wouldn’t say vanishingly few. I’d say that speech is one of them and intellectual property isn’t.

  • Mr Eye

    A tunnel in Switzerland had this sign upon entrance:
    “Warning tunnel ahead, please turn your headlights on.”

    So drivers would do so. Sometime after exiting the tunnel over 10 tourists a day would go on a picnic , have a long lunch and find their batteries dead from having left their lights on.

    If a sign just said “Turn your lights off” was put at the end of the tunnel, it would cause a problem of some people turning off their lights at night.

    A more explicit sign could be done:

    If its daylight and your lights are on, turn them off

    If its dark and your lights are off turn them on.

    If its daylight and your lights are off leave them off.

    If it’s dark and your lights are on leave them on

    Too long and complex.

    The ultimate solution was to put a sign at the end of the tunnel,

    “Are your lights on?”

    with the thought that the drivers could intuit the above conditions from this short question.

    Moral of the story:

    If people really have their lights on, a little reminder may be more effective then a complicated solution.

    -From:are Your Lights on by Don Gause and Gerald Weinberg.

    My take:Kaa’s solution is a good one, all you need do is find the correct phrasing to ask the reader your own version of ” Are your lights on?” (How about “Version X.yy. Click here to check for an updated version”)

  • http://instacriminalbackgroundchecks.com/ free background check

    As I ωebsitе posѕessor І belіeve
    the cοntent matteг heгe іs rattling wоnԁerful , appreciate it for your efforts.
    You have to keep it up foreѵer! Βest оf luck.

    Look аt my web page – free background check