在Java中将iCal转换为HTML或纯文本

我正在寻找一个Java API来将ICS(又名iCal)附件转换为格式良好的HTML或明文用于显示目的。 理想情况下,它将能够处理:

  • 将日期转换为指定的时区。
  • 将复发模式扩展为人类可读的句子。
  • 多个VCALENDAR记录在一个文件中。
  • 我在看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

    上一篇: Convert iCal to HTML or plaintext in Java

    下一篇: Anyone see a problem with this?