[英]How do I convert a C# List<string[]> to a Javascript array?
[英]How do I convert an RTF string to a Markdown string (and back) (C# .NET Core, or JS)
如何在C#或JS中將RTF字符串轉換為Markdown字符串(並反向),理想情況下不包裝exe?
我有一個使用.NET的RichTextBox
控件的舊產品。 使用它的表單將其輸出保存為Microsoft專有的RTF格式 。 這是它可以生成的輸出的一個小示例 :
{\\rtf1\\ansi\\ansicpg1252\\uc1\\htmautsp\\deff2{\\fonttbl{\\f0\\fcharset0 Times New Roman;}{\\f2\\fcharset0 GenericSansSerif;}}{\\colortbl\\red0\\green0\\blue0;\\red255\\green255\\blue255;}\\loch\\hich\\dbch\\pard\\plain\\ltrpar\\itap0{\\lang1033\\fs18\\f2\\cf0 \\cf0\\ql{\\f2 {\\ltrch Some content here }\\li0\\ri0\\sa0\\sb0\\fi0\\ql\\par}\r\n}\r\n}
我的C#.NET Core Web App必須能夠使用此存儲的RTF在網頁上顯示“富文本編輯器”,具有更新值的能力,並以舊版仍然可以使用的格式保存產品。
不幸的是,我在查找可以使用RTF作為輸入的現有/現代Web組件時遇到了麻煩。 大多數似乎使用markdown或自定義JSON格式。
注意:我嘗試過的東西來自RTF-> HTML,因為我找不到適合RTF-> Markdown的任何東西。 我的希望是,如果必須的話,我可以做:RTF-> HTML-> Markdown(反之亦然)。
對不起,您在RtfPipe和.Net Core中使用的是空引用錯誤。 現在,在項目上記錄了這些錯誤的解決方案,其中涉及包括NuGet包System.Text.Encoding.CodePages
和注冊代碼頁提供程序。
#if NETCORE
// Add a reference to the NuGet package System.Text.Encoding.CodePages for .Net core only
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif
var html = Rtf.ToHtml(rtf);
由於HTML在技術上是Markdown,因此您可以在此處停止。 否則,您也可以使用BracketPipe庫將HTML轉換為Markdown。 代碼看起來像。
using BracketPipe;
using RtfPipe;
private string RtfToMarkdown(string source)
{
using (var w = new System.IO.StringWriter())
using (var md = new MarkdownWriter(w))
{
Rtf.ToHtml(source, md);
md.Flush();
return w.ToString();
}
}
Markdig是從Markdown到HTML的很好的庫。 但是,對於從HTML到RTF的獲取,我沒有任何好的建議。
免責聲明:我是RtfPipe和BracketPipe開源項目的作者
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.