gpt4 book ai didi

c# - Format string in ICS Fle(为 ICS 文件设置字体)

转载 作者:行者123 更新时间:2023-11-30 13:06:28 28 4
gpt4 key购买 nike

我正在从 C# WPF 应用程序创建 ICS 文件并使用以下代码生成 ICS 文件。

StreamWriter writer;
writer = new StreamWriter(filePath);
writer.WriteLine("BEGIN:VCALENDAR");
writer.WriteLine("VERSION:2.0");
writer.WriteLine("PRODID:MyApp");
writer.WriteLine("CALSCALE:GREGORIAN");
writer.WriteLine("METHOD:PUBLISH");
writer.WriteLine("BEGIN:VEVENT");
string startDateTime = Convert.ToDateTime(appointmentDetails.StartDate).ToString("yyyyMMdd'T'HHmmss");
string endDateTime = Convert.ToDateTime(appointmentDetails.EndDate).ToString("yyyyMMdd'T'HHmmss");

writer.WriteLine("DTSTART:" + startDateTime);
writer.WriteLine("DTEND:" + endDateTime);
writer.WriteLine(@"DESCRIPTION:" + appointmentDetails.Body);
writer.WriteLine("SUMMARY:" + appointmentDetails.Subject);
writer.WriteLine("END:VEVENT");
writer.WriteLine("END:VCALENDAR");
writer.Close();

但是我在描述描述时遇到了一些问题。我认为当我为新行添加\n 时,它会产生问题。我需要像这样格式化我的字符串。

------------------
Header1
-----------------
bOdy1
contents
---------------

我正在使用以下行来创建虚线。

result += new String('-', characterLength) + "\\n";

但是输出显示的是一行而不是虚线。我认为“\n”会产生问题。当我在新行转义字符后添加一些空格时,我可以看到问题已解决。是否有更好/替代的解决方案为此?

描述中的一些字符串以不同的字体样式显示。如何使其唯一?

如何从 C# 中为此 ICs 文件设置字体?

请提出建议。

最佳答案

首先:您应该尝试找到一个 iCalendar 库,而不是自己编写。格式非常复杂,您可能遗漏了很多小东西。

每行最多应为 75 字节左右。如果一行不适合(因为它更大),您可以通过注入(inject)一个真正的换行符 (\r\n) 后跟一个空格或制表符来拆分该行。

iCalendar 阅读器将简单地删除任何 \r\n[space]\r\n\t

不过,您必须确保不会在多字节 UTF-8 序列的中间破坏文件。

描述的值必须这样编码:

  • ; 必须变成 \;
  • , 必须变成\,
  • 任何换行符都必须成为文字 \n\N

这有帮助吗?如果不是,请在您的 iCalendar 流中发布完整输出,以便我可以告诉您哪里出错了。

关于c# - Format string in ICS Fle(为 ICS 文件设置字体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16557257/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com