栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity 结合 iText7 打包后 PDF不显示中文

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity 结合 iText7 打包后 PDF不显示中文

环境

Unity2019.4.3.4 f1c1
iText7 7.2.0

问题

Unity编辑模式运行 可以生成PDF, 但项目打包后不能生成PDF

问题原因
Encoding 1252 data could not be found. Make sure you have correct international codeset assembly installed and enabled. 

找不到编码 1252 的数据。 确保您安装并启用了正确的国际代码集程序集。

解决方法
  1. 找到Unity编辑器的安装路径
    例如:
    2019.4.34f1c1EditorDataMonoBleedingEdgelibmonounityjit
  2. 找到以下dll
    I18N.CJK.dll 、I18N.dll、I18N.MidEast.dll
    I18N.Other.dll、I18N.Rare.dll、I18N.West.dll
  3. 将这些dll放入打包后的文件中
    XXXX_DataManaged
测试
using UnityEngine;
using System;
using System.IO;
using iText.Kernel.Pdf;
using iText.Layout;
using iText.Layout.Element;
using iText.Kernel.Font;
using iText.IO.Font;
public class IText7 : MonoBehaviour
{
    void Start()
    {
        FileInfo file = new FileInfo("./itext7.pdf");
        file.Directory.Create();
        CreatePdf("./itext7.pdf");
    }

    public void CreatePdf(String dest)
    {
        PdfWriter writer = new PdfWriter(dest);
        PdfDocument pdf = new PdfDocument(writer);
        Document document = new Document(pdf);
        try
        {
            PdfFont font = null;       
            if (File.Exists("./msyh.ttf"))
            {
                Debug.Log("字体文件存在");
                //注意:字体文件直接放在 打包文件中 测试使用 字体文件路径
                font = PdfFontFactory.CreateFont("./msyh.ttf", PdfEncodings.IDENTITY_H );
                document.Add(new Paragraph("中文").SetFont(font));
            }
        }
        catch (Exception e)
        {
            Debug.Log("字体错误");
            Debug.Log("错误原因:" + e.Message);
            Debug.Log("错误在何处:" + e.StackTrace);
            Debug.Log("错误程序集位置:" + e.Source);
        }
        document.Close();
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901721.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号