お客様が用意したMsWord.docx形式のコンテンツがいくつかあります。これらのドキュメントには、方程式、画像などが含まれている場合があります。
これらのコンテンツをWeb環境に転送したいと思います。
まず、TinyMCEの「Wordから貼り付け」プラグインとfmathエディタープラグインを使用する予定です。役に立たない...
次に、アップロードボタンを配置して、msワードのコンテンツを転送し、結果のWebコンテンツをTinyMCEエディターに表示することにしました。実際には、新しいプラグインを作成するようなものです。
Microsoft.Office.Interop.Word.Documentクラスの「名前を付けて保存」メソッドを使用しています。しかし、私には次の問題があります。
1)ドキュメントリソースフォルダのパスを変更できません。生成されたhtmlファイルと同じ「..._files」フォルダを生成します。すべてのリソースをサーバー上の適切な場所に転送したいと思います。
2)画像ソースパスを絶対パスとして変更できません。
3)ガベージスタイルが多すぎる、生成されたhtmlファイルのコード。
私はこの目的を達成するために完全に間違った方法であるかもしれません。それで、この方向に進む前に、私はあなたのアドバイスを得ることにしました。私はどんな提案も開いています。
よろしく、
このコードのドラフトバージョンを追加しています:
var fileName = Request["docfilename"];
var file = Request.Files[0];
var buffer = new byte[file.ContentLength];
file.InputStream.Read(buffer, 0, file.ContentLength);
var root = HttpContext.Current.Server.MapPath(@"~/saveddata/_temp/");
var path = Path.Combine(root, fileName);
using (var fs = new FileStream(path, FileMode.Create))
{
using (var br = new BinaryWriter(fs))
{
br.Write(buffer);
}
}
Microsoft.Office.Interop.Word.ApplicationClass oWord = new ApplicationClass();
object missing = System.Reflection.Missing.Value;
object isVisible = false;
word.Document oDoc;
object filename = path;
object saveFile;
oDoc = oWord.Documents.Open(ref filename, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing,ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing);
oDoc.Activate();
object path2 = Path.Combine(root, "test.html");
object fileFormat = word.WdSaveFormat.wdFormatFilteredHTML;
oDoc.SaveAs(ref path2, ref fileFormat, missing, missing, missing, missing, missing, missing,
missing, missing, missing, missing, missing, missing, missing, missing);
oDoc.Close(ref missing, ref missing, ref missing);
oWord.Application.Quit(ref missing, ref missing, ref missing);