poniedziałek, 13 sierpnia 2012

iTextSharp polskie czcionki

Biblioteka do tworzenia Pdf-ów iTextSharp w swojej podstawowej wersji tworzy Pdf-y bez polskich znaków dialektycznych.

Kod tworzący prosty pdf:


Code:
            var pdf = new Document();
            var output = new FileStream("Plik.pdf", FileMode.Create);
            var pdfWriter = PdfWriter.GetInstance(pdf, output);
            pdf.Open();
            var headerParagraph = new Paragraph("Raport śąóżćń");
            pdf.Add(headerParagraph);
            pdf.Close();
            System.Diagnostics.Process.Start("Plik.pdf");

wygeneruje następującego pdf-a:


Jak widać brakuje tutaj części polskich liter.
Aby użyć polskie litery, należy wskazać czcionkę która ma polskie litery. Możemy zrobić to w ten sposób:


Code:
            var pdf = new Document();
            var output = new FileStream("Plik.pdf", FileMode.Create);
            var pdfWriter = PdfWriter.GetInstance(pdf, output);
            pdf.Open();
            var headerParagraph = new Paragraph("Raport śąóżćń", new Font(BaseFont.CreateFont(@"C:\Windows\Fonts\Arial.ttf", BaseFont.CP1250, true)));
            pdf.Add(headerParagraph);
            pdf.Close();

Na wyjściu otrzymamy dokument z polskimi znakami dialektycznymi:


Innym sposobem jest zarejestrowanie folderu gdzie znajdują się nasze czcionki w FontFactory a następnie pobieranie ich przy pomocy metody GetFont:

Code:
            FontFactory.Register(@"C:\Windows\Fonts");
            FontFactory.GetFont("Arial");

Drugi sposób wydaje mi się bardziej wygodny i użyteczny, z drugiej strony jeżeli czcionki są porozrzucane pomiędzy różne katalogi - sposób pierwszy wydaje się bardziej dogodny.

Brak komentarzy:

Prześlij komentarz