【问题标题】:Android write PDF file whith itextpdf pt-BR languageAndroid使用itextpdf pt-BR语言编写PDF文件
【发布时间】:2015-08-23 03:43:06
【问题描述】:

我需要编写 PDF 文件,我将这个示例 (http://www.vogella.com/tutorials/JavaPDF/article.html) 与这个版本 "itextpdf-5.4.1.jar" 一起使用。

这会创建 PDF 文件,但是当单词有“você”时,写下这个“você”。

我找到了这段代码,但没有工作:

文档文档; ... ... document.addLanguage("pt-BR");

如何将编码或语言设置为巴西?

谢谢!

【问题讨论】:

  • 当您的单个字母 'ê' 变成两个字符时,可能是您的源文件是 UTF8 编码的,但您的编译器采用单字节编码?
  • 这在The Best iText Questions on StackOverflow中有很详细的解释;这是一本免费的电子书,可以回答诸如Can't get Czech characters while generating a PDF 之类的问题。在您的情况下,您的编码问题可能是在您阅读源文件时已经引起的。
  • 谢谢大家!我的问题实际上是 Android Studio 文件编码,@mkl 和 bruno-lowagie 如何解释“这不是一个真正的 iText 问题。这是一个纯粹的编码问题。”谢谢

标签: android pdf encoding character-encoding itextpdf


【解决方案1】:

看看我对Divide page in 2 parts so we can fill each with different source 的回答(今年是The Best iText Questions on StackOverflow 回答的另一个问题)。在此示例中,我们读取了一系列以 UTF-8 存储的文本文件。为此,我们使用这种方法:

public Phrase createPhrase(String path) throws IOException {
    Phrase p = new Phrase();
    BufferedReader in = new BufferedReader(
        new InputStreamReader(new FileInputStream(path), "UTF8"));
    String str;
    while ((str = in.readLine()) != null) {
        p.add(str);
    }
    in.close();
    return p;
}

如果您删除 "UTF8" 并且如果您阅读该文本,就好像它是 ASCII 一样,那么您会得到您在问题中描述的相同行为:每个字节将被视为单个字符,而您有字符需要两个字节。

这不是一个真正的 iText 问题。这是一个纯粹的编码问题。

【讨论】:

  • 感谢@bruno-lowagie 这行得通,我设置了正确的编码,现在我在 PDF 中的文本是正确的。
猜你喜欢
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多