15
是否有.net api可以做到這一點?我看到Pandoc有一個獨立的exe,我可以包裝,但我寧願不要,如果有東西已經出現在那裏。有什麼建議麼?將Html或RTF轉換爲Markdown或Wiki兼容語法?
是否有.net api可以做到這一點?我看到Pandoc有一個獨立的exe,我可以包裝,但我寧願不要,如果有東西已經出現在那裏。有什麼建議麼?將Html或RTF轉換爲Markdown或Wiki兼容語法?
下面是我用來包裝pandoc的代碼。不幸的是,我還沒有看到任何其他體面的方法。
public string Convert(string source)
{
string processName = @"C:\Program Files\Pandoc\bin\pandoc.exe";
string args = String.Format(@"-r html -t mediawiki");
ProcessStartInfo psi = new ProcessStartInfo(processName, args);
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput = true;
Process p = new Process();
p.StartInfo = psi;
psi.UseShellExecute = false;
p.Start();
string outputString = "";
byte[] inputBuffer = Encoding.UTF8.GetBytes(source);
p.StandardInput.BaseStream.Write(inputBuffer, 0, inputBuffer.Length);
p.StandardInput.Close();
p.WaitForExit(2000);
using (System.IO.StreamReader sr = new System.IO.StreamReader(
p.StandardOutput.BaseStream))
{
outputString = sr.ReadToEnd();
}
return outputString;
}
我創建了一個庫Html2Markdown。用法很簡單。
var markdown = new Converter().Convert(html);
哪裏html
是要轉換的HTML的字符串表示。我積極支持並高興地接受捐款。
兩個小小的改變:「ASCIIEncoding.UTF8」應該是「Encoding.UTF8」,你可以用「p.WaitForExit(2000)」代替「Thread.Sleep(2000)」,如果進程退出,它將更快返回更早。 – 2012-10-03 12:29:36