Search code examples
httppdfcontent-typeacrobat

"name" web pdf for better default save filename in Acrobat?


My app generates PDFs for user consumption. The "Content-Disposition" http header is set as mentioned here. This is set to "inline; filename=foo.pdf", which should be enough for Acrobat to give "foo.pdf" as the filename when saving the pdf.

However, upon clicking the "Save" button in the browser-embedded Acrobat, the default name to save is not that filename but instead the URL with slashes changed to underscores. Huge and ugly. Is there a way to affect this default filename in Adobe?

There IS a query string in the URLs, and this is non-negotiable. This may be significant, but adding a "&foo=/title.pdf" to the end of the URL doesn't affect the default filename.

Update 2: I've tried both

content-disposition  inline; filename=foo.pdf
Content-Type         application/pdf; filename=foo.pdf

and

content-disposition  inline; filename=foo.pdf
Content-Type         application/pdf; name=foo.pdf

(as verified through Firebug) Sadly, neither worked.

A sample url is

/bar/sessions/958d8a22-0/views/1493881172/export?format=application/pdf&no-attachment=true

which translates to a default Acrobat save as filename of

http___localhost_bar_sessions_958d8a22-0_views_1493881172_export_format=application_pdf&no-attachment=true.pdf

Update 3: Julian Reschke brings actual insight and rigor to this case. Please upvote his answer. This seems to be broken in FF (https://bugzilla.mozilla.org/show_bug.cgi?id=433613) and IE but work in Opera, Safari, and Chrome. http://greenbytes.de/tech/tc2231/#inlwithasciifilenamepdf


Solution

  • Part of the problem is that the relevant RFC 2183 doesn't really state what to do with a disposition type of "inline" and a filename.

    Also, as far as I can tell, the only UA that actually uses the filename for type=inline is Firefox (see test case).

    Finally, it's not obvious that the plugin API actually makes that information available (maybe someboy familiar with the API can elaborate).

    That being said, I have sent a pointer to this question to an Adobe person; maybe the right people will have a look.

    Related: see attempt to clarify Content-Disposition in HTTP in draft-reschke-rfc2183-in-http -- this is early work in progress, feedback appreciated.

    Update: I have added a test case, which seems to indicate that the Acrobat reader plugin doesn't use the response headers (in Firefox), although the plugin API provides access to them.