Re: Using BinaryWrite to output PDF to IE



Hi Alec,

In my guess, it seems that you open pdf file then write to browser. But you
forget to close the pdf file. Because I can open it in the first time. Then
no matter I use IE, Firefox, or NS, I cannot open it any more.

HTH

Elton Wang

"Alec MacLean" wrote:

Hi Kevin,

Thanks for your feedback. You don't mention your OS/browser versions - this
might help me a bit. I know it works when using Firefox.

Yes, Adobe Reader (v.7) is installed on all the machines accessing the
pages.

The Adobe Reader error message provided is:
"There was an error opening this document. This file is already open or
in use by another application."

I've been searching further afield and note that a few people have logged
similar problems, particularly for PDF output.

One suggestion is to alter the metabase.xml file to allow greater sizes of
AspBufferingLimit, e.g. set it to "2000000000" (2Gb).
However, the test files I'm using are only in the 85Kb range, so clearly
shouldn't be a problem for the default limit of 4Mb.

Interestingly, the XP PC I'm using to develop on doesn't have a
metabase.xml - presumably one of the differences between the versions of IIS
for XP and Windows Server 2003.

Al



"Kevin Spencer" <kevin@xxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:Oi9WPazTGHA.5332@xxxxxxxxxxxxxxxxxxxxxxx
It didn't fail on this client. Are you sure that the Adobe acrobat reader
was installed on the machine on which it failed? Can you describe in
detail what you mean by "failed?"

--
HTH,

Kevin Spencer
Microsoft MVP
Professional Numbskull

Show me your certification without works,
and I'll show my certification
*by* my works.

"Alec MacLean" <alec.maclean@xxxxxxxxxxxxxxxxxxx> wrote in message
news:e0jsuMzTGHA.792@xxxxxxxxxxxxxxxxxxxxxxx
Hi,

I've created a small application for our company extranet (staff
bulletins)
that outputs a list of links to PDF's that are stored in a SQL table.
The
user clicks a link and the PDF is loaded into a new browser window.

This works as expected on the test PC (using forms authentication, but no
SSL) using IE. It also works as expected on the production server when
using FireFox. The production server environment is using forms
authentication and SSL.

However the PDF load fails when using IE as the browser to access the
production server (which my users/staff colleagues will be doing).

I have also tested it without using SSL or Forms authentication by
putting
it on our public site on the production server.
This also means you can (temporarily) see the problem for yourself
at: www.copeohs.com/ebulletins/bulletins.aspx

The error seems to be generated by Adobe Reader rather than specifically
IE,
but as the system works using FireFox, I am guessing it is the
relationship
between IE and Adobe Reader that is the problem?

The Adobe Reader error message provided is:
"There was an error opening this document. This file is already open or
in
use by another application."

I am using VB.NET 1.1 on IIS 6 (win 2003 svr).

Code snippet that outputs the PDF from the DB:
--------------------------------------------------------
'The required file ID comes from the querystring.
If Me.Request.IsAuthenticated Then
If Request.QueryString.Count <> 0 Then
'Get the (pdf) filename to display
Me.FileID = CInt(Request.QueryString("doc").ToString)
Dim ds As New DataSet
Dim PDFfileSize As Long
Dim db As Database = DatabaseFactory.CreateDatabase
Dim cmd As DBCommandWrapper =
db.GetStoredProcCommandWrapper("usp_Bulletin_Single_SELECT")
cmd.AddInParameter("@BID", DbType.Int32, Me.FileID)

Try
Me.lblErr.Visible = False
'Load the record (PDF file) into local dataset
db.LoadDataSet(cmd, ds, "theBulletin")

'Resize the byte array for file
PDFfileSize =
CLng(ds.Tables("theBulletin").Rows(0).Item("BFile").length)
Dim thePDF(CInt(PDFfileSize)) As Byte

'Put the PDf into the byte array
thePDF = ds.Tables("theBulletin").Rows(0).Item("BFile")

'Send the file to the output stream
Response.BufferOutput = True

'Try and ensure the browser always opens the file and doesn't just
prompt to "open/save".
Response.AddHeader("Content-Disposition", "inline")

'Set the output stream to the correct content type (PDF).
Response.ContentType = "application/pdf"

'Output the file
Response.BinaryWrite(thePDF)

thePDF = Nothing

Catch ex As Exception
Me.lblErr.Visible = True
Me.lblErr.Text = ex.Message.ToString

Finally
'Tidy memory
ds = Nothing
cmd = Nothing
db = Nothing
End Try

End If
Else
Response.Redirect("/logon/applist.aspx")
End If
--------------------------------------------------------

I would greatly appreciate any help/ideas offered...thanks in advance.

Al








.



Relevant Pages

  • Re: Using BinaryWrite to output PDF to IE
    ... Adobe Reader is installed on all the machines accessing the ... user clicks a link and the PDF is loaded into a new browser window. ... Dim PDFfileSize As Long ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: target="_blank"
    ... I've personally closed the browser window after following a PDF ... > Netscape, but it opens from within an IE window by default, ... ;-) Most MS Office documents ...
    (alt.html)
  • Re: Hyperlink in PDF should open in new browser
    ... I use Tracker's PDF-Viewer Pro and it opens a PDF download in the browser ... window and if the PDF file has a url address will open a second browser ...
    (comp.text.pdf)
  • Re: Word2007 does auto open PDF after Save as command
    ... and it still won't automatically open the PDF when I use the Save as PDF or ... Word MVP web site http://word.mvps.org ... I can categorcially say that PDF Reader opens automatically everytime ... I have also set the default Adobe Reader 9.2 as the default ...
    (microsoft.public.word.docmanagement)
  • Re: Word2007 does auto open PDF after Save as command
    ... If uninstalling the PDF plug-in then reinstalling it doesn't fix it, ... Word MVP web site http://word.mvps.org ... I can categorcially say that PDF Reader opens automatically ... I have also set the default Adobe Reader 9.2 as the default ...
    (microsoft.public.word.docmanagement)

Quantcast