2012-08-29 83 views
4

我愿意XHTML文件/格式或PDF文件转换成PDF格式的PDF/A格式..任何人都可以请建议我可以使用哪些Java库.. 谢谢PDF转换使用Java库

我会让我的例子更具体

我有一个简单的HTML文件xyz.html

<html><body> 
hello 
<br> 
<font style = "Helvetica">hello</font> 
<br> 
</body></html> 

java代码:

Document document = new Document(PageSize.A4); 
FileOutputStream fout = new FileOutputStream(pdffile); 
PdfWriter pdfWriter = PdfWriter.getInstance(document, fout); 
pdfWriter.setPDFXConformance(PdfWriter.PDFA1B); 
FileReader fr = new FileReader(xyz.html); 
document.open(); 
HashMap<String, Object> Provider = new HashMap<String, Object>(); 
DefaultFontProvider def = new 
Provider.put(HTMLWorker.FONT_PROVIDER, def); 
HTMLWorker htmlWorker = new HTMLWorker(document); 
htmlWorker.setProviders(Provider); 
htmlWorker.parse(fr); 

我得到错误com.itextpdf.text.pdf.PdfXConformanceException:必须嵌入所有字体。这一个不是:Helvetica

+0

我正在使用iText进行转换,但它没有提供任何选项来从PDF转换为PDF/a ..而我尝试使用pdfWriter.setPDFXConformance(PdfWriter.PDFA1B从xhtml转换为pdf/a 1a或pdf/a 1b )得到一个错误“所有的字体必须嵌入。这不是:Helvetica”..任何人都可以提出任何解决方案 – ranjan

+0

你使用什么版本的iText? – baron5

回答

1

检查iText库,它有两种Java.net
http://itextpdf.com/

在以下链接几个例子支持:
http://itextpdf.com/book/examples.php
http://www.rgagnon.com/javadetails/java-html-to-pdf-using-itext.html

这是proprietory但 它真的是一个聪明的企业图书馆和有良好的客户支持。

+0

你有什么想法如何解决这个问题..当我设置pdfWriter.setPDFXConformance(PdfWriter.PDFA1B),我得到一个错误“所有的字体必须嵌入。这一个不是:Helvetica” – ranjan

+1

iText是没有专有的软件!!!这是开源的,根据AGPL,如果你想从AGPL的限制中解脱出来,可以获得商业许可。另外,您可能想指向官方的[示例](http://itextpdf.com/book/examples.php)和[关键字](http://itextpdf.com/themes/keywords。php) –

+0

对于@ranjan,你可以看看PDF/A示例[这里](http://itextpdf.com/examples/iia.php?id=226)。 –

0

我的预期行为的工作,我们已经开发了一个SaaS应用程序名为DocRaptor是HTML转换使用XML王子作为我们的渲染引擎PDF。 DocRaptor使用HTTP POST请求来生成PDF文件,并可以与Java一起使用。

下面是我们的Java示例链接:

DocRaptor Java example

和链接到DocRaptor的主页:

DocRaptor

DocRaptor是一种基于订阅的服务,但我们的免费计划允许您每个月最多创建5个文档,而且我们不嵌入水印或限制免费文档的大小。