如何在使用Asp.net / C#和itextsharp生成的pdf文件中嵌入unicode marathi文本?

时间:2010-11-23 14:17:18

标签: asp.net pdf unicode itextsharp

        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文件仅包含单词English,不包含मराठी。

需要做什么才能将unicode Marathi字符串包含在pdf中?

3 个答案:

答案 0 :(得分:0)

首先,您需要一个包含所需字符的字体。 “Helvetica”不起作用。然后,您需要一个可以表示这些字符的编码。 “身份-H”始终有效。

如果您需要进一步的信息,Google可以使用itext字体样本。

答案 1 :(得分:0)

更改了代码,现在正在运行。 使用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

答案 2 :(得分:0)

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