Sorry Stefan, I restarted Firefox and checked again - it does not work :-(

2010/11/2 Alex Zeit <zeita...@googlemail.com>

> Thank you very much Stefan, it works perfectly!
>
> 2010/10/29 Stefan Lindner <lind...@visionet.de>
>
> How does your trigger look like? I mean the <a> or <button> or <input
>> type="submit"> element? Does it trigger a page refresh, means does it start
>> a request tot he server? Then you still have a problem with cleared session
>> cookie.
>> You need something like <div
>> onclick="openURL(bookmarkableURLWithParameters)"/> or  more in detail
>>
>>
>>        <div onclick=" window.open('http://url.to.servlet.domain', '',
>> 'scrollbars=yes,location=no,menuBar=no,resizable=yes,status=no,toolbar=no')
>> "/>
>>
>> No request cycle is triggered, the page stays untouched you can clear the
>> session cookie as often as you like
>>
>> I did not proof this but I thin this could be te right way.
>>
>> Stefan
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Alex Zeit [mailto:zeita...@googlemail.com]
>> Gesendet: Freitag, 29. Oktober 2010 14:22
>> An: users@wicket.apache.org
>> Betreff: Re: Problems displaying a PDF from stream
>>
>> I mean going to menu "Clear private data" (in German version it is
>> "Neueste Chronik löschen"). Yes Cookies are also removed.
>> For now I implemented my PDF generator as separate Servlet but it has same
>> behaviour unless I disable caching:
>>        // Set to expire far in the past.
>>        response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");
>>        if(request.getHeader("User-Agent").contains("MSIE")){
>>            // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
>>            response.addHeader("Cache-Control", "post-check=0,
>> pre-check=0");
>>        }else{
>>            // Set standard HTTP/1.1 no-cache headers.
>>            // 29.10.10 OE Not working with IE 7
>>            response.setHeader("Cache-Control", "no-store, no-cache,
>> must-revalidate");
>>        }
>>        // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
>>        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
>>        // Set standard HTTP/1.0 no-cache header.
>>        response.setHeader("Pragma", "no-cache");
>>
>> I don't really like this workaround with checking User agnet. But it is
>> only way to make it work properly with Firefox and IE.
>>
>>
>> 2010/10/28 Stefan Lindner <lind...@visionet.de>
>>
>> > What do you mean with "After clearing chronik"? Does this mean that
>> > the session cookie is lost after "After clearing chronik"?
>> > You may take a look at the generated HTML:
>> >
>> >
>> >
>>  
>> Onclick=".....?wicket:interface=:5:.............:pdfIcon:pdf::ILinkListener::"
>> >
>> > This refers to a version oft he page that is no longer valid after the
>> > session is lost. Refreshing the page starts a new session and it works
>> > again.
>> > You must (I don't know how at the moment) produce a sort of
>> > bookemarkable url for this case I think. My guess would be to use a
>> > separate servlet for this.
>> >
>> > Stefan
>> >
>> > -----Ursprüngliche Nachricht-----
>> > Von: Alex Zeit [mailto:zeita...@googlemail.com]
>> > Gesendet: Donnerstag, 28. Oktober 2010 18:21
>> > An: users@wicket.apache.org
>> > Betreff: Re: Problems displaying a PDF from stream
>> >
>> > Now it works with IE and this is most important thing. Thank you very
>> much!
>> > However the problem with Firefox remains. After clearing chronik while
>> > Pdf document is open if I click the link comes "page expired", after
>> > refreshing the main page with link if I click link again comes empty
>> page.
>> >
>> > 2010/10/28 Alex Zeit <zeita...@googlemail.com>
>> >
>> > > Thanks a lot Stefan I will try it right now
>> > >
>> > >
>> > > 2010/10/28 Stefan Lindner <lind...@visionet.de>
>> > >
>> > >> Try this:
>> > >>
>> > >>
>> > >>
>> > >>        public class MyResourceStreamWriter extends
>> > >> AbstractResourceStreamWriter {
>> > >>                private static final long serialVersionUID = 1L;
>> > >>
>> > >>                public MyResourceStreamWriter() {
>> > >>                }
>> > >>
>> > >>                @Override
>> > >>                public void write(final OutputStream output) {
>> > >>                        // !!!!! prduce output here and stream it to
>> > output
>> > >>                        try {
>> > >>                                output.flush();
>> > >>                        } catch (Exception e) {
>> > >>                                e.printStackTrace();
>> > >>                        }
>> > >>                }
>> > >>
>> > >>                @Override
>> > >>                 public String getContentType() {
>> > >>                        return "application/pdf";
>> > >>                }
>> > >>        }
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>         Link<T> pdfLink = new Link<T>("pdf") {
>> > >>                private static final long serialVersionUID = 1L;
>> > >>                @Override
>> > >>                public void onClick() {
>> > >>                        ResourceStreamRequestTarget rsrt = new
>> > >> ResourceStreamRequestTarget(new MyResourceStreamWriter());
>> > >>                        //rsrt.setFileName("file.pdf"); // use this
>> > >> if yout want your browser to ask you wheter you want to save the
>> > >> cownloaded PDF in fil e"file.pdf"
>> > >>                        getRequestCycle().setRequestTarget(rsrt);
>> > >>                }
>> > >>        };
>> > >>
>> > >>
>> > >>        pdfLink.setPopupSettings(new
>> > >> PopupSettings(PopupSettings.RESIZABLE
>> > >> | PopupSettings.SCROLLBARS));
>> > >>        add(pdfLink);
>> > >>
>> > >>
>> > >> Stefan
>> > >>
>> > >>
>> > >> -----Ursprüngliche Nachricht-----
>> > >> Von: Alex Zeit [mailto:zeita...@googlemail.com]
>> > >> Gesendet: Donnerstag, 28. Oktober 2010 15:21
>> > >> An: users@wicket.apache.org
>> > >> Betreff: Re: Problems displaying a PDF from stream
>> > >>
>> > >> Yes
>> > >>
>> > >> 2010/10/28 Stefan Lindner <lind...@visionet.de>
>> > >>
>> > >> > Do you want to open the PDF in a separate window? Klick on some
>> > >> > button and open a new browser window with pdf?
>> > >> >
>> > >> > Stefan
>> > >> >
>> > >> > -----Ursprüngliche Nachricht-----
>> > >> > Von: Alex Zeit [mailto:zeita...@googlemail.com]
>> > >> > Gesendet: Donnerstag, 28. Oktober 2010 15:14
>> > >> > An: users@wicket.apache.org
>> > >> > Betreff: Problems displaying a PDF from stream
>> > >> >
>> > >> > While trying to display a PDF document from stream following
>> > >> > problems
>> > >> > arrise:
>> > >> > IE7:
>> > >> > Resource can not be displaied at all.
>> > >> >
>> > >> > Firefox 3.6.12:
>> > >> > PDF is displaied but if Chronk is cleared in Firefox while
>> > >> > document is open then it cannot be displaied again. It is
>> > >> > possible only after restarting Firefox.
>> > >> >
>> > >> > No errors in log.
>> > >> >
>> > >> > The code:
>> > >> > public class PdfGen extends WebResource {
>> > >> >
>> > >> >    public PdfGen() {
>> > >> >        setCacheable(false);
>> > >> >    }
>> > >> >
>> > >> >    @Override
>> > >> >    public IResourceStream getResourceStream() {
>> > >> >        IResourceStream resourceStream = new
>> > >> > AbstractResourceStreamWriter() {
>> > >> >            private static final long serialVersionUID =
>> > >> > 1934248394380163944L;
>> > >> >            public void write(OutputStream output) {
>> > >> >                testItextDirect(output);
>> > >> >            }
>> > >> >            public String getContentType() {
>> > >> >                return "application/pdf";
>> > >> >            }
>> > >> >        };
>> > >> >        return resourceStream;
>> > >> >    }
>> > >> >
>> > >> >    private void testItextDirect(OutputStream output){
>> > >> >        try {
>> > >> >            Document document = new Document();
>> > >> >            PdfWriter.getInstance(document, output);
>> > >> >            document.open();
>> > >> >            document.add(new Paragraph("Hello World"));
>> > >> >            document.add(new Paragraph(new Date().toString()));
>> > >> >            document.close();
>> > >> >        } catch (DocumentException de) {
>> > >> >            try {
>> > >> >                throw new IOException(de.getMessage());
>> > >> >            } catch (IOException e) {
>> > >> >                e.printStackTrace();
>> > >> >            }
>> > >> >        }
>> > >> >    }
>> > >> > }
>> > >> >
>> > >> >
>> > >> > in the init() of AuthenticatedWebApplication SharedResource added
>> > >> > like
>> > >> > this:
>> > >> > getSharedResources().add("pdfGen", new PdfGen());
>> > >> >
>> > >> > Any help would be highly appreciated Alex
>> > >> >
>> > >> > -----------------------------------------------------------------
>> > >> > --
>> > >> > -- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> > >> > For additional commands, e-mail: users-h...@wicket.apache.org
>> > >> >
>> > >> >
>> > >>
>> > >> -------------------------------------------------------------------
>> > >> -- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> > >> For additional commands, e-mail: users-h...@wicket.apache.org
>> > >>
>> > >>
>> > >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> > For additional commands, e-mail: users-h...@wicket.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>

Reply via email to