arkadaşlar http://daltinkurt.com/Icerik/262/Wordu-Raporlama-Araci-Olarak-Kullanmak.aspx bu linkteki gibi bişey yapmak istiyorum.burda worde aktar butonuna tıklayınca direkt dosya pc ye iniyor.ben butona tıklayınca yazdır ekranı açılsın yazdır deyince de o dosya yazdırılabilsin istiyorum , nasıl yaparım? kodlar bunlar
protected void btnRapor_Click(object sender, EventArgs e) { // Şablon dosyasının yeri string zipDosya = Server.MapPath("Sablon/Sablon1.docx"); // geçici klasör string geciciKlasor = string.Format(Server.MapPath("Sablon/{0}"), Guid.NewGuid().ToString("N")); // şablonu geçici klasöre aç using (ZipFile zip = ZipFile.Read(zipDosya)) { zip.ExtractAll(geciciKlasor); } // içerik word/document.xml altında string documentDosya = geciciKlasor + @"\word\document.xml"; // tüm içeriği oku string icerik = File.ReadAllText(documentDosya); // anahtar alanları güncelle icerik = icerik.Replace("{ADSOYAD}", txtAdSoyad.Text); icerik = icerik.Replace("{TARIH}", txtTarih.Text); icerik = icerik.Replace("{BORC}", txtBorc.Text); // document.xml i kaydet StreamWriter writer = new StreamWriter(documentDosya, false); writer.Write(icerik); writer.Close();
// geçici klasörü ziple ve kullanıcıya Rapor.docx adıyla indir using (ZipFile zip = new ZipFile()) { string zipAdi = "Rapor.docx"; Response.Clear(); Response.BufferOutput = false; // uzun dosyalar için Response.ContentType = "application/zip"; Response.AddHeader("content-disposition", "filename=" + zipAdi);
zip.AddDirectory(geciciKlasor);
zip.Save(Response.OutputStream); } // işi bitince geçici klasörü sil Directory.Delete(geciciKlasor, true); Response.Close(); }
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
http://daltinkurt.com/Icerik/262/Wordu-Raporlama-Araci-Olarak-Kullanmak.aspx bu linkteki gibi bişey yapmak istiyorum.burda worde aktar butonuna tıklayınca direkt dosya pc ye iniyor.ben butona tıklayınca yazdır ekranı açılsın yazdır deyince de o dosya yazdırılabilsin istiyorum , nasıl yaparım?
kodlar bunlar
protected void btnRapor_Click(object sender, EventArgs e)
{
// Şablon dosyasının yeri
string zipDosya = Server.MapPath("Sablon/Sablon1.docx");
// geçici klasör
string geciciKlasor = string.Format(Server.MapPath("Sablon/{0}"), Guid.NewGuid().ToString("N"));
// şablonu geçici klasöre aç
using (ZipFile zip = ZipFile.Read(zipDosya))
{
zip.ExtractAll(geciciKlasor);
}
// içerik word/document.xml altında
string documentDosya = geciciKlasor + @"\word\document.xml";
// tüm içeriği oku
string icerik = File.ReadAllText(documentDosya);
// anahtar alanları güncelle
icerik = icerik.Replace("{ADSOYAD}", txtAdSoyad.Text);
icerik = icerik.Replace("{TARIH}", txtTarih.Text);
icerik = icerik.Replace("{BORC}", txtBorc.Text);
// document.xml i kaydet
StreamWriter writer = new StreamWriter(documentDosya, false);
writer.Write(icerik);
writer.Close();
// geçici klasörü ziple ve kullanıcıya Rapor.docx adıyla indir
using (ZipFile zip = new ZipFile())
{
string zipAdi = "Rapor.docx";
Response.Clear();
Response.BufferOutput = false; // uzun dosyalar için
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + zipAdi);
zip.AddDirectory(geciciKlasor);
zip.Save(Response.OutputStream);
}
// işi bitince geçici klasörü sil
Directory.Delete(geciciKlasor, true);
Response.Close();
}
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.