HTML 使用飞碟转 PDF:内部 CSS 显示在 PDF 页面中
HTML to PDF using Flying Saucer: Internal CSS showing in PDF page
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try {
StringBuffer buffer = new StringBuffer();
buffer.append("<html>");
buffer.append("<head>");
buffer.append("<style type='text/css'>");
buffer.append("@page {background-color: #f0f0f0;}");
buffer.append("</style>");
buffer.append("</head>");
buffer.append("<body>");
buffer.append("<h2>Hello</h2>");
buffer.append("</body>");
buffer.append("</html>");
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = docBuilder.parse(new StringBufferInputStream(buffer.toString()));
OutputStream os = response.getOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(os);
os.close();
}
当它显示 pdf 时会发生什么 css 工作正常并显示灰色背景,但是,它显示以下文本:@page {background-color: #f0f0f0;}你好。如何让样式文本停止显示在 pdf 中?
如果你替换:
@page {background-color: #f0f0f0;}
来自
<!--
@page {background-color: #f0f0f0;}
-->
然后 <style>
标签将识别该样式,但该样式不会 "count" 与 HTML 相同,因为我们已将其放在注释中。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try {
StringBuffer buffer = new StringBuffer();
buffer.append("<html>");
buffer.append("<head>");
buffer.append("<style type='text/css'>");
buffer.append("@page {background-color: #f0f0f0;}");
buffer.append("</style>");
buffer.append("</head>");
buffer.append("<body>");
buffer.append("<h2>Hello</h2>");
buffer.append("</body>");
buffer.append("</html>");
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = docBuilder.parse(new StringBufferInputStream(buffer.toString()));
OutputStream os = response.getOutputStream();
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(os);
os.close();
}
当它显示 pdf 时会发生什么 css 工作正常并显示灰色背景,但是,它显示以下文本:@page {background-color: #f0f0f0;}你好。如何让样式文本停止显示在 pdf 中?
如果你替换:
@page {background-color: #f0f0f0;}
来自
<!--
@page {background-color: #f0f0f0;}
-->
然后 <style>
标签将识别该样式,但该样式不会 "count" 与 HTML 相同,因为我们已将其放在注释中。