小编mlo*_*ika的帖子

FOP不显示西里尔字符

我需要帮助以Java用FOP显示西里尔字母。我创建了内容的xml和xsl文件,它将格式化新的PDF。

他们两个都使用UTF-8字符编码。

但是在结果文件中,我只能看到“#”字符,而不是西里尔字符。

我试图用XmlSpy创建resultxml。看起来不错。我想我缺少字体了。如何在FOP配置中添加字体?请给我一个详细的例子。

这是Java代码:

    Document xslDoc = getConverterXsl(index);
    FopFactory fopFactory = null;
    fopFactory = FopFactory.newInstance();
    FOUserAgent foUserAgent = fopFactory.newFOUserAgent();
    Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, foUserAgent, pdfOutputStream);
    Result res = new SAXResult(fop.getDefaultHandler());
    doXslTransform(index, xslDoc, fopDoc, res);
Run Code Online (Sandbox Code Playgroud)

这是xsl:

<?xml version="1.0" encoding="UTF-16"?>
<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" exclude-result-prefixes="fo">
  <xsl:output method="xml" version="1.0" omit-xml-declaration="no" indent="yes"/>
  <xsl:param name="versionParam" select="'1.0'"/> 
  <!-- ========================= -->
  <!-- root element: ReportRoot -->
  <!-- ========================= -->
  <xsl:template match="ReportRoot">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
        <fo:simple-page-master master-name="simpleA4" page-width="21cm" page-height="29.7cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm" font-family="Arial">
          <fo:region-body/>
        </fo:simple-page-master>
      </fo:layout-master-set> …
Run Code Online (Sandbox Code Playgroud)

pdf fonts utf-8 apache-fop cyrillic

6
推荐指数
1
解决办法
3100
查看次数

标签 统计

apache-fop ×1

cyrillic ×1

fonts ×1

pdf ×1

utf-8 ×1