Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-12 Thread harmoniaa
https://issues.apache.org/jira/browse/WICKET-5232



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659438.html
Sent from the Users forum mailing list archive at Nabble.com.

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



Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-12 Thread Martin Grigorov
Hi,

This can be relaxed. Please file a ticket.


On Wed, Jun 12, 2013 at 2:55 PM, harmoniaa <
edvard.fons...@nitorcreations.com> wrote:

> I created a quickstart but didn't create a ticket yet, because I found out
> that ComponentRenderer expects to get a component whose markupId equals to
> ComponentRenderer.COMP_ID.
>
> Is this a bug or a feature? Is there some way to render the markup of an
> existing component that has an arbitrary markupId using ComponentRenderer?
>
> I tried calling #setMarkupId and wrapping the existing component to a new
> component with expected markupId but both ways failed. Would it be easy to
> enhance ComponentRenderer to work with any markupIds?
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659415.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-12 Thread harmoniaa
I created a quickstart but didn't create a ticket yet, because I found out
that ComponentRenderer expects to get a component whose markupId equals to
ComponentRenderer.COMP_ID.

Is this a bug or a feature? Is there some way to render the markup of an
existing component that has an arbitrary markupId using ComponentRenderer?

I tried calling #setMarkupId and wrapping the existing component to a new
component with expected markupId but both ways failed. Would it be easy to
enhance ComponentRenderer to work with any markupIds?



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659415.html
Sent from the Users forum mailing list archive at Nabble.com.

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



Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-10 Thread Martin Grigorov
On Mon, Jun 10, 2013 at 4:30 PM, harmoniaa <
edvard.fons...@nitorcreations.com> wrote:

> Good point. Anyway, that still leaves me the issue with ListView...
>

Please create a ticket with a quickstart for this.


>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659354.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-10 Thread harmoniaa
Good point. Anyway, that still leaves me the issue with ListView...



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659354.html
Sent from the Users forum mailing list archive at Nabble.com.

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



Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-10 Thread Martin Grigorov
Hi Edvard,

Thank you for the feedback.

ComponentRenderer (CR) just asks Wicket to render a component. The
rendering process uses all the application settings so if the wicket
tags/attributes cause any problems then the application can turn them off
before using CR and turn on after.
So I think CR doesn't need to be changed to have this code in itself.

In production mode Wicket strips these tags and attributes unless you
explicitly turn them on.


On Mon, Jun 10, 2013 at 4:05 PM, harmoniaa <
edvard.fons...@nitorcreations.com> wrote:

