未解决的参考:iText库中的HtmlConverter

时间:2017-12-06 16:37:15

标签: java android pdf itext converter

我正在尝试将HTML字符串转换为Android中的PDF文件。我正在使用iText库,但它显示错误:

const array = [ {id: 1, content: "aaaa", date: "2017-12-05T23:00:00.000Z"}, {id: 2, content: "bbbb", date: "2017-13-05T23:00:00.000Z"}, {id: 3, content: "cccc", date: "2017-13-05T23:00:00.000Z"}, {id: 4, content: "dddd", date: "2017-14-05T23:00:00.000Z"}, {id: 5, content: "eeee", date: "2017-14-05T23:00:00.000Z"}, ] const rowToInsert = {id: 6, content: "ffff", date: "2017-13-05T23:00:00.000Z"} array.push(rowToInsert) array.sort(function (a, b) { return a.date > b.date; }) console.log(array)

代码:

Unresolved reference: HtmlConverter

模块级gradle中的iText库导入:

HtmlConverter.convertToPdf(htmlString, FileOutputStream(File(context.cacheDir.path + "/SensorReport.pdf")))

请帮忙。

2 个答案:

答案 0 :(得分:0)

请查看官方网站上的pdfHTML page

我引用:

  

pdfHTML是一个iText 7附加组件,可让您轻松地将HTML和CSS转换为PDF文档。

您使用的是iTextG 5.5.10。这不是iText 7.此外,拥有iText 7还不够。您还需要pdfHTML插件。

这解释了未解决的参考:field不是iText 5类,它甚至不是iText 7类。 HtmlConverter类可以在pdfHTML插件中找到,这是iText 7之上的插件。

我们没有投资iText 7的Android端口,因为:

  • iTextG的销售不佳并不能证明对Android端口的投资是合理的。这很奇怪,因为Android应用程序是一个分布式应用程序,如果该应用程序是专有/封闭源,则必须提供商业许可证。
  • 开发人员现在习惯使用Xamarin等技术在一个平台上开发并将其应用程序移植到另一个平台。

如果您想继续使用iTextG 5,则需要使用XML Worker附加组件。请注意,iTextG和XML Worker也是AGPL(因此,如果您不想免费分发源代码和应用程​​序,则需要商业许可证)。此外:对iTextG 5和XML Worker的支持正在停止。正如您在intro of the HTML to PDF tutorial中所读到的,XML Worker存在许多缺陷。

答案 1 :(得分:0)

在2019年要使用itext和pdfHTML,您需要在build.gradle中添加此依赖项,但在其他网站上找不到答案,因此我为下一个用户更新了此答案。

实现'com.itextpdf:itext7-core:7.1.5' 实施'com.itextpdf:html2pdf:2.1.2'