Question

Je recherche une API Java permettant de convertir les pièces jointes ICS (ou iCal) en HTML ou en texte clair correctement formaté, à des fins d'affichage. Idéalement, il serait capable de gérer:

  • Conversion des dates en un fuseau horaire spécifié.
  • Développer les modèles de récurrence en phrases lisibles par l'homme.
  • Plusieurs enregistrements VCALENDAR dans un seul fichier.

Je suis en train de regarder iCal4j, qui possède un bel analyseur DOM, mais aucun moyen de sérialiser autre chose que iCal.

Était-ce utile?

La solution

Désolé, mon ami, si vous recherchez sur Google sans rien trouver, c’est un ensemble d’exigences uniques que vous avez satisfaites, il est temps d’innover.

Prenez ce que vous avez, réfléchissez à quelques idées et essayez-les, cela vient avec le travail!

Autres conseils

Je n’ai pas trouvé de meilleure alternative à ical4j. Je l'ai utilisé avec assez de succès. Malheureusement, comme vous l'avez fait remarquer, tout ce que cela fait est de se lier à XML, sans autre moyen de le générer autrement. Vous pouvez parcourir le DOM après la création et afficher le texte pertinent - bien que cela puisse sembler un peu étrange, car tout ce que vous voulez, c'est text / html. J'ai le même problème et je viens de terminer l'analyse du code XML.

L’API iCal4j est un peu étrange et vous pouvez assouplir l’analyse et activer la compatibilité Outlook / notes pour vous aider tout au long du processus. Vous pouvez écrire votre propre analyseur et implémenter net.fortuna.ical4j.data.CalendarParser et extraire les informations nécessaires en texte brut de cette façon. Je pense que la valeur par défaut net.fortuna.ical4j.data.CalendarParserImpl correspond à environ 500 lignes de code. Vous pouvez également modifier ce code.

J'ai créé une API iCalendar qui génère du texte brut. Tous les éléments du calendrier (VCALENDAR, VEVENT, etc.) ont une méthode toContent () qui produira du texte brut. Il est très facile de convertir plusieurs objets VCalendar en une longue chaîne. Par exemple:

   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()));

Pour importer plusieurs VCalendars, il vous suffit d'utiliser la méthode processITIPMethod pour les importer avec la méthode PUBLISH. Il peut gérer une liste d'objets VCalendar. Chaîne.

Si vous voulez du HTML, vous devez le faire vous-même.

Vous pouvez le vérifier à l'adresse http://jfxtras.org/

.

Vous pouvez le télécharger à l'adresse https://github.com/JFXtras/ jfxtras / tree / 8.0 / jfxtras-icalendarfx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top