Как вставить текст Unicode маратхи в PDF-файл, созданный с использованием Asp.net / C # и itextsharp? - PullRequest
0 голосов
/ 23 ноября 2010
        Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

        BaseFont marathi = iTextSharp.text.pdf.BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.EMBEDDED);

        iTextSharp.text.Font fontNormal = new iTextSharp.text.Font(marathi, 12, iTextSharp.text.Font.NORMAL);

        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("c:\\Test11.pdf", FileMode.Create));
        //Open Document to write
        doc.Open();

        //Write some content
        Paragraph paragraph = new Paragraph("English मराठी English मराठी English मराठी ");

        // Now add the above created text using different class object to our pdf document
        doc.Add(paragraph);


        doc.Close(); //Close document

Я использую приведенный выше код для создания файла PDF.Созданный PDF-файл содержит только слова на английском языке и не содержит मराठी.

Что нужно сделать, чтобы строки маратхи в юникоде были включены в pdf?

Ответы [ 3 ]

0 голосов
/ 25 ноября 2010

Изменен код, и теперь он работает.Используется шрифт Arial Unicode.Также при добавлении текста в абзац указывается шрифт, который будет использоваться.

        Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

        BaseFont marathi = iTextSharp.text.pdf.BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); // --> CHANGED

        iTextSharp.text.Font fontNormal = new iTextSharp.text.Font(marathi, 12, iTextSharp.text.Font.NORMAL);

        PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("c:\\Test11.pdf", FileMode.Create));
        //Open Document to write
        doc.Open();

        //Write some content
        Paragraph paragraph = new Paragraph("English मराठी English मराठी English मराठी ", fontNormal); // --->> CHANGED Specify the font to use

        // Now add the above created text using different class object to our pdf document
        doc.Add(paragraph);

        doc.Close(); //Close document
0 голосов
/ 25 февраля 2011
Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35);

    BaseFont marathi = iTextSharp.text.pdf.BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\ARIALUNI.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); // --> CHANGED

    iTextSharp.text.Font fontNormal = new iTextSharp.text.Font(marathi, 12, iTextSharp.text.Font.NORMAL);

    PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("c:\\Test11.pdf", FileMode.Create));
    //Open Document to write
    doc.Open();

    //Write some content
    Paragraph paragraph = new Paragraph("English मराठी English मराठी English मराठी ", fontNormal); // --->> CHANGED Specify the font to use

    // Now add the above created text using different class object to our pdf document
    doc.Add(paragraph);

    doc.Close(); //Close document
0 голосов
/ 24 ноября 2010

Во-первых, вам нужен шрифт, содержащий символы, которые вы хотите. "Helvetica" не будет работать. Тогда вам нужна кодировка, которая может представлять эти символы. «Идентичность-Н» всегда работает.

Google для примеров шрифтов itext, если вам нужна дополнительная информация.

...