FYIREPORT gözlemlerime göre oldukça başarılı bir raporlama nesnesi www.fyiReporting.com Orjinalinde pdf export için türkçe karakter problemi var. Fakat itextsharp ile bu sorun aşılmış.
https://github.com/majorsilence/My-FyiReporting/issues/11
adresindeki kodlarla RdlEngine->RenderPDF içerisindeki bazı fonksiyonları değiştirmeniz gerekiyor. Öte yandan verilen bu kodda küçük bir hata var.
public void End() fonksiyonu içerisindeki "byte[] contentbyte = ms.GetBuffer();" kodunu byte[] contentbyte = ms.ToArray(); olarak değiştirmemiz gerekiyor.
Birde
else fontname = "\\ariali.ttf"; kodunu else fontname = "\\arial.ttf";
olarak değiştirisek defaultta italik gelmez.
Öte yandan RdlEngine->Report.cs dosyasına
public bool ItextPDF = true; static DirectoryInfo dirWindowsFolderx = Directory.GetParent(Environment.GetFolderPath(Environment.SpecialFolder.System)); // Concatenate Fonts folder onto Windows folder. public string FontFolder = Path.Combine(dirWindowsFolderx.FullName, "Fonts");
kodlarını eklememiz gerekiyor.
Birde tabi itextsharp apisini RdlEngine projesine "Add Reference" yapmamız gerekiyor.
Kullanımı designer üzerinden çok basit.
C# ile bir örnek projeye RdlEngine apisini referans ediyorum. ------------------------------------------------------------------------ RDLParser rdlParser = new RDLParser(File.ReadAllText("d:/x.rdl")); Report report = rdlParser.Parse(); byte[] bytes=null; ListDictionary parameters = new ListDictionary(); parameters.Add("REFNO", "2"); report.RunGetData(parameters); using(MemoryStreamGen ms = new MemoryStreamGen()) { report.RunRenderPdf(ms, report.BuildPages()); bytes = (ms.GetStream() as MemoryStream).ToArray(); ms.CloseMainStream(); }
------------------------------------------------------------------------ Yukarda verdiğim örnekte önceden yarattığım x.rdl rapor dosyasına "REFNO"->"2" paremtresi gönderek çalıştırdım. Raporun içerisindeki queryleri REFNO ile bağlantılı hazırladığım için istediğim tablodaki istediğim bilgileri rapora yazdırabildim. Sonra onu bytes variablesine export ettim.
|