zoukankan      html  css  js  c++  java
  • backup: 通过 fop 正常显示汉字(宋体)

    主要内容都是 fop example 中的内容,备份用途是记下如何让 pdf 可以正常显示 宋体,因为完成示例程序的过程中,生成的 pdf 不能正常显示汉字。

    fop.xconf

    <?xml version="1.0"?>
    <!-- $Id: fop.xconf 1616312 2014-08-06 19:19:31Z gadams $ -->
    
    <!--
    
    This is an example configuration file for FOP.
    This file contains the same settings as the default values
    and will have no effect if used unchanged.
    
    Relative config url's will be resolved relative to
    the location of this file.
    
    -->
    
    <!-- NOTE: This is the version of the configuration -->
    <fop version="1.0">
    
      <!-- Base URL for resolving relative URLs -->
      <base>.</base>
      
      <!-- Source resolution in dpi (dots/pixels per inch) for determining the size of pixels in SVG and bitmap images, default: 72dpi -->
      <source-resolution>72</source-resolution>
      <!-- Target resolution in dpi (dots/pixels per inch) for specifying the target resolution for generated bitmaps, default: 72dpi -->
      <target-resolution>72</target-resolution>
      
      <!-- Default page-height and page-width, in case value is specified as auto -->
      <default-page-settings height="11.00in" width="8.50in"/>
      
      <!-- Information for specific renderers -->
      <!-- Uses renderer mime type for renderers -->
      <renderers>
        <renderer mime="application/pdf">
          <filterList>
            <!-- provides compression using zlib flate (default is on) -->
            <value>flate</value>
      
            <!-- encodes binary data into printable ascii characters (default off)
                 This provides about a 4:5 expansion of data size -->
            <!-- <value>ascii-85</value> -->
      
            <!-- encodes binary data with hex representation (default off)
                 This filter is not recommended as it doubles the data size -->
            <!-- <value>ascii-hex</value> -->
          </filterList>
    
          <fonts>
            <!-- embedded fonts -->
            <!--
            This information must exactly match the font specified
            in the fo file. Otherwise it will use a default font.
    
            For example,
            <fo:inline font-family="Arial" font-weight="bold" font-style="normal">
                Arial-normal-normal font
            </fo:inline>
            for the font triplet specified by:
            <font-triplet name="Arial" style="normal" weight="bold"/>
    
            If you do not want to embed the font in the pdf document
            then do not include the "embed-url" attribute.
            The font will be needed where the document is viewed
            for it to be displayed properly.
    
            possible styles: normal | italic | oblique | backslant
            possible weights: normal | bold | 100 | 200 | 300 | 400
                              | 500 | 600 | 700 | 800 | 900
            (normal = 400, bold = 700)
            -->
    
            <!--
            <font metrics-url="arial.xml" kerning="yes" embed-url="arial.ttf">
              <font-triplet name="Arial" style="normal" weight="normal"/>
              <font-triplet name="ArialMT" style="normal" weight="normal"/>
            </font>
            <font metrics-url="arialb.xml" kerning="yes" embed-url="arialb.ttf">
              <font-triplet name="Arial" style="normal" weight="bold"/>
              <font-triplet name="ArialMT" style="normal" weight="bold"/>
            </font>
            -->
    
            <!-- auto-detect fonts -->
            <!-- <auto-detect/> -->
            
            <font embed-url="/C:/Windows/Fonts/SimSun.ttc" sub-font="SimSun">
              <font-triplet name="宋体" style="normal" weight="normal"/>
            </font>
            
    
          </fonts>
    
          <!-- This option lets you specify additional options on an XML handler -->
          <!--xml-handler namespace="http://www.w3.org/2000/svg">
            <stroke-text>false</stroke-text>
          </xml-handler-->
    
        </renderer>
    
    
      </renderers>
    
    </fop>

    projectteam2fo.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
      Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at
    
           http://www.apache.org/licenses/LICENSE-2.0
    
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    -->
    <!-- $Id$ -->
    <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'"/> 
      
      <xsl:attribute-set name="border">
        <xsl:attribute name="border-top">1pt solid black</xsl:attribute>
        <xsl:attribute name="border-bottom">1pt solid black</xsl:attribute>
        <xsl:attribute name="border-left">1pt solid black</xsl:attribute>
        <xsl:attribute name="border-right">1pt solid black</xsl:attribute>
      </xsl:attribute-set>
      
      <!-- ========================= -->
      <!-- root element: projectteam -->
      <!-- ========================= -->
      <xsl:template match="projectteam">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
          <fo:layout-master-set>
            <fo:simple-page-master master-name="simpleA4" page-height="29.7cm" page-width="21cm" margin-top="2cm" margin-bottom="2cm" margin-left="2cm" margin-right="2cm">
              <fo:region-body/>
            </fo:simple-page-master>
          </fo:layout-master-set>
          <fo:page-sequence master-reference="simpleA4">
            <fo:flow flow-name="xsl-region-body">
              <fo:block font-family="宋体" font-size="16pt" font-weight="bold" space-after="5mm">Project: <xsl:value-of select="projectname"/>
              </fo:block>
              <fo:block font-size="12pt" space-after="5mm">Version <xsl:value-of select="$versionParam"/>
              </fo:block>
              <fo:block font-size="10pt">
                <!-- border-collapse : collapse | separate -->
                <fo:table table-layout="fixed" width="100%" border-collapse="collapse">
                  <fo:table-column column-width="4cm" />
                  <fo:table-column column-width="4cm" />
                  <fo:table-column column-width="5cm" />
                  <fo:table-body>
                    <xsl:apply-templates select="member"/>
                  </fo:table-body>
                </fo:table>
              </fo:block>
            </fo:flow>
          </fo:page-sequence>
        </fo:root>
      </xsl:template>
      <!-- ========================= -->
      <!-- child element: member     -->
      <!-- ========================= -->
      <xsl:template match="member">
        <fo:table-row>
          <xsl:if test="function = 'lead'">
            <xsl:attribute name="font-weight">bold</xsl:attribute>
          </xsl:if>
          <fo:table-cell xsl:use-attribute-sets="border">
            <fo:block>
              <xsl:value-of select="name"/>
            </fo:block>
          </fo:table-cell>
          <fo:table-cell xsl:use-attribute-sets="border">
            <fo:block>
              <xsl:value-of select="function"/>
            </fo:block>
          </fo:table-cell>
          <fo:table-cell xsl:use-attribute-sets="border">
            <fo:block>
              <xsl:value-of select="email"/>
            </fo:block>
          </fo:table-cell>
        </fo:table-row>
      </xsl:template>
    </xsl:stylesheet>

    --- THE END ---

  • 相关阅读:
    words you learn through youtube and so on in daily life
    python 随笔
    Zookeeper 指南
    Mac 后台服务
    Elasticsearch 指南
    架构之灰度部署
    架构之CDN缓存
    架构之微服务(zookeeper)
    架构之微服务(etcd)
    架构之微服务设计(Nginx + Upsync)
  • 原文地址:https://www.cnblogs.com/shadow-abyss/p/15164833.html
Copyright © 2011-2022 走看看