09 Eki 2021 ASP.NET ile HTML'den PDF'e Çevirme İşlemi Kategori: ASP.NET Etiketler: ASP.NETASP.NET 4.0C# 4.0 35 Yorum HTML'den PDF'e dönüşüm işlemini "wkhtmltopdf" ile çok basit bir şekilde yapabiliyoruz. public static string HtmlToPdf(string pdfOutputLocation, string outputFilenamePrefix, string[] urls, string[] options = null, string pdfHtmlToPdfExePath = "C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe") { string urlsSeparatedBySpaces = string.Empty; try { //Determine inputs if ((urls == null) || (urls.Length == 0)) throw new Exception("No input URLs provided for HtmlToPdf"); else urlsSeparatedBySpaces = String.Join(" ", urls); //Concatenate URLs string outputFolder = pdfOutputLocation; string outputFilename = outputFilenamePrefix + ".PDF"; // assemble destination PDF file name var p = new System.Diagnostics.Process() { StartInfo = { FileName = pdfHtmlToPdfExePath, Arguments = ((options == null) ? "" : String.Join(" ", options)) + " " + urlsSeparatedBySpaces + " " + outputFilename, UseShellExecute = false, // needs to be false in order to redirect output RedirectStandardOutput = true, RedirectStandardError = true, RedirectStandardInput = true, // redirect all 3, as it should be all 3 or none WorkingDirectory = HttpContext.Current.Server.MapPath(outputFolder) } }; p.Start(); // read the output here... var output = p.StandardOutput.ReadToEnd(); var errorOutput = p.StandardError.ReadToEnd(); // ...then wait n milliseconds for exit (as after exit, it can't read the output) p.WaitForExit(100000); // read the exit code, close process int returnCode = p.ExitCode; p.Close(); // if 0 or 2, it worked so return path of pdf if ((returnCode == 0) || (returnCode == 2)) return outputFolder + outputFilename; else throw new Exception(errorOutput); } catch (Exception exc) { throw new Exception("Problem generating PDF from HTML, URLs: " + urlsSeparatedBySpaces + ", outputFilename: " + outputFilenamePrefix, exc); } }Kullanırken de aşağıdaki gibi çağırabiliriz.Parametreler hakkında bilgileri aşağıda bulabilirsiniz.1. Parametre: PDF'in kaydedileceği klasör.2. Parametre: PDF dosyasının adı.3. Parametre: Hangi URL'in PDF'i oluşturulacaksa belirtiyoruz.HtmlToPdf("/uplodas/", "PDFDosyasiAdi", new string[] { "http://www.semgoksu.com" });
25 Oca 2018 Logo Tiger LObjects Aracı ile Cari Kart Oluşturma Kategori: C#.NET Etiketler: C#C# 4.0 28 Yorum Herkese uzunca bir aradan sonra tekrar merhabalar! Bu yazımızda C# ile LObject aracını kullanarak Tiger programına bağlanarak bir cari kart oluşturacağız. //Logo Tiger Unity Applicaiton Nesnesi public UnityApplication tiger = new UnityApplication(); public bool CariKartOlustur() { bool sonuc = false; try { // Tiger programına bağlantı yap if (tiger.Connect()) { // Kullanıcı girişi yap if (tiger.UserLogin("kullaniciadi", "sifre")) { // Tiger programındaki 1 numaralı firmaya giriş yap. if (tiger.CompanyLogin(1)) { Data cari = tiger.NewDataObject(DataObjectType.doAccountsRP); cari.New(); // Cari Hesap Tipi. 1: Alıcı cari.DataFields.FieldByName("ACCOUNT_TYPE").Value = 1; // Cari Hesap Kodu cari.DataFields.FieldByName("CODE").Value = "120.10.34.57"; // Cari Hesap Ünvan cari.DataFields.FieldByName("TITLE").Value = "Sem Göksu"; // Adres Detayı cari.DataFields.FieldByName("ADDRESS1").Value = "Ümraniye"; // Şehir cari.DataFields.FieldByName("CITY").Value = "İstanbul"; //Cari Kart bilgisini bağlandığınız Logo Tiger şirketine kayıt yapın if (cari.Post()) { Console.WriteLine("Tigera cari hesap kaydı yapıldı!"); sonuc = true; } else { for (int i = 0; i < cari.ValidateErrors.Count; i++) { Console.WriteLine("{0} - {1};", cari.ValidateErrors[i].Error, cari.ValidateErrors[i].ID); } sonuc = false; } // Firmadan çıkış yap tiger.CompanyLogout(); } // Kullanıcı çıkış yap tiger.UserLogout(); } // Tiger programıyla bağlantıyı sonlandır tiger.Disconnect(); } } catch (Exception exp) { Console.WriteLine("Tigera cari hesap kaydı yapılamadı. Hata: {0}", exp.Message); sonuc = false; } return sonuc; }
15 Mar 2012 Regular Expression ile HTML Kodlarını Temizleme Kategori: C#.NET Etiketler: C# 2.0C# 3.0C#C# 4.0ASP.NET 26 Yorum public static string RemoveHtml(string text) { return Regex.Replace(text, @"<(.|\n)*?>", string.Empty); }String bir ifade içerisindeki HTML etiketlerini temizlemek istiyorsanız bu metot işinizi görecektir :)
15 Mar 2012 Regular Expression ile E-Mail Doğrulama Kategori: C#.NET Etiketler: C# 2.0C# 3.0C#C# 4.0ASP.NET 26 Yorum public static bool IsEmail(string mail) { string emailPattern = @"^(([^<>()[\]\\.,;:\s@\""]+" + @"(\.[^<>()[\]\\.,;:\s@\""]+)*)|(\"".+\""))@" + @"((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" + @"\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+" + @"[a-zA-Z]{2,}))$"; return Regex.IsMatch(mail, emailPattern); }Server side e-mail'i doğrulamak istiyorsanız bu metot işinizi görecektir :)
19 Ağu 2011 Reflection ile Dinamik Tip Oluşturmak Kategori: Yazılım Etiketler: C#C# 4.0ASP.NET 4.0ASP.NET 0 Yorum Projelerimden birinde Developer Express kontrollerinden ASPxGridview'i kullanırken RowDataBound eventinin olmadığını farkettim. Biraz araştırdıktan sonra bu evente karşılık olarak HtmlRowPrepared eventini buldum. Bu event RowDataBound ile aynı işi yapsa da çok yetersiz. Örnek olarak e.Row.DataItem property'si ASPxGridView kontrolün de yer almıyor. Benzer işi yapan GetValue metodu var fakat her defasında da datayı okumak için GetValue metodunu çağırmak pek hoşuma gitmedi açıkcası. Bu sorunu çözmek için bir extension metot yazdım ve her defasında GetValue metodunu çağırmak yerine ilgili nesneyi döndürüyor. Metot generic olduğu için hangi tipte nesne set ederseniz edin size o tipte bir nesne döndürüyor. Her ne kadar Asp.Net kontrolünün yerini tutan bir kontrol olmasa da bu metot sayesinde biraz daha kullanışlı hale gelmiş oldu :) public static T RowData<T>(this ASPxGridViewTableRowEventArgs row) whereT : class, new() { Type originalObject = (newT()).GetType(); // DataSource'a set edilen collection nesnenin tipi T newObject = Activator.CreateInstance<T>(); // Geri döndüreceğimiz tipi oluşturuyoruz foreach (var property in originalObject.GetProperties()) // Property'lere değerlerini set etmek için tüm propertyler arasında gezinelim { if (property.CanWrite) // Property set blogunu içeriyorsa { property.SetValue(newObject, row.GetValue(property.Name), null); } } return(T)newObject; // Oluşturulan tip doldurulduktan sonra geri döndürülür...} İşte bu kadar :)