我使用Unity2018.2.3f1和iTextSharp。 尽管可以创建基本的PDF,但是日语字体不能在Windows上使用。 以下源代码在Mac上可以正常工作。
try {
PdfReader reader = new PdfReader ( basePath );
Document document = new Document ( reader.GetPageSize ( 1 ) );
FileStream fileStream = new FileStream ( newPath, FileMode.Create, FileAccess.Write );
PdfWriter writer = PdfWriter.GetInstance ( document, fileStream );
document.Open ();
PdfContentByte pdfContentByte = writer.DirectContent;
PdfImportedPage page = writer.GetImportedPage ( reader, 1 );
pdfContentByte.AddTemplate ( page, 0, 0 );
string fontName = Path.Combine ( Application.streamingAssetsPath, "mplus-1c-medium.ttf" );
BaseFont bf = BaseFont.CreateFont ( fontName, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED );
pdfContentByte.SetFontAndSize ( bf, 10.0f );
pdfContentByte.BeginText ();
pdfContentByte.ShowText ( new PdfTextArray ( "文字列" ) );
pdfContentByte.SetFontAndSize ( bf, 20.0f );
pdfContentByte.MoveText ( 50, 50 );
pdfContentByte.ShowText ( new PdfTextArray ( "文字列1" ) );
pdfContentByte.ShowText ( new PdfTextArray ( "2" ) );
pdfContentByte.EndText ();
document.Close ();
fileStream.Close ();
writer.Close ();
reader.Close ();
} catch (Exception ex) {
handyAlert.text = "Error1:"+ex.Message;
Debug.Log ( ex.StackTrace);
}
但是,在Windows上会发生以下错误。
找不到编码1252数据。确保你有正确的 国际代码集程序集已安装并启用。
所使用的字体如下。由于它可以在Mac上正常运行,因此我认为字体文件本身没有问题。 https://mplus-fonts.osdn.jp
此外,如果按如下方式构成BaseFont.CreateFont的一部分,则除日语以外的数字部分将正常书写。
BaseFont bf = BaseFont.CreateFont ( BaseFont.TIMES_ROMAN, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED );
请告诉我如何解决。
答案 0 :(得分:1)
我找到了解决方案。我需要“ I18N.dll”和“ I18N.West.dll”。 在Unity项目的Plugins文件夹中安装了这两个dll并构建应用程序后,它就可以正常工作。
https://answers.unity.com/questions/42955/codepage-1252-not-supported-works-in-editor-but-no.html