Struts2 在Struts 2中动态创建PDF

Struts2 在Struts 2中动态创建PDF,struts2,Struts2,晚上好, 我有一个问题,我正在处理struts2 web应用程序。我正在使用数据库动态创建PDF。我想在网页上展示,但我不知道怎么做,谁能帮我 谢谢 您可以使用输入流编写内容,或者最好的方法是创建自定义结果类型,您可以在其中设置适当的标题和其他内容。这里是一个链接,以获取一些帮助 您可以使用输入流编写内容,或者最好的方法是创建自定义结果类型,您可以在其中设置适当的标题和其他内容。这里是一些帮助链接 ByteArrayOutputStream缓冲区=新建ByteArrayOutputStream(

晚上好,

我有一个问题,我正在处理struts2 web应用程序。我正在使用数据库动态创建PDF。我想在网页上展示,但我不知道怎么做,谁能帮我


谢谢

您可以使用输入流编写内容,或者最好的方法是创建自定义结果类型,您可以在其中设置适当的标题和其他内容。这里是一个链接,以获取一些帮助


您可以使用输入流编写内容,或者最好的方法是创建自定义结果类型,您可以在其中设置适当的标题和其他内容。这里是一些帮助链接

ByteArrayOutputStream缓冲区=新建ByteArrayOutputStream();
getInstance(文档,缓冲区);
document.open();
////在这里做你的事
document.close();
DataOutput DataOutput=新的DataOutputStream(response.getOutputStream());
byte[]bytes=buffer.toByteArray();
response.setContentLength(bytes.length);
for(int i=0;i
我正在使用iText创建pdf。您可以将此scriptlet放入jsp并调用此jsp以显示生成的pdf

ByteArrayOutputStream buffer=new ByteArrayOutputStream();
getInstance(文档,缓冲区);
document.open();
////在这里做你的事
document.close();
DataOutput DataOutput=新的DataOutputStream(response.getOutputStream());
byte[]bytes=buffer.toByteArray();
response.setContentLength(bytes.length);
for(int i=0;i
我正在使用iText创建pdf。您可以将此scriptlet放入jsp并调用此jsp以显示生成的pdf操作代码:

public class PDFAction extends ActionSupport {
    private InputStream inputStream;

public String getPDF(){       
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();

        PdfWriter.getInstance(document, buffer);

        document.open();
        Paragraph p = new Paragraph();
        p.add("INSTITUTO POLITÉCNICO NACIONAL, ESCUELA SUPERIOR DE CÓMPUTO, DIEGO A. RAMOS");

        document.add(p);
        document.close();

        inputStream  =  new ByteArrayInputStream(buffer.toByteArray());

   return SUCCESS;
}

public InputStream getInputStream() {
    return inputStream;
}

public void setInputStream(InputStream inputStream) {
    this.inputStream = inputStream;
}
}
Struts.xml:

<action name="getPDF" class="action.PDFAction" method="getPDF">
       <result name="success" type="stream">
            <param name="inputName">inputStream</param> 
            <param name="contentType">application/pdf</param> 
            <param name="contentDisposition">filename="mypdf.pdf"</param> 
            <param name="bufferSize">2048</param>
        </result>
</action>

输入流
申请表格/pdf
filename=“mypdf.pdf”
2048
试试看,它很有魅力,非常适合我。如果您有疑问,请阅读更多关于Struts 2提供的流结果类型的信息。答案很简单,但很难找到

操作代码:

public class PDFAction extends ActionSupport {
    private InputStream inputStream;

public String getPDF(){       
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();

        PdfWriter.getInstance(document, buffer);

        document.open();
        Paragraph p = new Paragraph();
        p.add("INSTITUTO POLITÉCNICO NACIONAL, ESCUELA SUPERIOR DE CÓMPUTO, DIEGO A. RAMOS");

        document.add(p);
        document.close();

        inputStream  =  new ByteArrayInputStream(buffer.toByteArray());

   return SUCCESS;
}

public InputStream getInputStream() {
    return inputStream;
}

public void setInputStream(InputStream inputStream) {
    this.inputStream = inputStream;
}
}
Struts.xml:

<action name="getPDF" class="action.PDFAction" method="getPDF">
       <result name="success" type="stream">
            <param name="inputName">inputStream</param> 
            <param name="contentType">application/pdf</param> 
            <param name="contentDisposition">filename="mypdf.pdf"</param> 
            <param name="bufferSize">2048</param>
        </result>
</action>

输入流
申请表格/pdf
filename=“mypdf.pdf”
2048
试试看,它很有魅力,非常适合我。如果您有疑问,请阅读更多关于Struts 2提供的流结果类型的信息。答案很简单,但很难找到

是使用iText和HttpServletResponse OutputStream的答案。是使用iText和HttpServletResponse OutputStream的答案。