# Spring PDF



## Generic1 (14. Jun 2011)

Hallo,

ich bin gerade dabei mittels Spring ein PDF zu erzeugen hab aber ein Problem,
Der Aufruf zur Erstellung erfolgt über AJAX. Ich arbeite mit Spring 3.0, also bräuchte ich eine
Methode, die mittels @RequestMapping("pdfcreation.htm") gekennzeichnet ist.
Weiß jemand einen Link, wo das beschrieben ist oder hats schon mal jemand gemacht.
lg
Generic1


```
public class PDFPage extends AbstractPdfView {


// ich müsste meine Methode mit @RequestMapping kennzeichnen
    protected void buildPdfDocument(
        Map model,
        Document doc,
        PdfWriter writer,
        HttpServletRequest req,
        HttpServletResponse resp)
        throws Exception {
        
        List words = (List) model.get("wordList");
        
        for (int i=0; i<words.size(); i++)
            doc.add( new Paragraph((String) words.get(i)));
    
    }
}
```


----------



## faulelotte (14. Jun 2011)

Wie wäre es mit Mapping Requests With @RequestMapping aus der Spring MVC Doku ?


----------



## Generic1 (15. Jun 2011)

Das mit dem RequestMapping ist mir schon klar, ich bin aber nicht sicher, wie ich das bei mir machen kann.
Ich habe momentan folgendes:

[XML]

<bean id="viewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
            <property name="viewResolvers">
                <list>
                    <ref bean="viewResolver"/>
                </list>
            </property>
</bean>

<bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
     </bean>
[/XML]

Also einen viewResolver -> wenn ein Request mit der Endung .jsp hereinkommt, dann findet man die JSP in /WEB-INF/jsp/... .jsp

Wie ich das mit dem PDF machen kann ist mir aber nicht klar. Weiß vielleicht jemand einen Ansatz?
Vielen Dank,
lg


----------



## Noctarius (15. Jun 2011)

Du musst halt einen View-Resolver fpr die Endung pdf oder html oder sonst was machen und auf deinen PDF-View legen.


----------



## Generic1 (15. Jun 2011)

Kann ich das mit meinen oberen XML- Fragmenten machen oder brauch ich da einen komplett neuen ViewREsolver?
lg


----------



## Noctarius (15. Jun 2011)

Du brauchst doch nur ein zweites ViewResolver-Bean und dies wird der Factory hinzugefügt Oo Wie Xml Fragment?


----------



## Generic1 (17. Jun 2011)

Noctarius hat gesagt.:


> Du brauchst doch nur ein zweites ViewResolver-Bean und dies wird der Factory hinzugefügt Oo Wie Xml Fragment?



Ich habs jetzt ausprobiert aber mir ist es nicht gelungen, ich hab auch noch ein Verständnisproblem: Was muss ich da beim zweiten viewResolver einstellen.
Das ist jetzt mein ViewResolver:

[XML]
<bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
     </bean>
[/XML]

und das ist der ViewResolver von einem PDF- View Beispiel:

[XML]
<bean id="viewResolver"
      	class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix">
           <value>/WEB-INF/pages/</value>
         </property>
        <property name="suffix">
           <value>.jsp</value>
        </property>
        <property name="order" value="1" />
    </bean>
[/XML]

Wenn ich jetzt diese 2 ViewResolver in meiner Spring Applikation habe heißt dann ja, dass beide auf Requests mit der Endung .jsp reagieren oder?


----------



## Noctarius (17. Jun 2011)

Wie wäre es mit einem anderen suffix? und vor allem einer anderen Bean Id? Oo

Ansonsten Google:
Spring MVC export data to PDF file via AbstractPdfView
PDF Dokumente erzeugen – Konfiguration von Tiles2 und AbstractPdfView
...


----------

