Thanks Julian - that did the trick.  Much appreciated.

p.


Quoting Julian Wood <wo...@ucalgary.ca>:

It works fine.

Try something like this:

public class TestPage {
    public Object onPDF(Long id) {
        return new PDFStreamResponse(dao.getPDF(id));
    }

    public Link getPDFLink() {
        return resources.createActionLink("pdf", false);
    }
}

public class PDFStreamResponse implements StreamResponse {
    byte[] pdf;

    public PDFStreamResponse(byte[] pdf) {
        this.pdf = pdf;
    }

    public String getContentType() {
        return "application/pdf";
    }

    public InputStream getStream() throws IOException {
        return new ByteArrayInputStream(pdf);
    }

    public void prepareResponse(Response response) {
    }
}

TestPage.tml:
<a href="javascript:openPdf('${pdfLink}')">Open a PDF</a>

J


On Dec 15, 2008, at 7:59 AM, tapestryphoto wrote:

Thanks Olle,

However, reading the docs I see that the Streaming applies to components. In my situation I need to open a new window, which I currently do with JavaScript (in this example I'm obviously opening a local file, but as I said, in the real version it needs to come from the DB):

e.g.:

<p><a href="javascript:openPdf('file:///c:/DMR2008.pdf')">Open a PDF</a></p>


which is so I can auto-close the window:


function openPdf(url)
{
        windowprops = "left=10,top=10,width=1000,height=1100";

        if (ChildWin)
        {
                return false;
        }

        ChildWin = window.open(url, "ChildWin", windowprops);
        ResetTimer();

        if (TimeOut && RefreshRate)
        {
                setTimeout("CheckClose();",RefreshRate * 1000);
        }
}


I really need the streaming to be coming from a URL I am opening and as far as I can see that won't work as StreamResponse applies to Components only.

Hmmm.....  !

p.


Quoting Olle Hallin <olle.hal...@gmail.com>:

Yes, there is.

Let your handler method return a StreamResponse object.

See http://tapestry.apache.org/tapestry5/guide/pagenav.html
and
http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/StreamResponse.html.

Olle


2008/12/15 tapestryphoto <pho...@digiatlas.org>

Hi,

possibly not Tapestry specific and I'm not knowledgable enough on this
subject, so apologies.

I would like to be able to display a PDF that I obtain from a database
using Hibernate via Tapestry. Is there a way to stream the data?

thanks,
p.




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




--
Olle Hallin
Senior Java Developer and Architect
olle.hal...@crisp.se
www.crisp.se





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to