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 ---

  • 相关阅读:
    Socket 编程,一个服务器,多个客户端,互相通信(分享) 转
    rundll32.exe命令使用大全 转
    SQL操作全集 转
    看似简单!解读C#程序员最易犯的7大错误 转载
    使用ZedGraph制作动态更新的统计图 转
    C# 递归算法!(n多举例) 转
    C# WinForm开发系列 DataGridView 转载
    用 System.Xml 读写XML 整理文档 转载
    C# WinForm下动态创建的DataGridView更换表头字段名 转
    C# listview.add
  • 原文地址:https://www.cnblogs.com/shadow-abyss/p/15164833.html
Copyright © 2011-2022 走看看