⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fop.jam

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 JAM
字号:
#  Copyright (C) 2003-2004 Doug Gregor and Dave Abrahams. Distributed# under the Boost Software License, Version 1.0. (See accompanying# file LICENSE_1_0.txt or copy at# http://www.boost.org/LICENSE_1_0.txt)##  This module defines rules to handle generation of PDF and#  PostScript files from XSL Formatting Objects via Apache FOPimport os ;import generators ;import common ;import errors ; generators.register-standard fop.render.pdf : FO : PDF ;generators.register-standard fop.render.ps : FO : PS ;rule init ( fop-command ? : java-home ? : java ? ){    fop-command = [ common.get-invocation-command fop : fop : $(fop-command)       : [ modules.peek : FOP_DIR ] ] ;            if $(.initialized)    {        if $(.FOP_COMMAND) != $(fop-command) || $(JAVA_HOME) != $(java-home)           || $(JAVACMD) != $(java)        {            errors.user-error "fop: reinitialization with different options" ;        }            }    else    {        .initialized = true ;        .FOP_COMMAND = $(fop-command) ;        # What is the meaning of this logic?  Needs more comments!!  --DWA        java-home ?= $(java) ;        .FOP_SETUP = [ common.variable-setting-command JAVA_HOME : $(java-home) ] ;    }        # Make sure the fop command is executed from within the directory where it's located.    # DPG: I can't see how this could ever be correct, because it    # messes up path names that are used in the command.    # if $(.FOP_COMMAND:D)    # {    #     .FOP_SETUP = $(.FOP_SETUP)"# cd "$(.FOP_COMMAND:D) ;    # }      }local rule find-by-absolute-path ( target ){    # Mask off any vars by these names that may be hanging around in    # outer dynamic scopes.    local LOCATE SEARCH ;         # simulate the target binding process to find the target        local found =  [ on $(target) GLOB $(LOCATE) (SEARCH) : $(target:G=) ] ;        if $(found)    {        # Re-LOCATE the target with an absolute path if it isn't        # already absolute.        local found-dir = $(found[1]:D) ;        local cwd = [ PWD ] ;        local absolute-dir = $(found-dir:R=$(cwd)) ;                # Translate cygwin paths to Windows iff the user is running on        # cygwin but using a Windows FOP.  We detect a Windows FOP by        # looking to see if FOP_COMMAND ends with ".bat"        if [ os.name ] = CYGWIN && [ MATCH .*\\.([Bb][Aa][Tt])$ : $(.FOP_COMMAND) ]        {            absolute-dir = "`cygpath --windows '$(absolute-dir)'`" ;        }        LOCATE on $(target) = $(absolute-dir) ;    }}rule render.pdf ( source : target : properties * ){    find-by-absolute-path $(source) ;    find-by-absolute-path $(target) ;}rule render.ps ( source : target : properties * ){    find-by-absolute-path $(source) ;    find-by-absolute-path $(target) ;}actions render.pdf{  $(.FOP_SETUP) $(.FOP_COMMAND) $(>) $(<)}actions render.ps{  $(.FOP_SETUP) $(.FOP_COMMAND) $(>) -ps $(<)}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -