1

CP1250 の代わりに UTF-8 を使用して国別文字を表示したい。UTF-8 をサポートする AddParagraph メソッドは見つかりましたが、スタンパーの例は見つかりませんでした。

これは、CP1250 のコード スニペットです。

        PdfReader reader = new PdfReader(templatePath);
        byte[] bytes;
        using (MemoryStream ms = new MemoryStream())
        {
            using (PdfStamper stamper = new PdfStamper(reader, ms))
            {
                PdfContentByte cb = stamper.GetOverContent(1);

                BaseFont bf = BaseFont.CreateFont(
                   BaseFont.COURIER_BOLD, 
                   BaseFont.CP1250, 
                   true);

                //Begin text command
                cb.BeginText();
                //Set the font information                        
                cb.SetFontAndSize(bf,12f);

                //Position the cursor for drawing
                cb.MoveText(field.X, field.Y);
                //Write some text
                cb.ShowText(field.Text);
                //End text command
                cb.EndText();

                //Flush the PdfStamper's buffer
                stamper.Close();
                //Get the raw bytes of the PDF
                bytes = ms.ToArray();
            }
        }

UTF-8 を使用するにはどうすればよいですか?

4

1 に答える 1

7

1 つのフォントから幅広い文字が必要な場合は、エンコーディングとして IDENTITY_H (または縦書きテキストの場合は IDENTITY_V) を使用する必要があります。

例えば:

public const string FONT = "c:/windows/fonts/arialbd.ttf";
BaseFont bf = BaseFont.CreateFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

参照。コンテキストで使用するためのWebified iTextSharp Example UnicodeExample.cs

于 2013-02-26T13:22:52.580 に答える