我正在尋找一種開放源代碼實用程序,它將允許我從相當簡單的XML或HTML生成PDF。可能有鏈接的圖像以及純文本。不會有CSS或JavaScript。理想情況下,我希望生成的PDF是可解析的,即使內容不是圖像。谷歌搜索我看到有iText和PDFBox。用於將xml/html轉換爲pdf的java庫
有什麼可以推薦一個嗎?
我正在尋找一種開放源代碼實用程序,它將允許我從相當簡單的XML或HTML生成PDF。可能有鏈接的圖像以及純文本。不會有CSS或JavaScript。理想情況下,我希望生成的PDF是可解析的,即使內容不是圖像。谷歌搜索我看到有iText和PDFBox。用於將xml/html轉換爲pdf的java庫
有什麼可以推薦一個嗎?
看看XML Formatting Objects,它會讓你從XML生成相當容易的PDF。
Apache FOP是一個Java庫,可以隱蔽XSL Formatting Objects(XSL-FO),以PDF
你應該解釋,它使用XSL-FO,而不是簡單的HTML。 – Bozho 2010-04-21 18:09:04
好的謝謝。XSL_FO對我來說是新的,但很可能是我可以使用的東西 – 2010-04-21 18:12:06
擴展描述並指向由ilikeorangutans在他的回答中指出的維基百科文章 – 2010-04-21 18:17:12
你也可以考慮Flying Saucer(XHTMLRenderer)的組合和著名iText。
你可以找到一個代碼示例here的博客。
它不符合您對開源的限制,而且我可以看到這會成爲一個交易破壞者,但如果您能負擔得起,Prince絕對是出色的完成此任務。如果你需要它也可以做更高級的佈局和樣式的CSS,它可以輕鬆完成。我目前正在將它用於Java Web應用程序,並且它工作得非常好。
智威湯遜最近增加了一個像樣的HTML/CSS來PDF renderering發動機:看到的例子在http://jwt.emweb.be/jwt-gallery/gallery/media/pdf-output爲例
它正在迅速提高,成爲標準,並且已經支持浮點,表格,內聯和塊內容,絕對/相對定位和CSS樣式表處理(在git版本中)的任意組合。
我覺得更多的想法是將html轉換爲pdf是 a。首先使用jtidy庫將.html文件轉換爲.xhtml文件 b。第二個轉換使用itextrender
這裏是代碼
一個導致.xhtml文件.pdf文件。
FileInputStream fis = null;
try
{
fis = new FileInputStream("D://Html//junitnoframes.html");
}
catch (java.io.FileNotFoundException e)
{
System.out.println("File not found: ");
}
Tidy tidy = new Tidy();
tidy.setShowWarnings(false);
tidy.setXmlTags(false);
tidy.setInputEncoding("UTF-8");
tidy.setOutputEncoding("UTF-8");
tidy.setXHTML(true);//
tidy.setMakeClean(true);
Document xmlDoc = tidy.parseDOM(fis, null);
try
{
tidy.pprint(xmlDoc,new FileOutputStream("D://Html//msc.xhtml"));
}
catch(Exception e)
{
}
b。
public static void main(String[] args)
throws IOException, DocumentException {
String inputFile = "D://Html//msc.xhtml";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "D://Html//secondsdoc.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
os.close();
}
我需要以PDF格式表示現有生成的html報告。由於預算和時間限制,唯一的方法是找到一個運行在生成的HTML上的轉換器。我嘗試了大約4個庫和我得到的最佳結果:http://pd4ml.com – 2013-07-15 07:58:54
有誰知道一些新的庫?這些似乎有點過時 – dege 2015-08-14 11:18:46