Я использую 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 );
Подскажите пожалуйста, как решить.