Java从XML生成PDF
我仍然在尝试从xml生成pdf。我找到了一种通过HTML的方法,但是我会允许任何修改,代码仍然包含错误 你能帮我吗?我很绝望:/ 使用示例代码,我只编辑xsl- XSL: 问题还可能是XML/HTML包含类似于#řžýáíě的字符Java从XML生成PDF,java,xml,xslt,pdf,css-to-pdf,Java,Xml,Xslt,Pdf,Css To Pdf,我仍然在尝试从xml生成pdf。我找到了一种通过HTML的方法,但是我会允许任何修改,代码仍然包含错误 你能帮我吗?我很绝望:/ 使用示例代码,我只编辑xsl- XSL: 问题还可能是XML/HTML包含类似于#řžýáíě的字符 HTML:首先,如果您可以轻松地将XSL更改为产品XSL FO,我就不会从XML转换为HTML再转换为PDF。这就是说,这里有一把小提琴向您展示了您的HTML可以很好地转换为PDF,并且实际使用HTML并将其转换回XSL FO,css样式保持不变 按下打印按钮。它打印
HTML:首先,如果您可以轻松地将XSL更改为产品XSL FO,我就不会从XML转换为HTML再转换为PDF。这就是说,这里有一把小提琴向您展示了您的HTML可以很好地转换为PDF,并且实际使用HTML并将其转换回XSL FO,css样式保持不变 按下打印按钮。它打印ID为“print_me”的div,该div围绕您的表格和标题 您应该花更多的时间来清理HTML。我添加了ad元素,以至少在分页符处提供重复的标题。您可以将css添加到该表中,以大大改善外观 这在GitHub上使用css转换为pdf,它支持您所需的语言,也支持您对iacute等实体的使用
的确,CSS的问题。谢谢
import java.io.*;
import com.lowagie.text.DocumentException;
import org.xhtmlrenderer.pdf.ITextRenderer;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
Java:
public class FAtoPDF {
public static void main(String[] args)
throws IOException, TransformerException,TransformerConfigurationException,FileNotFoundException, DocumentException {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer(new StreamSource("sample.xsl"));
transformer.transform(new StreamSource("report.xml"),new StreamResult(new FileOutputStream("sample.html")));
String File_To_Convert = "sample.html";
String url = new File(File_To_Convert).toURI().toURL().toString();
//System.out.println(""+url);
String HTML_TO_PDF = "ConvertedFile.pdf";
OutputStream os = new FileOutputStream(HTML_TO_PDF);
ITextRenderer renderer = new ITextRenderer();
//renderer.setDocument(url);
renderer.setDocument(new File("sample.html"));
renderer.layout();
renderer.createPDF(os);
os.close();
}
}
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='4.0' encoding='ISO-8859-1' indent='yes' />
<xsl:template match="/">
<html>
<body>
<h2>FAP - Report from FIO Banka</h2>
<table>
<tr style="background-color:#9acd32;">
<th align="left">ID pohybu</th>
<th align="left">Datum</th>
<th align="left">Objem</th>
<th align="left">Mena</th>
<th align="left">Protiucet</th>
<th align="left">Kod banky</th>
<th align="left">Nazev banky</th>
<th align="left">KS</th>
<th align="left">Uzivatel. identifikace</th>
<th align="left">Typ</th>
<th align="left">Provedl</th>
<th align="left">Komentar</th>
<th align="left">ID Pokynu</th>
</tr>
<xsl:for-each select="AccountStatement/TransactionList/Transaction">
<tr>
<td><xsl:value-of select="column_22"/></td>
<td><xsl:value-of select="column_0"/></td>
<td><xsl:value-of select="column_1"/></td>
<td><xsl:value-of select="column_14"/></td>
<td><xsl:value-of select="column_2"/></td>
<td><xsl:value-of select="column_3"/></td>
<td><xsl:value-of select="column_12"/></td>
<td><xsl:value-of select="column_4"/></td>
<td><xsl:value-of select="column_7"/></td>
<td><xsl:value-of select="column_8"/></td>
<td><xsl:value-of select="column_9"/></td>
<td><xsl:value-of select="column_25"/></td>
<td><xsl:value-of select="column_17"/></td>
</tr>
</xsl:for-each>
</table>
<p>Vygenerovano </p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
function printMe() {
xepOnline.Formatter.Format('print_me',
{pageWidth:"11in", pageHeight:"8in"});