iTextSharp 5 波兰语字符

2024-01-29

我在使用 itextSharp 处理波兰语字符时遇到问题。我想从 html 创建 pdf。一切都很好,但缺少波兰特色。我使用较低的功能:

    private void createPDF(string html)
    {
        //MemoryStream msOutput = new MemoryStream();
        TextReader reader = new StringReader(html);// step 1: creation of a document-object
        Document document = new Document(PageSize.A4, 30, 30, 30, 30);

        // step 2:
        // we create a writer that listens to the document
        // and directs a XML-stream to a file
        PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("Test.pdf", FileMode.Create));

        // step 3: we create a worker parse the document
        HTMLWorker worker = new HTMLWorker(document);

        // step 4: we open document and start the worker on the document
        document.Open();
        worker.StartDocument();

        // step 5: parse the html into the document
        worker.Parse(reader);

        // step 6: close the document and the worker
        worker.EndDocument();
        worker.Close();
        document.Close();
    }

并尝试使用它:

createPDF("ĄąćęĘłŁŃńóÓŚśŹźŻż");

我尝试设置:

BaseFont bf = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, Encoding.UTF8.HeaderName, BaseFont.EMBEDDED);

        writer.DirectContent.SetFontAndSize(bf, 16);

但这不起作用

你有什么主意吗??

Regards


我得到答案了! =)(专门针对抛光)我觉得有义务把它放在这个旧线程中,因为我确信我不会是最后一个找到它的人。

我非常失望,对此没有任何好的答案...大多数人建议在 Windows FONTS 文件夹中使用 ARIALUNI.TTF,这会导致您的 PDF 文件变大很多倍。解决方案不需要那么激烈...

许多其他人建议使用 cp1252 进行编码的示例,该编码在 Arial 上失败,并且不适用于波兰语文本的 Helvetica。

我正在使用 iTextSharp 4.1.6...诀窍是...cp1257!您可以将其与 BaseFont.Courier、BaseFont.Helvetica、BaseFont.Times-Roman 一起使用

这有效...而且我的 PDF 文件很小(3kb!)

document.Open();
var bigFont = FontFactory.GetFont(BaseFont.COURIER, BaseFont.CP1257, 18, Font.BOLD);
var para = new Paragraph("Oryginał", bigFont);
document.Add(pgDocType);
document.Close();

我稍后会进行测试,确保除了 Windows 7 之外,我还可以在 Windows XP 和 Mac OSX 中打开和阅读这些内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iTextSharp 5 波兰语字符 的相关文章

