Google Analytics İzleme

19 Eylül 2013

itextsharp - Asp.net ile pdf çıkışı alınca oluşan "Document has no pages" hatası

Asp.net uygulamasında bir data source kaynağını pdf olarak kaydetmek istedim, türkçe karakter problemi olmaması için arial unicode font'unu kullandım. Çalıştırınca "Document has no pages" şeklinde hata oluştu. Bu hata itextsharp kütüphanesinin pdf'i üretirken font yükleyememe, fontu okuyamama gibi sorundan olduğunu anladım. Sorunun düzelmesi için custom font'u itextsharp'a kayıt etmek gereklidir.

Örnek kod:

BaseFont baseFont = BaseFont.CreateFont(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + @"Fonts\ARIALUNI.TTF", BaseFont.IDENTITY_H, false);
Font fontTimesForHeader = new Font(baseFont, 14, Font.NORMAL, BaseColor.BLACK);
Font font1 = new Font(baseFont, 8, Font.NORMAL, BaseColor.BLACK);
// font'u kaydetme
FontFactory.RegisterDirectory(
                        System.Web.HttpContext.Current.Request.PhysicalApplicationPath + @"Fonts", true);
FontFactory.Register(System.Web.HttpContext.Current.Request.PhysicalApplicationPath + @"Fonts\ARIALUNI.TTF", "Arial Unicode MS");
FontFactory.RegisterFamily("Arial Unicode MS", "Arial Unicode MS", System.Web.HttpContext.Current.Request.PhysicalApplicationPath + @"Fonts\ARIALUNI.TTF");


ARIALUNI.TTF font dosyasını asp.net uygulamasının ana klasörünün altına, Fonts diye klasör oluşturup, içine yerleştirdim.




Hiç yorum yok: