Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在呈现到浏览器之前获取HTML文本-使用servlet_Java_Jsp_Servlets_Pdf_Itext - Fatal编程技术网

Java 如何在呈现到浏览器之前获取HTML文本-使用servlet

Java 如何在呈现到浏览器之前获取HTML文本-使用servlet,java,jsp,servlets,pdf,itext,Java,Jsp,Servlets,Pdf,Itext,希望节省三到四个月的开发时间。因为JSP已经编写好了 下面的程序将HTML转换为PDF格式。第5行写入PDF文件时没有HTML标记。现在的问题是,在JSP文件将其呈现给浏览器之前,如何在Servlet中获取HTML文本,以便我可以将该字符串/文本传递到下面程序中的第11行,以将整个HTML转换为PDF文件 package com; import java.io.File; import java.io.FileOutputStream; import java.io.IOException;

希望节省三到四个月的开发时间。因为JSP已经编写好了

下面的程序将HTML转换为PDF格式。第5行写入PDF文件时没有HTML标记。

现在的问题是,在JSP文件将其呈现给浏览器之前,如何在Servlet中获取HTML文本,以便我可以将该字符串/文本传递到下面程序中的第11行,以将整个HTML转换为PDF文件

package com;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.html.simpleparser.HTMLWorker;
import com.itextpdf.text.pdf.PdfWriter;

public class App {  // Line 1
    public static void main(String[] args) throws DocumentException,
            IOException {
        try {
            String htmlText = "<html><body> This is my Project </body></html>"; // Line 5
            FileOutputStream file = new FileOutputStream(new File("Sample.pdf"));
            Document document = new Document(PageSize.A4.rotate());
            PdfWriter.getInstance(document, file);
            document.open();
            HTMLWorker htmlWorker = new HTMLWorker(document);
            htmlWorker.parse(new StringReader(htmlText));  // Line 11
            document.close();
            // file.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
package-com;
导入java.io.File;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.StringReader;
导入com.itextpdf.text.Document;
导入com.itextpdf.text.DocumentException;
导入com.itextpdf.text.PageSize;
导入com.itextpdf.text.html.simpleparser.HTMLWorker;
导入com.itextpdf.text.pdf.PdfWriter;
公共类应用程序{//第1行
公共静态void main(字符串[]args)引发DocumentException,
IOException{
试一试{
String htmlText=“这是我的项目”;//第5行
FileOutputStream文件=新的FileOutputStream(新文件(“Sample.pdf”);
文档=新文档(PageSize.A4.rotate());
getInstance(文档、文件);
document.open();
HTMLWorker HTMLWorker=新HTMLWorker(文档);
解析(新的StringReader(htmlText));//第11行
document.close();
//file.close();
}捕获(例外e){
e、 printStackTrace();
}
}
}

通过使用Servlet过滤器和HttpServletResponseWrapper,您可以在Servlet过滤器中以字符串的形式获得JSP/Servlet输出


此链接将有所帮助:

我可以建议一种不同的方法吗?谢谢你的回答。但这个答案无助于检索正在发送的HTML/Images/CSS。我想在filter类中读取响应对象内的HTML文本。我们无法读取响应对象,但可以在响应中附加一些内容。如何读取过滤器内响应对象内的HTML文本?它可以帮助您获取生成的HTML代码,但不能帮助您获取图像/CSS内容。获得HTML代码后,可以使用JSOUP解析HTML代码。