Post Conference, back from Minneapolis

October 15th, 2008
We just got back last week from our first conference of the year. The PDF Central conference, www.pdfcentralconference.com, in Minneapolis. In fact, this is practically the only PDF conference around anymore. Strange because Acrobat and PDF are more well used than ever and people seem to really want more info about it. But I love these events. It’s the only time I get out from behind the computer and actually meet people that are using Acrobat. Well ok, it’s the only time I actually meet people period;) 

Anyway, it was a great conference. Lots of good sessions and the attendees seemed really involved. I gave two great sessions, one on automating Acrobat, and one on scripting the new Rich Media Annotation. Of course my topics are always about programming and a bit on the super nerd end of things. Which isn’t normally a problem, but unfortunately Ted Padova (PDF Bible author) was there. Ted always steals my audience. He’s so popular that during his key note normally mild manored office administrators were ripping thier shirts off and jumping on stage!! You know, fillable forms really get people excited. Go to the web site and see the pictures. And I shouldn’t be saying this, but all of the session matierials from the conference are availible for download on the session description page. This is a wealth of info they are giving away for free. If you don’t do the web site to see admins gone wild, then go for the free downloads (www.pdfcentralconference.com)

Ok, maybe I exagerated about the admins;)

Back On Line (again)

October 13th, 2008
Hello All, the summer has slipped away and I haven’t posted a single blog:( Ahhh, those long warm days with a G&T in my hand. But I guess that’s over and it’s time to get back to work. Actually I’ve been working all summer on my new project, www.pdfscripting.com. This is a resource site for everything having to do with programming activities sourounding Acrobat and PDF. Vidieos, tutorials, tools, ready to use scripts, and more. Beginner to advanced material. Mostly it’s about Acrobat JavaScript. Right now it’s just at the beginning, but it’ll get bigger fast and include LiveCycle, VB, Flex, and server side scripting, as it relates to Acrobat and PDF of course. 

Now Back to work.

Acrobat 9 JavaScript Revealed

June 17th, 2008

   There are plenty new changes to Acrobat JavaScript with the soon to be released Acrobat 9.  But, like the changes made in Acrobat 7 and Acrobat 8, it’s not just adding new functions and properties.  The scripting environment has also changed.

   The most obvious change is that the Acrobat JavaScript documentation is no longer a PDF file.  It’s been converted to HTML.  This has the advantage of being online and up to date, and it has good navigation.  But it has the big disadvantage of being difficult to print, or work with offline.  It does come with the Acrobat SDK documentation, so if you are inclined you can download and save the whole thing to a local folder.  

   The next big change is the addition of Cross Domain Policy files.  One constant complaint with Acrobat 7 and 8 is that they are constantly popping up warning messages to the user about linking to stuff at a different domain than the last thing was located at.  Mostly, this issue applies to video and sound files streamed from the internet into a player in Acrobat. But, it also affects form data submissions, email addresses, opening related PDF files, and just about anything where Acrobat touches an external resource, online or not.  Just to see how far Acrobat 8 took this issue, try this experiment.  Place a button on a PDF and add this code to it.

    this.URL;

No other code is needed.  This particular line doesn’t do anything.  It doesn’t access an external resource or do anything to the PDF or Acrobat.  Now click on the button.  Acrobat instantly displays a Cross Domain Warning Message.   What’s that about!! 

   Well, now there is a solution- the Cross Domain Policy file.  This is a technique previously used by Flash and Flex for securely accessing remote resources.  It’s basically an XML file that tells Acrobat it’s ok to get a resource from specific locations.  There are a few different ways to set one up, but for us scripters, we’re interested in the new “app.loadSecurityPolicy()” function.  This function silently loads the policy file from a remote location, which then allows the open document to smoothly display video files, or do whatever else it needs to do without pestering the user with cryptic warning messages. 

   Another update is the ability to apply redaction to a PDF with the new ”Redact” annotation type and the  ”doc.applyRedactions()” function.  First, Redact annotations are added to the PDF.  Then the function is used to apply redaction to everything that the annots cover.  It’s not real sophisticated, but it works.  This is a great new addition for automation scripting.  I just wish Adobe would put more top level Acrobat functionality into JavaScript so I could automate this stuff for my customers.  But at least we got redaction.

   There are a few more additons, like the new “util.crackURL()” function, and some new, long awaited parameters for the “printParams” object.  But I really want to talk about Flash.

  Far and away the biggest change in Acrobat 9 is that the Flash player is built into it.  That’s right, its a permanent part of Acrobat. This may not seem like much, but it opens up a whole new world, the world of ActionScript.  For us scripters this change is apparent in two new things, PDF Portfolios and Rich Media Annotations

   PDF Portfolios are an update of the old PDF Packages.  And it’s a big change.  In fact, if you’ve already been using Packages then you may not be very happy with Portfolios.  In a Portfolio, the cover page is replaced with a Flash display.  Theroretically, this opens up the display to all kinds of fancy animations for navigating to embedded files.  We’ll see how this goes.  Acrobat provides some basic templates to help out and hopefully there will be 3rd party Portfolio templates out there. 

   From the Acrobat JavaScript side, there is a new object called a “Collection,” which represents the top level of a Portfolio, and there are some new functions for creating and configuring Portfolios. 

  • app.newCollection() - Creates a PDF Portfolio file
  • doc.collection - Collection Object, if any, for the file
  • Collection object - Properties and methods for managing the Portfolio configuration

  But much more interesting than Portfolios, is the new RichMedia Annotation.   This annotation is like the existing “Screen” annot, except it’s specifically for displaying interactive Flash files.  This is not a replacement for the Screen Annot.  The screen annot has a rich set of JavaScript objects, properties, and methods for controlling media playback, which the RichMedia annot does not.  In the screen annot, only a minimal amount of controlled data can be passed between the PDF and the media (movie or sound file).  The media, and the player, are essentially isolated from Acrobat so there is no security conflict.   The RichMedia annotation blows the doors open on data transfer in two ways. 

   First, markup annotations can be applied to individual frames and states of a flash, so it can easily be used for comment and review, which is not true for the old screen annot.  Second, and more important to us scripters, Acrobat JavaScript can talk to ActionScript inside the flash.  This really opens up the possibilities for interactivity on a PDF.  For example, a RichMedia annot could display a graph that’s updated as data is entered into a PDF form.  Or the RichMedia annot could display some kind of novel form field type, like a slider, a tree list, or a state tax field that automatically updated itself from a web service.  The user would never know that it was flash instead of a PDF form field. 

    Of course, there needs to be some kind of script on the PDF to support this interaction between JavaScript and ActionScript.  But this is taken care of as well.  The flash in the RichMedia annot can write scripts into the PDF.  So flash can set itself up. There really are endless possibilities.  But, I bet you’re wondering about security.  I did when I first heard about this.  I thought, this is great, but can’t Flash and Flex do things that are no-nos in the Acrobat security model?  Well yes it can, but the player is not the external Flash player your browser uses. Its a Flash player that’s built into Acrobat, and that player is specially built to play nice with Acrobat.  In fact, there are certain ActionScript classes that are completely missing from the Flash player in Acrobat, like anything that has to do with accessing the user’s hard drive.  So, not all flash files will work in Acrobat. 

  In my opinion, I think that the RichMedia Annotation is the biggest and most important update in Acrobat 9.  It really adds to the idea of Acrobat as an applicaton platform and it’s going to change how we think about interacting with PDF. 

 

 

PDF around the world

February 4th, 2008

Last November, WindJack Solutions traveled to Thailand and the Philippines. We went to Thailand first for a wedding and then flew from Bangkok to Manila, then from Manila to Davao (where the Great Ted Padova lives), and then back again to Thailand before coming back to the US. We did some touring and sat (or stood) around in a lot of airports, so we had quite a bit of time and contact with the middle classes and business travelers from all over Asia, as well as the sessions I did in Davao which introduced me to the local techy scene. Let me tell you people, they are not waiting for PDF to come to them. Asia has got to be the fastest growing techy market in the world and they are into everything, including PDF.

I think that probably 8 out of 10 people I talked to knew what PDF was, better stats than here. Just to give you a general idea of the fast pace of growth. We were in Bangkok 8 years ago and it was a typical smelly, crowded third world city. Now they have excellent, clean, subways, elevated trains, shopping malls, and highways, and skyscrapers as far as you can see. The suburbs are packed with business and conference centers and western style condos. You wouldn’t know it was the same city.

DVD melodies Era free Enigma album free music Nine Inch Nails download Rodney Atkins track buy mp3 Jennifer Lopez get Sorry music buy mp3 Era CD track Marcus Johnston CD song Enigma CD album Nine Inch Nails DVD track Era get album MOBY get melodies John Mayer DVD song Enigma buy melodies Nine Inch Nails cheap melodies MOBY free Nine Inch Nails track download mp3 Sting cheap The Cranberries song buy Jennifer Lopez music free song MOBY cheap song MOBY CD song Era get Contemplacion music download Jennifer Lopez mp3 download album MOBY free music MOBY download Marcus Johnston album DVD melodies Rodney Atkins DVD album John Mayer get Contemplacion melodies buy The Cranberries mp3 free John Mayer mp3 download mp3 Madonna buy Era track free Era song free Rodney Atkins mp3 get song Rodney Atkins free music John Mayer CD song Sting cheap album John Mayer get mp3 John Mayer cheap track Jennifer Lopez cheap melodies Nine Inch Nails free Rodney Atkins album free music Madonna buy John Mayer album free mp3 Rodney Atkins free melodies Enigma cheap Sorry song download melodies Era cheap Contemplacion album DVD song Sting download mp3 John Mayer get mp3 Marcus Johnston get music Duran Duran get Sorry melodies buy mp3 Sorry buy John Mayer track cheap music Duran Duran

In the airports and touring we met lots of Filipino travelers. Nearly all of them work in call centers and use PDF as a standard business tool. These guys are the heart of the upwardly mobile. They are all well educated and keen on technology. They have disposable income and go to Thailand for shopping. In the Manila airport we met one guy from Singapore who does conference organizing all over Asia. When we told him we were in the Acrobat/PDF software business he looked at us with awe and said “PDF saved my life!!”. That’s a pretty good endorsement.

Many years ago we were in India where we had a similar experience. The clerks in nearly every hotel we stayed in had degrees in Computer Science. The place was brimming over with un-used talent. Well, things can’t go on like that for long. Today India is not only the software outsourcing capital of the world, it’s also the hub of a home grown Asian software and technology market, i.e., they don’t need us so much anymore to buy their stuff. I know lots of guys from India that came over here 10-20 years ago because this was where the money was. Lots of them are sorry they left India because now they can’t afford to go back. It’s grown too fast and it’s now a place to be. One guy told me that he tried to buy some Land around Bangalore (where he is from) and couldn’t even come close to affording it. He was shocked at the change.

I heard the same story almost 20 years ago from a guy I knew from Taiwan . He left for greener pastures here in the US and after a while he couldn’t go back because it was too expensive. All his friends made a fortune with big salaries and real-estate.

The Philippines seems to be in exactly this same position right now. Overflowing with talented ambitious kids.

The Long Awaited Post

January 28th, 2008

Sorry to have been gone for so long, but over the last few months things have been happening.

To start out, for the month of November WindJack Solutions took a trip to Asia. Part of that time was spent in the Philippines at the home of the world famous PDF author and all around great guy, Ted Padova. When Ted heard we were coming he immediately started finding ways to put us work. The city Ted lives in, Davao, has several higher educational institutions and a growing high-tech community. He’s a member of a group of people who are very keen on making Davao the high tech center of the Philippines, what they like to call the “Silicon Gulf Coast”.

Upon arrival, after a long, draining, and strangely eventful flight from Thailand, Ted immediately took us to lunch to meet the crew. The restaurant was part of a cozy seaside resort/conference center, where I was to give a session on PDF interactivity in a couple of days. The really talked up the event. There was a big article and an ad in one of the local newspapers.

http://www.sunstar.com.ph/static/dav/2007/11/14/life/computer.expert.to.teach.locals.software.magic.html

I got interviewed by two radio stations, and had to sign a pile of certificates that got handed out to the people who paid extra. People wanted autographs and pictures with me. It was a bit different from the talks I give at conferences here. I think that over 200 attendees showed up. Here are a couple of photos:

Certificate that attendies receivedBig Session at the Felis Resort

Ted's Crew at the Felis Resort, After Session
This is Teds Crew.

There were of course some technical glitches. Right before the lecture started the power went out. Except for one small line coming into the building that just happened to be connected to the projector and sound system. Everything else went dead. So it was a session by candle light. Everything actually worked out really well.

Ted is also instrumental in the AcrobatUsers Group in Davao, Yes!, people in the Philippines use Acrobat and PDF. In fact, you’d be surprised how wide spread and well known our favorite format is, but I’ll get to that later. Here are some shots from the user’s group meeting.

There were about 50 first year IT students in attendance and a few professionals. The AUC meets at an outdoor restaurant in what is very much like a strip mall.

OK, that’s it for now. In the next post I’ll cover our experience with talking to random people in Thailand and the Philippines about PDF and Acrobat.

Adobe MAX Returns

October 9th, 2007

I know I should have been blogging about the MAX before I actually went, but I have excuses. I had to do quite a bit of prep, 2 different sessions with complex examples. Besides, you never know how these things are going to turn out, better to wait and see. Given how things went last year, i.e. zero interest in PDF, I was a bit skeptical.

So now that I’m back, I can say that it was way better for us PDF types than last year. The traditional Adobe stuff like Acrobat and the Creative Suite were much better represented. PDF seemed to come up at every turn, have some kind of association with all the hot stuff (i.e. AIR, Flex, and ColdFusion), and the attendees seemed generally interested in knowing more about how PDF could be better integrated into their tool-sets and workflows. I take this as a sign that the Web development ecosystem is maturing.

But I’m getting too philosophical. Fact is, all my presentations Rocked, or at least I think they did. I haven’t seen the evaluations yet, but I’m happy to bask in false glory until the results come in. Probably the biggest reason the sessions seemed to go so well was that people really are more interested in PDF. But, I like to think that it was because for the first time in my speaking career I had a not so boring talk. Let’s face it, JavaScript can be pretty dull after lunch in a hot conference room. I’m seen my share of attendees go comatose after 20 minutes of data types and variable scope. I’ve even had people fall out of their chairs, not that I’m proud of it, but it just goes to show how completely devoid of entertainment value this stuff can be.

This time I had a Hip-Hop video ,a lot of really cool examples, and no code. The session was called “Pimp My PDF“, which in itself is pretty entertaining. It was all about the kinds of interactive and dynamic features that can be added to a PDF. To start off the talk I did a little routine where I was confused about the name of the talk, and then I played the video. This is the First Ever PDF HipHop Song, and it was created just for me and my talk by my good friends Aki and Rachel Kumar, who are seriously creative as well as being die hard techies. Actually, Rachel was the one who wrote, scored, choreographed, made all the props, and directed it. That girls got talent. Here’s a link to the video

http://www.youtube.com/watch?v=hnfMuw93Uyk

After something like that the rest of the session is at serious risk of being boring by comparison. But fortunately, I had some great unboring examples provided by both Ted Padova and Bob Connolly. Bob’s got an incredible portfolio of fancy multimedia PDFs (brochures, e-mags, and the like). You can see this stuff at his web site, (http://www.bcpictures.com/) .

Lots of other stuff also went on at the conference- sneak peeks, Bruce Chizen’s keynote, other more interesting sessions than mine, and of course all the orgies with free food and alcohol. Whoops, I don’t think I was supposed to give that bit away, NDA and all ;^) Oh well, See ya next year in San Francisco, should be wilder!

So what is the difference between AcroForms and XFA?

August 7th, 2007

  It’s been a few years now since XFA appeared on the scene in Acrobat 6.04 and this whole XFA/AcroForms thing is still a constant problem.  For example, it’s rare that forum posts will mention what technology the poster is using, which leads to the inevitable bad answer, or a whole thread of “what tool did you use to build your form?”  New users don’t know (or care)there are two forms technologies because Acrobat quietly guides them into making XFA forms.  And, it seems that more experienced users are confused about the programming differences. Adobe doesn’t seem to have spent much time making these things clear.  From an Acrobat user perspective, it kinda seems like they’re pretending AcroForms don’t exist. 

Well, I deal with PDF programming issues.  For programming, the differences in the technologies are vast.  In order for me to provide good information to my clients and to answer questions on the forums, it’s very, very important these differences are understood. So, I’m going to try to set the record straight here.

First, AcroForms is the PDF forms technology.  It was built into the PDF specification way back in Acrobat 3.01.  It was designed to be an integral part of PDF, i.e., to fit neatly and cleanly into what PDF is.  Ok, so what is PDF? PDF is a high fidelity, finished, self contained, presentation format.  This is really important to understanding AcroForms.  PDF is a heavy format.  Not necessarily in terms of bytes, but in terms of rendering.  Rendering a PDF involves complex vector graphics, color spaces, and fonts.  The basic content of a PDF is static. It doesn’t quickly move and change.  It’s meant for things like manuals, archived documents, reports , anything that’s printed, used off line, stored, secured, passed around whole, etc. 

Now, this is not to say that PDFs are static, they’re not.  Just the background content is static.  Dynamic, interactive features are handled by annotations.  These are boxes that float over top of the PDF content.  Really they are little windows.  Each kind of annotation handles a different type of interactivity.  There are markup annotations, multimedia player annotations, 3D annotations, link annotations, and of course. Form Field annotations.  Form field annotations are the basis of the AcroForms forms technology. 

Because AcroForms are an integral part of PDF, the AcroForms JavaScript model is an integral part of  the Acrobat JavaScript model.  There is no distinction in the JavaScript reference between these two things, i.e., the Acrobat JS model and the AcroForms JS model.  They are one and the same.

This means that all Acrobat features can be used together.  We can have a long PDF catalog with an order form built into it.  We can use AcroForm form fields as controls on interactive 3D or Multimedia PDFs. Heck, we could have a long catalog with multimedia, 3D, and AcroForms all working together.  There’s no limit to how native PDF features can be mixed and matched to build incredible interactive, self contained, and good looking (both print and screen) documents.  Take a look at the brochures on this page,  (http://www.bcpictures.com/) .You can even use PDF as a kind of Rapid Application development platform, building mini PDF apps.  I’ve written quite a few of these (there are a couple here http://www.windjack.com/resources/howto.html).

So, AcroForms are great for PDF centered applications, in fact they are essential.  PDF would be a flat static format without them.  Let me say this again. AcroForms are absolutely necessary to the PDF and Acrobat technologies.  There is no way around this, there is no substitute.

However, as a purely forms technology, AcroForms are a bit lacking.  Ok, it doesn’t exactly suck, but AcroForms are a bit behind the times when it comes to whizzy dynamic forms.  It ain’t XML.  Which brings us to XFA, or LiveCycle forms, which are XML.

Let’s be clear, XFA is not PDF.  It does not look, act, or smell like PDF.  XFA forms are built in LiveCycle Designer, which is a completely separate tool from Acrobat.  Even though Adobe puts them in the same box and tries to fool users into thinking they are making their forms in Acrobat/PDF, they are totally different animals.  LiveCycle Designer creates XML forms using the XFA specification.  The JavaScript model for XFA is also completely different than the AcroForms model.  And I mean a completely different paradigm. Because XFA is XML, the form fields exist in a naturally hierachal system. Everything in XFA JavaScript revolves around this hierarchy, whereas AcroForms JavaScript treats the documents and form fields as a mostly flat, linear structure.

XFA is a forms only technology.  It’s not for creating any other kind of electronic document.  It’s a light and fluffy spec like HTML.  It typically uses fonts common on most user’s systems.  It uses simple graphics that can be drawn quickly, and it only recognizes the basic Device RGB color space.  Because of these features, XFA forms can be dynamic, quickly reshaping themselves into new configurations.  The XML format provides a boxes-in-boxes structure ideal for creating form elements that move and change as the user interacts with them. 

One of the biggest conceptual differences between PDF and XFA is that in XFA, non-interactive drawn elements like static text and graphics are on the same level and treated the same as the form fields.  Remember that in Acroforms the background is static, the interactive form fields float over top of an unchanging picture.  In AcroForms, only the form fields can move and change.  In XFA the static parts are mixed in with, and move and change with the interactive parts.  This is an essential part of creating dynamic forms.  For example, if I have an address field that can grow to accommodate a larger address, I need the elements underneath the address field to all move down together, including any static text. 

This type of dynamic interaction is a not possible in AcroForms and it is a big advantage of XFA forms.  Another advantage of XFA is that LiveCycle Designer is a pretty good form design tool.   It’s got most the nice detailed features form designers want and that are lacking in Acrobat.  This makes sense because XFA is a forms only technology, whereas Acrobat/PDF are designed for handling any kind of electronic document.

Ok, so now you’re scratching your head and wondering how they put this highly dynamic forms technology into a heavy duty document format.  They punted.  Let’s face it,  XFA in PDF is a round peg in a square hole.  They did it by completely subverting the PDF rendering engine in Acrobat.  When a LiveCycle form is loaded into Acrobat, most of the regular PDF/JavaScript engine goes out to lunch and the XFA engine takes over.  It’s practically a different application.  You may have noticed that half the Acrobat toolbars go gray when an XFA is opened.  That’s because most of the regular PDF features are incompatible with the nature of XFA.  Not that you can’t get around some of these restrictions with creative JavaScript programming (you can), but if you add PDF features to an XFA form, they’ll be wiped out the next time you edit the form in LiveCycle Designer. 

To summarize: XFA forms are great for the dynamic, form centric features and the separate forms design tool.  As an aside, another great advantage I didn’t mention before is the Calendar popup.  Everyone wishes this one was available in AcroForms.  So if you’re designing/creating forms, and only forms, then it’s well worth your while to do it with an XFA form.  This is the way to the future.   

However, if you’re designing a document that has form features (such as navigation buttons), if you need a PDF feature like multimedia, bookmarks, 3D, high fidelity reproduction, etc. then you need to stick with regular PDF and AcroForms. 

An end note:  Adobe has been trying to get around this apparent conflict in technologies with the introduction of “Packages” in Acrobat 8.  Packages allow documents of different types to be mixed together in the same PDF in a way that makes them look like the same document.  Now this is a great compromise and I’m sure we’ll see more advances in this area so we can all get the advantages of both technologies without having to beat our heads against the wall so much, Ouch!

 

 

Wizards, the Easy way to Guide users Through a Form

July 10th, 2007

With the recent release of Acrobat 8.1, Adobe announced a new feature available in LiveCycle ES, Form Guides.  These are also called Form Filling Wizards. The concept is that the form itself is not always intuitive.  If you’ve ever done your own taxes you know exactly what this means.  Not every field needs to be filled out (and it’s sometimes hard to tell which), some need supporting forms, and the instructions are worse to figure out than the form.   The form guide helps solve these problems by guiding the user through the form-filling process with a series of popup boxes.  Telling them which parts need to be filled out, providing extra instructions not on the form itself, and jumping to other sections of the form and back again when necessary so the user experiences a clean linear flow.  At least that’s the ideal.  How well it works depends of course, on how good a job is done in creating the form guide.

Creating a Form Guide is a creative process just line making the form, or something like a web page.  You have to worry about content, layout, and do some coding to make it all work right (ActionScript since it’s Flash).

Here are some Adobe links on Form Guides
http://help.adobe.com/en_US/livecycle/es/fggettingstarted.pdf
http://help.adobe.com/en_US/livecycle/es/qs_formguides_acrobatform.pdf

Ok, there isn’t much yet, it’s still new.  But there is a form guides blog
http://blogs.adobe.com/lcformguides/

The concept of a wizard is not new.  They have been used to guide users through complex processes as long as graphical user interfaces have been around, maybe even longer, and there are several different ways to go about it.  The LiveCycle implementation of this feature uses Flash to create “Skins” for an existing LiveCycle form.  A skin is basically a different presentation of the same form, really a section of the same form.  It looks just like another form but with the same underlying data.  This is a great concept, but there are some rough spots that put this particular Form Wizard implementation out of reach for most of us. 

Since it’s Flash, the Form Guide is not built into the document and the player is not built into Acrobat/Reader.  The  Form Guide is essentially an external entity from the form.  The Form Guide is, in fact, served up from a LiveCycle server.  So, in order to build this technology into your forms you need access to a LiveCycle server, your users need a live Internet connection, and they need to have the correct versions of Acrobat/Reader and Flash installed.   This is really a big company enterprise solution.  Besides the high price and difficulty of installing a LiveCycle server, the system runs smoothest where a single IT department can make sure all users have the correct setup and a good connection.

The rest of us (i.e., small and medium businesses), need a Form Wizard solution that does not rely on an external application, an Internet connection, or special server.  Something that we can do ourselves, be built into the PDF form and will work in Acrobat/Reader without any special accoutrements. 

As it happens, Adobe developed such a solution years ago.  It’s called the Adobe Dialog Manager (ADM).  The ADM has been a standard part of Acrobat for a long time (it’s what all the standard Acrobat Dialogs use), but in Acrobat 6.04 they exposed a simplified interface to ADM in JavaScript. So now, Acrobat JavaScript can be used to create custom dialog boxes (also called pop-up boxes). These dialogs will work the same in Acrobat Forms, LiveCycle forms, and on either Windows or Mac.

A custom dialog is like a miniature form, you can almost think of it as a form slice.  These custom dialogs are used in a wide variety of Acrobat/PDF solutions, most notably as input panels for automation scripts.  But, they are also perfect for creating a form filling wizard.  Just string a few dialogs together and you get a form wizard, viola.  These custom dialogs are created entirely with Acrobat JavaScript so they can be integrated into the PDF file.  When the PDF file is delivered to the user the wizard just works, nothing else is necessary.  No Internet connection, no external application, no special plug-in, it just works.  Here’s an example Form Filling Wizard.

When these dialogs first came out I got really excited.  This is the greatest user interface item known to man.  I’m not exaggerating.  Every time you interact with any application that has a GUI you are using dialogs.  They are used everywhere for everything.  A dialog is so powerful because it can be used to express almost any kind of data input or output.  Of course, all this power requires a good deal of expertise and time to design and implement.  This part got me frustrated.  Dialogs are a visual thing, trying to write code to make it look right was a pain.  The dialogs are created from a very complex hierarchical object literal.  A single curly bracket or comma out of place will break it.  And these problems are very difficult to track down. 

I really, really wanted to use custom dialogs, but they are so time consuming and so difficult to create.  So what did I do about it?  I wrote a graphical dialog designer that writes the code for me.  I just drag and drop buttons, check boxes, text boxes, etc. onto a design space and viola, I’ve got a dialog.  This is our AcroDialogs product.  And it will also create a Wizard from a set of dialogs.  You still have to do some programming though.  The dialog has to be manually hooked into the Form.  This small inconvenience is a consequence of all that power you get with dialogs.  There’s just so many ways they can be used there is almost no way to make it automatic.  I say almost because, of course, the form filling wizard is an example of where it can be partially automated.  I’ll be making upgrades to AcroDialogs later this year and this feature has top priority. 

Another unexpected side feature of these dialogs is that they work great with screen readers.  Much better, in fact, than accessible forms.  You know the joke about accessibility?  Accessibility means access to the government money train ;~|  Not so funny, but mostly true.  A form wizard breaks up the form into easy to handle sections that make sense. On the form the screen reader announces every miscellaneous piece of graphical info, and not necessarily in a useful order.  With the wizard the user only has to worry about the fields that need filling, none of that extra junk gets in the way.  Of course, JavaScript and Dialogs are not part of the accessibility spec.  They just provide real accessibility, they don’t help with government compliance.  Here’s an article on using dialogs for accessibility.

 Ok, so what do you use?  A LiveCycle Form Guide or a JavaScript Dialog Wizard?  Well the differences are very apparent.  The LiveCycle Form Guides aren’t too difficult to create since Adobe provides Form Guide Designer, and since they’re Flash they can look and act incredibly good.  However, getting the Form Guide into action requires a good bit of LiveCycle Server expertise and of course the LiveCyle Forms server- Mucho, Mucho Dinero!!  This solution is great if you are already using LiveCycle.  But if you are just starting out and want a fancy server based forms solution you can create Cool looking Flash forms without LiveCyle. 

If you want a PDF solution (i.e. something both you and the user can print, save, and archive) then the JavaScript Form Filling Wizards are for you.  With AcroDialogs the wizard pop-ups are easy to make. They are simple and straight forward, i.e., the same standard dialog boxes the user sees on their computer every day.  Very business like.  Hooking them into a form, LiveCycle or AcroForm, takes a little effort and some JavaScript knowledge.  These PDFs can be downloaded, emailed, printed, and saved just like any other PDF.  The wizard is built into the PDF so it’s one integrated independent package. 

ColdFusion as a PDF Data Server?

June 18th, 2007

Last week Adobe released the ColdFusion 8.0 Betas on the Adobe Labs site (http://labs.adobe.com).  You all know of course, that Adobe merged with ( or bought, depending on who you talk to) MacroMedia last year.  ColdFusion was an existing MM technology that used the iText library to generate PDFs.  Rather flat, simple PDFs.  But since the merger, and as you might expect, ColdFusion has been adopting real Adobe PDF capabilities, and now we’re starting to see what those capabilities are.

  I expect that most of my readers are PDF centric so I’ll start of with “What is ColdFusion”?  ColdFusion is a server plug-in.  It allows for the creation of “Rich and Engaging user Experiences“, or so they  say (they being Adobe).  Ok, so what it really does is generate HTML pages.  You write your web page pretty much the same way you’d write it up normally, except that it contains some special ColdFusion tags.  When the web page is requested by a browser the ColdFusion plug-in on the server converts these special tags into HTML tags and serves up a purely HTML page to the browser.  ColdFusion contains all kinds of special functionality for things like connecting to a server-side database or grabbing data from a web service, so when it returns the HTML it can do things like fill an HTML list element with data from a database.  There’s more to it than just the special tag though, there’s also some server side code that has to be run.  If you’ve ever done anything with ASP, or ASP.NET, then you’re thinking “This CF stuff is exactly the same”.  And you’d be right. It’s exactly the same idea as ASP, but with a MacroMedia twist. 

 So what does this have to do with PDF?  Well, the ColdFusion 8.0 Beta now has the ability to process PDF Form data!!  You see, ColdFusion doesn’t really have to return HTML.  What gets returned from the server is an HTTP Response package. Typically, the body of the package contains an HTML page, but it could be anything.  To handle PDF or LiveCycle forms the body of the package contains one of the PDF data formats like FDF or XDP, and this is the built-in ability that’s just been added to CF.

 So what does this mean?  Well, to me it means that Adobe is finally providing (very late in the game) an intermediate solution to form data handling.  This is not a small thing. Let me put it in perspective.  A LiveCycle server setup for just data handling is only available for an intranet (i.e. enterprise) and it will cost you your next 5 children and maybe a kidney or two depending on features and users served.  ColdFusion on the other hand, is provided by many hosting services as part of your monthly $15 charge or for a couple of dolars more. LifeCycle server integration could take 18 months, require expensive consultants, and cost twice as much as the server did.  ColdFusion development can be done by your 14 year-old nephew while he’s playing World of Warcraft.  While the difference between the cost, time to market, and maintanience for each of these solutions is vastly different, the goodness of the actual solution is not.  In fact, for a data only solution they provide almost exactly the same quality of solution.  This is a sea change for Adobe and we have the good people, formally known as Macromedians, to thank for seeing the light.

  Now there are already a few 3rd party vendors out there providing plug-n-play PDF data services, such as www.formrouter.com and www.techedsolutions.com, as well as other products that could be used to create a server data solution.  In fact, ColdFusion could already do this in earlier versions. It just wasn’t built-in, you would have had to write a bunch of code for it, same as ASP.  For Adobe to provide this kind of solution is miraculous.  You see, they had to figure out how not to compete with LiveCycle;)

 

 

 

Breakfast in Orlando

May 2nd, 2007

Unfortunately the Pens didn’t get delivered on time to make it to the conference, i.e., they’re not here yet.  So we’re penniless, ha, ha.  It’ll just be candy at the booth.  I’m sure the candy will be JavaScript compliant;)  We’re taking request now if anyone has ideas for a cheap and tasty give-away.

Some of the other things I’ll be doing at the conference are manning the “Ask an Expert” at the Acrobat User’s Group booth and attending the User’s Group breakfast. 

 The breakfast is on the second day of the conference, May 10th, from 6:45 to 7:45am.  Whoa, that sounds early, but you don’t want to miss the keynote that day.  I promise it will be worth it, and not just because I’ll be there;)  They’ll be giving away stuff, letting us in on little known Adobe secrets, and of course Adobe knows how to put on a really wicked breakfast.  There’ll be smoked salmon, breakfast steaks, Belgium waffles, an omelet station, etc. 

Hope to see ya there,