随机推荐

  • Matplotlib 为重叠的艺术家选择事件顺序

    我在 matplotlib pick 事件中遇到了一个非常奇怪的问题 我有两位艺术家 他们都是可选择的并且一开始就不重叠 洞 和 钉子 当我选择其中之一时 在事件处理过程中我move另一个到我刚刚点击的位置 将 钉子 移动到 洞 中 然后
  • Range.Find 在 VBA Excel 中不区分一月和十一月(二月和十二月)

    假设我有以下琐碎的任务 连续写出 2016 年 1 月到 2018 年 6 月的第一个日期 找到 01 Janu 2016 并将其涂成红色 Use Range Find 因此 我创建了一个代码 从 1 循环到 30 并写入每个月的第一个日期
  • PyQt5:使用不透明小部件创建透明窗口

    是否可以使 mainWindow 完全透明 而其他小部件仍然可见 For example 我想让应用程序透明并使其他所有内容可见 例如 mainFrame 关闭按钮 最小化按钮 正如 Felipe提到的 你可以使用 window setAt
  • 在python中提取分隔符[]之间的单词

    从下面的字符串中 我想提取分隔符之间的单词 like Service Current Service 9991 1 22 str mysrv events Generating Event Name Service Current Cate
  • 在 NSPredicate 中组合“AND”和“OR”条件

    再次回来需要更多帮助来构建我的 NSPredicates Category name string subs lt gt gt SubCategory SubCategory name string numbervalue NSNumber
  • 每个帖子有多个例外,并带有摘录类别

    我正在寻找一种解决方案 允许自定义帖子类型中的每个帖子有多个摘录框 并且有一种方法可以让这些摘录具有类别 我知道我可以添加元框来提供额外的文本区域并显示该文本 但我不太确定这就是我想要的 澄清一下 我有一个自定义的推荐帖子类型 该帖子类型具
  • 是否可以使用 MediaRecorder() 获取音频数据的原始值

    我使用 MediaRecorder 和 getUserMedia 来记录浏览器中的音频数据 它可以工作 但是记录的数据是以 Blob 格式记录的 我想获取原始音频数据 振幅 而不是 Blob 有可能做到吗 我的代码如下所示 navigato
  • 如何从类方法中调用全局函数

    我有以下代码 def static func name print Name name class A def init self name self name name def fun self static func self name
  • GWT MVP - 维护多个彼此独立的显示

    我有一个 GWT 应用程序 并且正在将 GWT MVP 与地点 活动一起使用 我的应用程序布局是这样的 菜单 内容 菜单和内容显示将动态变化 并且其中一个变化独立于另一个 我的意思是 当内容显示发生变化时 我不想更新菜单显示 反之亦然 两个
  • typeof(DateTime?).Name == Nullable`1

    在 Net 中使用反射typeof DateTime Name返回 可空 1 有什么方法可以将实际类型作为字符串返回 在本例中为 DateTime 或 System DateTime 我明白那个DateTime is Nullable
  • 如何在 iOS 中向 PHP 发送 GEt 请求

    您好 我在向 PHP 发送 GET 请求时遇到问题 相同的 PHP 在 Web 浏览器中运行时工作正常 这是 PHP 和 Obj C 的代码片段 PHP var1 GET value1 var2 GET value2 当我在浏览器中调用它时
  • Android 项目的 tab+swipe 应用程序中不同选项卡的不同菜单

    我是 android 应用程序和 java 的初学者 基本上我是 PHP 开发人员 我有一个选项卡 滑动应用程序的项目 经销商 java 在 res menu 文件夹中为 menu a xml 和 menu b xml 创建菜单 xml 文
  • CoreData - 将实体的属性设置为不为空 - 属性应该设置为可选还是强制

    我需要将 Coredata 实体中的一个属性设置为非空并具有默认值 我已在 xcdatamodeld 架构定义中为实体的属性设置了默认值 我的问题是该属性是否应该标记为可选 如果我不检查属性的以下三个属性 Transient Optiona
  • 如何在sql server中选择彼此相隔一小时的记录

    我有一组带有时间戳的 user id 登录数据 用户可以多次登录 但我们需要从最短记录开始返回至少相隔一小时的记录 重复数据删除必须在用户级别进行 可以有多个用户 for eg 用户1 2012 03 07 14 24 30 000 用户1
  • 使用javascript获取外部url的文档

    我有一个 html 表单 它接受 url 作为 txt 输入和提交按钮 当我单击按钮时 我想访问提供的 url 的文档模型 我如何使用 javascript 访问该 url 的文档 如果您向该 url 发出 HTTP GET 请求 您将收到
  • std::initializer_list 作为构造函数的模板参数

    考虑一个从 std 容器继承的类 其模板构造函数调用容器的底层构造函数 此模板构造函数适用于简单的复制和移动构造函数 但不适用于initializer list 构造函数 template
  • DT:根据 R 闪亮应用程序中另一列的选择输入动态更改列值

    我正在尝试创建一个表 使用 DT 请不要使用 rhandsontable 该表几乎没有现有列 一个 selectinput 列 其中每行都有可供选择的选项 最后是另一列 该列将根据用户选择的内容进行填充从每行的 selectinput 下拉
  • 为什么 Internet Explorer 8 中会出现此泄漏?

    为什么下面的代码会泄漏 for var i 0 i lt 100 i var item item elem document createElement div document body appendChild item elem ite
  • 带请求正文的 Elasticsearch GET 请求

    将请求正文与 GET 请求一起传递不是违反 REST 风格的方法吗 例如在Elasticsearch中过滤一些信息 curl localhost 9200 megacorp employee search d query filtered
  • iTextSharp 5 波兰语字符

    我在使用 itextSharp 处理波兰语字符时遇到问题 我想从 html 创建 pdf 一切都很好 但缺少波兰特色 我使用较低的功能 private void createPDF string html MemoryStream msOu