These forums are now Read Only. If you have an Acrobat question, ask questions and get help from one of our experts.

Poster image generation for SWF files

efos
Registered: Jan 8 2009
Posts: 63

I'm creating a document with a lot of embedded flash. We're using flash files for vector images to keep file size down and maximize print quality; unfortunately I've come to notice that embedded files get replaced with a "poster" jpg until activated, this means that all inactive pages will print the low quality jpg. On top of this, the auto-generated file has a play button image on it, which I do not want or need. I built a player into the animation files when needed and its hidden from view until needed so in the print version they will look just like static figures. I have two questions:

Can I change the autogenerated image behavior to not generate this image? This would be a half acceptable compromise if I cannot get around the use of a rasterized placeholder.

Ideal: can I make it use a vector placeholder instead? I see that I can use another PDF for the poster, but then I'd need to make THAT pdf store a vector placeholder to represent the placeholder for the parent doc, and that seems to present us with an infinite recursion of the same problem.

I have searched high and low for people with this issue and can't find anything. What say you AcrobatUsers? Any Ideas?

efos
Registered: Jan 8 2009
Posts: 63
Ok. I've been confusing GetAnnot[b]s[/b]RichMedia and getAnnotRichMedia. So since I've got my javascript working, I made a 'print document' button, which solves my vector print problem.

And it solves it alike-a so:

for (var p=0; p < this.numPages;p++){if (this.getAnnotsRichMedia(p)){for (var r=0; r < this.getAnnotsRichMedia(p).length;r++){this.getAnnotsRichMedia(p)[r].activated = true}}if (this.getAnnots3D(p)){for (var r=0; r < this.getAnnots3D(p).length;r++){this.getAnnots3D(p)[r].activated = true}}} print() for (var p=0; p < this.numPages;p++){if (this.getAnnotsRichMedia(p)){for (var r=0; r < this.getAnnotsRichMedia(p).length;r++){this.getAnnotsRichMedia(p)[r].activated = false}}if (this.getAnnots3D(p)){for (var r=0; r < this.getAnnots3D(p).length;r++){this.getAnnots3D(p)[r].activated = false}}}

Then I replaced posters with a standard 1px BMP, at mere 60 bytes this acceptably solves my bloat issue. So I am resolved.

Still curious about embedding without a poster file, or removing that arrow from the default poster; if anyone knows anything about it.
thomp
Expert
Registered: Feb 15 2006
Posts: 4411
The RichMedia Annot is brand new in Acrobat 9, and there haven't been any updates yet. So there are a few issues. Acrobat always generates a poster, if you would like the RMA to be invisible there are currently two solutions, Hide it behind somthing else (like a button) or replace the poster with an transparent gif.

However, it's brand new so there are likely to be big changes for this puppy in the future, like a hidden attribute. So maybe your getting ahead of the curve with this. It's not always good to be an early adobpter. Until the operation of the component is smoothed out it's possible that Adobe will make changes that will break you implimentation.

Thom Parker
The source for PDF Scripting Info
[url=http://www.pdfScripting.com]pdfscripting.com[/url]

The Acrobat JavaScript Reference, Use it Early and Often
[url=http://www.adobe.com/devnet/acrobat/javascript.php]http://www.adobe.com/devnet/acrobat/javascript.php[/url]

Thom Parker
The source for PDF Scripting Info
www.pdfscripting.com
Very Important - How to Debug Your Script

efos
Registered: Jan 8 2009
Posts: 63
Oh, no I don't want them invisible. My issue with the poster is that it:

1 - Takes up file size, and our size restrictions are incredibly strict for the level of content involved; so I'm scraping for every last byte I can get my hands on.

and

2 - placed that play arrow on inactive RMs so if you wanted to print the document you would see all these little arrows on the graphics.

All I'm trying to accomplish with my js there is I'm enabling all the RMs so they print out both in their resolution independant vector form, and in their intended state without being obscured by the inactive arrow. Calling print so the user doesn't have to be reminded that if he starts page turning before he prints, he will start deactivating icons again. And then deactivates them all again to spare the ram.

Interesting note about developing on the bleeding edge though, I'll keep that in mind; but this particular kludgery has to be. Hopefully if they're going to break it, they'll break it before we deliver :)