簡體   English   中英

將 iCal 轉換為 HTML 或 Java 中的明文

[英]Convert iCal to HTML or plaintext in Java

我正在尋找 Java API 以將 ICS(又名 iCal)附件轉換為格式良好的 HTML 或純文本以供顯示。 理想情況下,它能夠處理:

  • 將日期轉換為指定時區。
  • 將重復模式擴展為人類可讀的句子。
  • 單個文件中的多個 VCALENDAR 記錄。

我在看 iCal4j,它有一個很好的 DOM 解析器,但除了 iCal 之外沒有辦法序列化。

我沒有找到比 ical4j 更好的替代品。 我使用它相當成功。 不幸的是,正如您所指出的,它所做的只是綁定到 XML,沒有其他方法可以將它綁定到 output。 你可以在創建后遍歷 DOM 和 output 相關文本——盡管這看起來有點奇怪,因為你想要的只是文本/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()));

要導入多個 VCalendar,您只需使用 processITIPMethod 方法通過 PUBLISH 方法導入它們。 它可以處理 VCalendar objects.String 列表。

如果你想要 HTML 你必須自己做。

您可以在http://jfxtras.org/ 查看

可以到https下載://github.com/JFXtras/jfxtras/tree/8.0/jfxtras-icalendarfx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM