Yep, I got it to work just as your mail poped in :)

Thanks for your help and time Mike

"Mike Flynn" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> It goes into a link to whatever PHP file you're using to return the
> contents of the .PDF.  It would work in the address field in the browser,
> too.  I don't see why you're typing http://localhost/test.php/whatever.pdf
> into the address field since that isn't the URL I told you to use.  I
said:
>
> http://whatever/stuff.php?options/desired_filename.pdf
>
> As you can see, instead of stuff.php put the name of the php file that has
> your code to return the binary contents of the .pdf file.  You can follow
> it with whatever optional parameters you want in the query string (i/e
> after the '?' question mark), either way, make sure at the very end of the
> address is a slash '/' followed by the desired filename you want to use,
> ending in .pdf.
>
> -Mike
>
> At 05:58 PM 2/26/02 +0100, you wrote:
> >Is the example below meant to go into a link (<a href=***></a>)?
> >Or is it meant for the address field on the browser?
> >If I type "http://localhost/test.php/whatever.pdf"; in the address field I
> >get a server error which I was also expecting to be hornest. I don't see
how
> >that should work.
> >
> >
> >"Mike Flynn" <[EMAIL PROTECTED]> wrote in message
> >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > > Use a slash and then the filename.pdf.  So
> > > http://whatever/stuff.php?options/desired_filename.pdf would do it.
It's
> > > ok that you aren't linking to a real file, it doesn't matter.  Just
the
> > > file that you want the .pdf document to be known as to the user's
browser.
> > >
> > > At 05:07 PM 2/26/2002 +0100, Sviss Cobazor wrote:
> > > >Hmm in my case there is no file to link to. The pdf document doesn't
> >exist,
> > > >it's generated on-the-fly. Take this example:
> > > >
> > > >test.php contains:
> > > >
> > > ><?
> > > >function topdf($file, $options = "") {
> > > >     header("Content-Type: application/pdf");
> > > >     flush();
> > > >  passthru("C:\htmldoc -t pdf14 --quiet --jpeg size A4 --webpage
$options
> > > >\"$file\"");
> > > >}
> > > >
> > > >$url = "http://localhost/whatever.html";;
> > > >
> > > >topdf($url);
> > > >?>
> > > >
> > > >So the idea was to write the address "http://localhost/test.php"; and
the
> > > >browser would load Acrobat Reader and show the pdf document generated
> >from
> > > >"whatever.html".
> > > >
> > > >So how do I get the ".pdf" added?
> > > >By typing the address "http://localhost/test.php?.pdf"; ? Doesn't seem
to
> > > >work.
> > > >
> > > >"Mike Flynn" <[EMAIL PROTECTED]> wrote in message
> > > >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > > > > Yes, this has been documented extensively on the web.  The fix is
to
> >put a
> > > > > pdf extension at the end of the url call to your script that is
> >returning
> > > > > the pdf file.  You can use an arbitrary filename ending in .pdf,
or
> >you
> > > >can
> > > > > use the actual filename of the .pdf file, which would be
preferable so
> > > >that
> > > > > if the user tries to save the .pdf file, the default filename is
> > > > > correct.  So what this means is that the script that is linking to
> >your
> > > > > .pdf-returning script needs to know the filename/that it is a .pdf
> >file,
> > > > > ahead of time.  So you want to do something like this:
> > > > >
> > > > > <?php
> > > > > $query  = 'SELECT strFileFilename FROM tblFiles ';
> > > > > $query .= "WHERE intFileID=$id";
> > > > > $filename = mysql_result(mysql_query($query), 0);
> > > > > print "<a href=\"/stuff/getfile.php?id=$id/$filename\">Here's the
> > > >PDF</a>\n";
> > > > > ?>
> > > > >
> > > > > -Mike
> > > > >
> > > > > At 03:09 PM 2/26/2002 +0100, Sviss Cobazor wrote:
> > > > > >However, sigh, IE seems to have a bug so that Acrobat Reader is
only
> > > >loaded
> > > > > >when the URL ends with ".pdf" aka IE doesn't give a rats about
the
> >header
> > > > > >sent to it.
> > > > > >Using Telnet I can see that the pdf page is returned correctly
but
> >when
> > > > > >using IE I still get a blank page due to the fact that no
> >(pre-generated)
> > > > > >pdf document is sent to it and therefore the URL doesn't contain
a
> > > > > >"whatever.pdf" ind the end and therefore doesn't load Acrobat
Reader.
> > > > > >Look at this example:
> > > > > >
> > > > > >header("Content-Type: application/pdf");
> > > > > >flush();
> > > > > >passthru("C:\htmldoc -t pdf14 --quiet --jpeg size A4 --webpage
> > > > > >\"http://localhost/whatever.html\"";);
> > > > > >
> > > > > >This works fine with Telnet (where output is nonsense),
> > > > > >but doesn't with IE (where the output would make sense).
> > > > > >
> > > > > >Does anyone have a solution to this?
> > > > > >How to get IE to understand that the data sent to it is to be
handled
> >as
> > > >a
> > > > > >pdf document (as in load Acrobat Reader)?
> > > > > >
> > > > > >
> > > > > >
> > > > > >"Sviss Cobazor" <[EMAIL PROTECTED]> wrote in message
> > > > > >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > > > > > > It seemed that it was Putty itself that wouldn't work for me
> >(don't
> > > >ask me
> > > > > > > why).
> > > > > > > So I used Telnet and it worked.
> > > > > > > After having my advicor (this is a education project) visiting
me
> >we
> > > >found
> > > > > > > out why that passthru() function didn't work.
> > > > > > > It's very simple really, passthru() doesn't allow spaces in
paths
> >so
> > > > > > > "C:\program files\etc." becomes "C:\program" => false path.
> > > > > > > Removing the application (htmldoc.exe) to "C:\" instead did
the
> >job.
> > > > > > >
> > > > > > > For anyone else having same problems this is the correct way
to
> >type
> > > >it
> > > > > >(my
> > > > > > > example):
> > > > > > >
> > > > > > > <?
> > > > > > > function topdf($filename, $options = "") {
> > > > > > >     header("Content-Type: application/pdf");
> > > > > > >     flush();
> > > > > > >     passthru("C:\htmldoc -t pdf14 --quiet --jpeg size
A4 --webpage
> > > > > >$options
> > > > > > > \"$filename\"");
> > > > > > > }
> > > > > > > ?>
> > > > > > >
> > > > > > > This function now works and sends the result pdf directly to
the
> > > >browser.
> > > > > > >
> > > > > > > Thanks for your time Court, I wouldn't have thought of using
> >Telnet
> > > >myself
> > > > > > > :)
> > > > > > >
> > > > > > > ~ Sviss
> > > > > > >
> > > > > > > "Court Shrock" <[EMAIL PROTECTED]> wrote in message
> > > > > > >
> >[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> > > > > > > > To explain the 400 bad request, you most likely had a typo
when
> >you
> > > > > >typed
> > > > > > > in
> > > > > > > > the HTTP request.  The request is case-sensitive and very
> > > >particular.
> > > > > > > Most
> > > > > > > > likely, the "Host: localhost" portion of the request messed
up
> > > >somehow.
> > > > > > > >
> > > > > > > > When you get a "HTTP/1.1 200 OK" response, that means that
the
> > > >webserver
> > > > > > > > accepted the request and will process your request.  In
order to
> > > >test
> > > > > > > > whether or not the passthru function is doing things
properly,
> >you
> > > >are
> > > > > > > > verifying what is being sent to the browser by simulating
what
> >the
> > > > > >browser
> > > > > > > > would send to your webserver and then what the browser is
> >getting in
> > > > > > > > response.  It will all start to make sense when you start
seeing
> > > >your
> > > > > > > files
> > > > > > > > output--of course, in the request that I had you type, I
assumed
> >the
> > > > > >file
> > > > > > > > that returns the pdf is named "index.php" or whatever file
your
> > > > > >webserver
> > > > > > > > will retrieve when it gets a root "/" request.  If this is
not
> >the
> > > >case,
> > > > > > > you
> > > > > > > > need to replace the "GET / HTTP/1.1" line with "GET
> >/yourfile.php
> > > > > > > HTTP/1.1"
> > > > > > > > or even "GET /yourfile.php?var1=whatever__yougettheidea
> >HTTP/1.1".
> > > > > > > >
> > > > > > > > passthru is working properly if you see something like:
> > > > > > > > HTTP/1.1 200 OK
> > > > > > > > Date: Mon, 25 Feb 2002 23:20:35 GMT
> > > > > > > > Server: Apache/1.3.20 (Unix) PHP/4.0.6 mod_ssl/2.8.4
> >OpenSSL/0.9.6
> > > > > > > > X-Powered-By: PHP/4.0.6
> > > > > > > > Transfer-Encoding: chunked
> > > > > > > > Content-Type: application/pdf
> > > > > > > >
> > > > > > > > [lots of binary data]
> > > > > > > >
> > > > > > > > it isn't working if you see something like this:
> > > > > > > > HTTP/1.1 200 OK
> > > > > > > > Date: Mon, 25 Feb 2002 23:20:35 GMT
> > > > > > > > Server: Apache/1.3.20 (Unix) PHP/4.0.6 mod_ssl/2.8.4
> >OpenSSL/0.9.6
> > > > > > > > X-Powered-By: PHP/4.0.6
> > > > > > > > Transfer-Encoding: chunked
> > > > > > > > Content-Type: text/html
> > > > > > > >
> > > > > > > > <html>some stupid html, or nothing at all</html>
> > > > > > > >
> > > > > > > > in which case, I would try a different method to verify that
> >data is
> > > > > > > > properly passing between php and htmldoc.exe.
> > > > > > > >
> > > > > > > > I hope this has addressed some of the confusion.
> > > > > > > > Court
> > > > > > > >
> > > > > > > > > -----Original Message-----
> > > > > > > > > From: Sviss Cobazor [mailto:[EMAIL PROTECTED]]
> > > > > > > > > Sent: Monday, February 25, 2002 5:12 PM
> > > > > > > > > To: [EMAIL PROTECTED]
> > > > > > > > > Subject: Re: [PHP-WIN] passthru() on Win98 ??
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > I followed your instructions and got:
> > > > > > > > >
> > > > > > > > > HTTP/1.1 400 bad request
> > > > > > > > > > Date: Tue, 26 Feb 2002 01:05:57 GMT
> > > > > > > > > > Server: Apache/1.3.20 (Win32)
> > > > > > > > > > Connection: close
> > > > > > > > > > Content-Type: text/html charset=iso-8859-1
> > > > > > > > >
> > > > > > > > > ... And then the same in html source ... (in the putty
window)
> > > > > > > > >
> > > > > > > > > So I didn't get what was expected but either way I'm not
sure
> > > > > > > > > what to do if
> > > > > > > > > I did.
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >--
> > > > > >PHP Windows Mailing List (http://www.php.net/)
> > > > > >To unsubscribe, visit: http://www.php.net/unsub.php
> > > > >
> > > > >
> > > > > -- Mike Flynn - Burlington, VT --
> > > > >   mike @ mikeflynn.net
> > > > >   http://www.mikeflynn.net/
> > > > > home=>work=>home=>store=>home [adbusters]
> > > > >
> > > >
> > > >
> > > >
> > > >--
> > > >PHP Windows Mailing List (http://www.php.net/)
> > > >To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> > >
> > > -- Mike Flynn - Burlington, VT --
> > >   mike @ mikeflynn.net
> > >   http://www.mikeflynn.net/
> > > home=>work=>home=>store=>home [adbusters]
> > >
> >
> >
> >
> >--
> >PHP Windows Mailing List (http://www.php.net/)
> >To unsubscribe, visit: http://www.php.net/unsub.php
>
>
> -- Mike Flynn --
> mike @ mikeflynn . net
> home => work => home => shop => home [adbusters]
>



-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to