Java HTML到PDF使用飞碟:内部CSS显示在PDF页面 protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException { 试一试{ StringBuffer=新的StringBuffer(); 缓冲区。追加(“”); 缓冲区。追加(“”); 缓冲区。追加(“”); append(“@page{background color:#f0;}”); 缓冲区。追加(“”); 缓冲区。追加(“”); 缓冲区。追加(“”); buffer.append(“Hello”); 缓冲区。追加(“”); 缓冲区。追加(“”); DocumentBuilder docBuilder=DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc=docBuilder.parse(新的StringBufferInputStream(buffer.toString()); OutputStream os=response.getOutputStream(); ITextRenderer=newitextrenderer(); .setDocument(doc,空); layout(); createPDF(os); os.close(); }
当它显示pdf时会发生什么情况css正常工作并显示灰色背景,但是,它会显示以下文本:@page{background color:#f0f0;}您好。如何使样式文本停止显示在pdf中?如果替换:Java HTML到PDF使用飞碟:内部CSS显示在PDF页面 protectedvoiddopost(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException { 试一试{ StringBuffer=新的StringBuffer(); 缓冲区。追加(“”); 缓冲区。追加(“”); 缓冲区。追加(“”); append(“@page{background color:#f0;}”); 缓冲区。追加(“”); 缓冲区。追加(“”); 缓冲区。追加(“”); buffer.append(“Hello”); 缓冲区。追加(“”); 缓冲区。追加(“”); DocumentBuilder docBuilder=DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc=docBuilder.parse(新的StringBufferInputStream(buffer.toString()); OutputStream os=response.getOutputStream(); ITextRenderer=newitextrenderer(); .setDocument(doc,空); layout(); createPDF(os); os.close(); },java,servlets,web-applications,itext,flying-saucer,Java,Servlets,Web Applications,Itext,Flying Saucer,当它显示pdf时会发生什么情况css正常工作并显示灰色背景,但是,它会显示以下文本:@page{background color:#f0f0;}您好。如何使样式文本停止显示在pdf中?如果替换: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { StringBuffer b
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();
}
借
然后,
标记将识别该样式,但该样式不会“计算”为HTML,因为我们已将其放在注释中。如果您将@page{background color:#f0f0f0;}
替换为
,效果很好,谢谢。如果您想将其作为答案,我会将其标记为正确。
@page {background-color: #f0f0f0;}
<!--
@page {background-color: #f0f0f0;}
-->