> FYI:
>
> I had a problem using ComponentRenderer with ListView (it was complaining
> the there was no markup for wicket-id "my-wicket-id").
>
> Additionally, ITextRenderer (or xerces actually) was not able to parse XML
> from the markup with Wicket tags ("The prefix "wicket" for element
> "wicket:container" is not bound.").
>
> I found another solution here: http://stackoverflow.com/a/11898702/536265
>
> Then I added this before rendering:
>
>   IMarkupSettings markupSettings =
> component.getApplication().getMarkupSettings();
>   boolean originalStripWicketTags = markupSettings.getStripWicketTags();
>   markupSettings.setStripWicketTags(true);
>
> And to the finally block:
>
>   markupSettings.setStripWicketTags(originalStripWicketTags);
>
> If you think ComponentRenderer could/should be improved, maybe this will
> give you some ideas.
>
>
>
> --
> View this message in context:
> http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659352.html
> Sent from the Users forum mailing list archive at Nabble.com.
>
> -
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-10 Thread harmoniaa
FYI:

I had a problem using ComponentRenderer with ListView (it was complaining
the there was no markup for wicket-id "my-wicket-id").

Additionally, ITextRenderer (or xerces actually) was not able to parse XML
from the markup with Wicket tags ("The prefix "wicket" for element
"wicket:container" is not bound.").

I found another solution here: http://stackoverflow.com/a/11898702/536265

Then I added this before rendering:

  IMarkupSettings markupSettings =
component.getApplication().getMarkupSettings();
  boolean originalStripWicketTags = markupSettings.getStripWicketTags();
  markupSettings.setStripWicketTags(true);

And to the finally block:

  markupSettings.setStripWicketTags(originalStripWicketTags);

If you think ComponentRenderer could/should be improved, maybe this will
give you some ideas.



--
View this message in context: 
http://apache-wicket.1842946.n4.nabble.com/Can-i-display-a-WepPage-in-a-PDF-How-to-get-the-rendered-markup-tp4659290p4659352.html
Sent from the Users forum mailing list archive at Nabble.com.

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



Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-10 Thread Martin Grigorov
Hi,

Since Wicket 6.7.0 there is ComponentRenderer class which does exactly the
same.


On Sat, Jun 8, 2013 at 12:01 AM, Per Newgro  wrote:

> Found the solution already. I did it that way:
>
> public class FlyingSaucerPdfResource extends ByteArrayResource {
>
> public FlyingSaucerPdfResource() {
> super("application/pdf");
> }
>
> @Override
> protected byte[] getData(Attributes attributes) {
> ByteArrayOutputStream os;
> try {
> CharSequence buf = renderPage(HomePage.class,
> attributes.getParameters());
> ITextRenderer renderer = new ITextRenderer();
> renderer.**setDocumentFromString(buf.**toString());
> renderer.layout();
> renderer.createPDF(os = new ByteArrayOutputStream());
> os.close();
> } catch (IOException | DocumentException e) {
> throw new RuntimeException(e);
> }
> return os.toByteArray();
> }
>
> private CharSequence renderPage(final Class pageClass,
> PageParameters parameters) {
>
> final RenderPageRequestHandler handler = new
> RenderPageRequestHandler(
> new PageProvider(pageClass, parameters),
> RedirectPolicy.NEVER_REDIRECT)**;
>
> final PageRenderer pageRenderer = getApplication()
> .getPageRendererProvider().**get(handler);
>
> RequestCycle originalRequestCycle = RequestCycle.get();
>
> BufferedWebResponse tempResponse = new BufferedWebResponse(null);
>
> RequestCycleContext requestCycleContext = new RequestCycleContext(
> originalRequestCycle.**getRequest(), tempResponse,
> getApplication().**getRootRequestMapper(),
> getApplication()
> .getExceptionMapperProvider().**get());
> RequestCycle tempRequestCycle = new RequestCycle(**
> requestCycleContext);
>
> final Response oldResponse = originalRequestCycle.**getResponse();
>
> try {
> originalRequestCycle.**setResponse(tempResponse);
> pageRenderer.respond(**tempRequestCycle);
> } finally {
> originalRequestCycle.**setResponse(oldResponse);
> }
>
> return tempResponse.getText();
> }
>
> private Application getApplication() {
> return Application.get();
>
> }
>
> --**--**-
> To unsubscribe, e-mail: 
> users-unsubscribe@wicket.**apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>


Re: Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-07 Thread Per Newgro

Found the solution already. I did it that way:

public class FlyingSaucerPdfResource extends ByteArrayResource {

public FlyingSaucerPdfResource() {
super("application/pdf");
}

@Override
protected byte[] getData(Attributes attributes) {
ByteArrayOutputStream os;
try {
CharSequence buf = renderPage(HomePage.class, 
attributes.getParameters());

ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(buf.toString());
renderer.layout();
renderer.createPDF(os = new ByteArrayOutputStream());
os.close();
} catch (IOException | DocumentException e) {
throw new RuntimeException(e);
}
return os.toByteArray();
}

private CharSequence renderPage(final Class pageClass,
PageParameters parameters) {

final RenderPageRequestHandler handler = new 
RenderPageRequestHandler(

new PageProvider(pageClass, parameters),
RedirectPolicy.NEVER_REDIRECT);

final PageRenderer pageRenderer = getApplication()
.getPageRendererProvider().get(handler);

RequestCycle originalRequestCycle = RequestCycle.get();

BufferedWebResponse tempResponse = new BufferedWebResponse(null);

RequestCycleContext requestCycleContext = new RequestCycleContext(
originalRequestCycle.getRequest(), tempResponse,
getApplication().getRootRequestMapper(), getApplication()
.getExceptionMapperProvider().get());
RequestCycle tempRequestCycle = new 
RequestCycle(requestCycleContext);


final Response oldResponse = originalRequestCycle.getResponse();

try {
originalRequestCycle.setResponse(tempResponse);
pageRenderer.respond(tempRequestCycle);
} finally {
originalRequestCycle.setResponse(oldResponse);
}

return tempResponse.getText();
}

private Application getApplication() {
return Application.get();
}

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



Can i display a WepPage in a PDF (How to get the rendered markup)?

2013-06-07 Thread Per Newgro

Hi,

i would like to render a WebPage with flying saucer (PDF generator).
I've created a resource reference and a ByteArrayResource.

But now i need the rendered markup of the page (e.g. HomePage).

So my question is how can i render the markup in my Resource?

Thanks for your support
Per

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