Java 如何在呈现到浏览器之前获取HTML文本-使用servlet
希望节省三到四个月的开发时间。因为JSP已经编写好了 下面的程序将HTML转换为PDF格式。第5行写入PDF文件时没有HTML标记。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文件将其呈现给浏览器之前,如何在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代码。