2016-01-21 78 views
0

我正在嘗試自定義我們的developer guide pdf以擁有一個體面的首頁。我完全可以在Photoshop中做所有事情,因爲asciidoc在這裏的能力相當有限。如何使用asciidoctor-fopub生成封面圖片圖片

不幸的是,儘管看起來無處不在,但我似乎無法找到一種方法來定製封面或將其替換爲適用於asciidoctor-fopub的圖像。

令人討厭的是,這個用例在項目https://github.com/asciidoctor/asciidoctor-fopub的自述文件(自定義XSL模板下)中特別提到,但沒有提及除「其在XSL中」之外如何實際執行此操作。作爲一個不熟悉docbook的人,我不知道從哪裏開始。

asciidoctor-pdf有一個標籤,用於包含圖像,但它在我們的文檔上生成條形圖並生成垃圾(ToC被繪製在所有內容上)。

回答

1

這可以用在構建/ fopub/docbook的division.xsl文件來完成/ FO/

搜索「佔位符模板」

並粘貼下面的代碼在那裏,你將能夠看到的封面圖片在您生成的fopub中

<!-- Placeholder templates --> 
<xsl:template name="front.cover"> 
    <xsl:call-template name="page.sequence"> 
    <xsl:with-param name="master-reference">titlepage-cover-image</xsl:with-param> 
    <xsl:with-param name="content"> 
     <fo:block text-align="center"> 
    <fo:external-graphic src="url(path/to/cover.png)" content-height="250mm" content-width="176mm"/> 
     </fo:block> 
    </xsl:with-param> 
    </xsl:call-template> 
</xsl:template> 

根據您的書籍要求更改高度和寬度。

一旦完成,您需要爲封面上的圖像提供保證金以清除。在pagesetup.xsl中添加以下內容

<fo:simple-page-master master-name="titlepage-cover-image" 
          page-width="{$page.width}" 
          page-height="{$page.height}" 
          margin-top="{$title.page.margin.top}" 
          margin-bottom="{$page.margin.bottom}"> 
     <xsl:attribute name="margin-{$direction.align.start}"> 
     <xsl:value-of select="$page.margin.inner"/> 
    <xsl:if test="$fop.extensions != 0"> 
    <xsl:value-of select="concat(' - (',$title.margin.left,')')"/> 
     </xsl:if> 
     </xsl:attribute> 
     <xsl:attribute name="margin-{$direction.align.end}"> 
     <xsl:value-of select="$page.margin.outer"/> 
     </xsl:attribute> 
     <xsl:if test="$axf.extensions != 0"> 
     <xsl:call-template name="axf-page-master-properties"> 
      <xsl:with-param name="page.master">titlepage-cover-image</xsl:with-param> 
     </xsl:call-template> 
     </xsl:if> 
     <fo:region-body margin-bottom="{$body.margin.bottom}" 
         margin-top="{$title.body.margin.top}" 
         column-gap="{$column.gap.titlepage}" 
         column-count="{$column.count.titlepage}"> 
     <xsl:attribute name="margin-{$direction.align.start}"> 
      <xsl:value-of select="$body.margin.inner"/> 
     </xsl:attribute> 
     <xsl:attribute name="margin-{$direction.align.end}"> 
      <xsl:value-of select="$body.margin.outer"/> 
     </xsl:attribute> 
     </fo:region-body> 
     <fo:region-before region-name="xsl-region-before-first" 
         extent="{$region.before.extent}" 
         precedence="{$region.before.precedence}" 
         display-align="before"/> 
     <fo:region-after region-name="xsl-region-after-first" 
         extent="{$region.after.extent}" 
         precedence="{$region.after.precedence}" 
         display-align="after"/> 
     <xsl:call-template name="region.inner"> 
     <xsl:with-param name="sequence">first</xsl:with-param> 
     <xsl:with-param name="pageclass">titlepage</xsl:with-param> 
     </xsl:call-template> 
     <xsl:call-template name="region.outer"> 
     <xsl:with-param name="sequence">first</xsl:with-param> 
     <xsl:with-param name="pageclass">titlepage</xsl:with-param> 
     </xsl:call-template> 
    </fo:simple-page-master> 

然後在fo-pdf.xsl中添加變量以清零您的身體頂部邊距。

HTH。

+0

非常感謝!我剛剛放棄! –

+1

:)你的歡迎。 – Jagdeep