ASP.NET UYGULAMALARINDA WORD DOSYASINI HTML OLARAK KAYDETMEK (WORD TO HTML)

19
Ağustos
2011
ASP.NET UYGULAMALARINDA WORD DOSYASINI HTML OLARAK KAYDETMEK (WORD TO HTML)

Sizlerinde bildiği üzere, internette çeşitli konularda makale yayınlayan veya üyelerine makale yazma imkanı sunan pek çok web sitesi mevcut. Fakat internet üzerinde resimli bir doküman hazırlamak herhangi bir kelime işlemci programında  hazırlamaktan çok daha zahmetlidir.

Dolayısıyla biz üyelerimize mümkün olduğunca kolay bir ara yüz  sunmalıyız ki yazarlar makale yazmak için bizi tercih etsin.

Üyelerimiz word dosyasına makalesini yazıp hazırlasa resimlerini dilediği gibi tutup rahat rahat yerleştirse, büyültse küçültse, başlıkların paragrafların fontlarını rahat rahat ayarlasa… sonrada bizim ara yüzümüze girip o word dosyasını upload etse, bizde o word dosyasını çabucak html formatında kaydedip makaleyi  yayına hazır hale getirsek nasıl olur?

Kimse böyle bir uygulamaya burun kıvırmaz herhalde. Hemen uygulamaya koyulalım.

Öncelikle bir web form oluşturalım ve wordToHtml.aspx ismiyle kaydedelim. Daha sonra uygulamamıza Microsoft Word 12.0 Object Library  referansını ekleyelim ekliyoruz

Şimdi sayfamıza Bir FileUpload ve bir Button koyalım.

 

Butonumuza çift tıklayarak click kodumuza geçelim ve kodlarımızı yazalım.

using System;
using Microsoft.Office.Interop.Word;
using System.IO;
using System.Text;
 
public partial class _Word : System.Web.UI.Page
{
    protected void BtnWord_Click(object sender, EventArgs e)
    {
        //dosya yoksa metodu kes
        if (!FU1.HasFile)
            return;
        //dosya word dosyası değilse metodu kes
        if (FU1.PostedFile.ContentType != "application/msword" && FU1.PostedFile.ContentType != "application/vnd.openxmlformats-officedocument.wordprocessingml.document")
            return;
 
        //word dosyasıının kaydedileceği yer
        object wordKayitYeri = Server.MapPath("~/temp.doc");
        //html dosyasının kaydedileceği yer
        object htmlKayitYeri = Server.MapPath("~/temp.htm");
 
        //word dosyasını keydediyoruz
        FU1.SaveAs(wordKayitYeri.ToString());
 
        //word uygulaması oluşturuyoruz
        ApplicationClass wordApp = new ApplicationClass();
        //html formatında kaydetmesi için
        object kayitFormati = WdSaveFormat.wdFormatFilteredHTML;
        object missing = System.Reflection.Missing.Value;
        string htmlIcerik = "";
 
        try
        {
            wordApp.Documents.Open(ref wordKayitYeri, 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);
            Document belge = wordApp.ActiveDocument;
            //burada da html olarak kaydediyoruz
            belge.SaveAs(ref htmlKayitYeri, ref kayitFormati, 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);
            wordApp.Quit(ref missing, ref missing, ref missing);
 
            //şimdi de html olarak kaydedilen dosyayı alıp içeriğini okuyoruz ve string değişkene aktariyoruz.
            StreamReader sr = new StreamReader(htmlKayitYeri.ToString(), Encoding.Default);
            htmlIcerik = sr.ReadToEnd();
            sr.Close();
        }
        catch
        {
            wordApp.Quit(ref missing, ref missing, ref missing);
            return;
        }
    }
}
Biz  burada word dosyasını hml’ye dönüştürdük ve html dosyasının içeriğini htmlIcerik isimli değişkene aktardık. Artık bu içeriğe istediğimiz yapabiliriz. Örneğin html içeriğinin body tagları arasında kalan kısmı alıp diğer kısımlarını atabiliriz. Daha sonra lüzumsuz css class isimlerini temizleyebiliriz. Ve sonuçta elimizde kalan veriyi veritabanımıza kaydedebiliriz.

 

 

MAKALE-YORUMLAR

İsminiz
Yorumunuz


Doğrulama kodu

?

MAKALEYE YORUM YAZ

İsminiz
E-posta adresiniz
Yorumunuz
Doğrulama kodu ?

Copyright © 2006 - 2013  DESTEKYERI.COM

Embedded by  ® SANALOG Tüm Hakları Saklıdır . Yayınlanan yazıların izin alınmadan kopyalanması ve kullanılması  5846 sayılı Fikir ve Sanat Eserleri Yasasına göre suçtur. Makalelerin "alıntı" olduğunu belirterek yayınlayabilir ve kaynağı belirtmeniz önemlidir !!!