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

Reply via email to