PDFs and Internet Explorer. The combination of Internet
Explorer and Acrobat is not always trouble free - particularly
under https or using older versions of Explorer. It can be
difficult to know exactly where the problem lies because there is
an interaction of the Operating System, Explorer and Acrobat. Any
of these can be the cause.
Sometimes, Explorer may get 'stuck' on a particular content type
and insist on displaying your PDF as HTML. In this case, you will
see random text starting with %PDF. Sometimes, this can happen if
you stream PDF data to a window which was previously displaying
HTML.
Sometimes, server-side debugging results in extra data being
inserted into the content stream. While this may not matter for
HTML, it will corrupt binary documents like PDF.
Sometimes, your code may inadvertently insert extra data into
the content stream. Again, this will corrupt the PDF. Error
messages are a common cause of this kind of corruption.
HTTP compression may result in PDF streams being compressed
before return to the browser. While browsers are able to deal with
this type of compression, Acrobat may not be able to. You can see
if this type of compression is being used by examining the headers
returned to the browser using a tool like IEWatch. If you are using
IIS 6 compression, you can disable it on a page by page basis using
the IIS Metabase Explorer from the IIS 6 resource kit.
Sometimes, the use of HTTPS with PDF content can be problematic.
For example, see Microsoft
KB812935.
For testing purposes, you may wish to change the
content-disposition from 'inline' to 'attachment'. This will allow
you to download the data rather than view it in your browser. You
can then check the downloaded document using Acrobat or a hex
editor.
Alternatively, if the problem is that PDFs seem to be cached you
may wish to check the 'Enable Content Expiration' checkbox you will
find under the Web Site Properties.
We would suggest two steps:
- Your first step should be to eliminate ABCpdf as the cause. Why
not save the PDF to disk at the same time as sending it to the
client? That way you can establish that the PDF is fine. If you
want to take it further, you can then read the PDF data from disk
and stream it direct to the client.
- The example site streams PDF data direct to the client. So,
install the example site into a new virtual directory and establish
if the same issue exists for the example site. If it works, then
it's simply a matter of moving your current code base and the
example site code base towards each other until you find the cause
of the problem.
|