在Java中将iCal转换为HTML或纯文本
我正在寻找一个Java API来将ICS(又名iCal)附件转换为格式良好的HTML或明文用于显示目的。 理想情况下,它将能够处理:
我在看iCal4j,它有一个很好的DOM解析器,但没有办法序列化到除iCal之外的任何东西。
对不起,如果你四处搜索,什么都没有发现,那么你肯定有一套独特的要求,有时间去创新。
拿出你有的东西,想出一些想法,并尝试一下,随着工作!
我没有找到更好的替代ical4j。 我用它相当成功。 不幸的是,正如您指出的那样,它所做的只是绑定到XML,而没有其他方式将其输出到其他位置。 您可以在创建后走DOM并输出相关文本 - 虽然这看起来有点奇怪,因为您只需要text / html,但我遇到了同样的问题,最后只是解析了XML。
iCal4j API有点奇怪,你可能想放松解析并启用outlook / notes兼容性来帮助你。 你可以编写你自己的解析器,并实现net.fortuna.ical4j.data.CalendarParser
并以这种方式将必要的信息提取为纯文本。 我认为默认的net.fortuna.ical4j.data.CalendarParserImpl
是大约500行代码,你可以选择黑客。
我制作了一个输出纯文本的iCalendar API。 所有日历元素(VCALENDAR,VEVENT等)都有一个toContent()方法,可以生成纯文本。 它很容易将多个VCalendar对象转换为一个长字符串。 例如:
List<VCalendar> calendars = new ArrayList<VCalendar>();
// add VCalendars here
// then concated the text of each into one long string
String allContent = calendars.stream()
.map(v -> v.toContent())
.collect(Collectors.joining(System.lineSeparator()));
要导入多个VCalendars,您只需使用processITIPMethod方法使用PUBLISH方法导入它们即可。 它可以处理VCalendar对象的列表。
如果你想HTML,你必须自己做。
你可以在http://jfxtras.org/查看
你可以在https://github.com/JFXtras/jfxtras/tree/8.0/jfxtras-icalendarfx下载它
链接地址: http://www.djcxy.com/p/42749.html