2016-01-21 7 views
0

Я пытаюсь настроить наш developer guide pdf, чтобы иметь достойную перспективную первую страницу. Я полностью согласен с тем, что делаю все в Photoshop, как образ, так как asciidoc, кажется, довольно ограничен в возможностях здесь.Как сгенерировать изображение обложки с asciidoctor-fopub

К сожалению, несмотря на то, что я смотрю повсюду, я не могу найти ни одного способа настроить обложку или заменить ее изображением, которое работает для asciidoctor-fopub.

Досадно, что этот прецедент конкретно упоминается в readme проекта https://github.com/asciidoctor/asciidoctor-fopub (под пользовательскими шаблонами XSL), но нет упоминания о том, как на самом деле это делать, кроме «его в XSL». Как человек, который не знаком с docbook, я понятия не имею, с чего начать.

asciidoctor-pdf имеет тег для включения изображения, но он заносится на наш документ и генерирует мусор (ToC окрашен во все).

ответ

1

Это можно сделать с помощью файла division.xsl под сборки/fopub/DocBook/FO/

поиска для «шаблонов PlaceHolder»

и вставьте ниже код там, вы будете иметь возможность видеть изображение обложки в вашей сгенерированной 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> 

Затем добавить переменные в Фо-pdf.xsl, чтобы обнулить ваше тело верхнее поле.

HTH.

+0

Благодарим вас так много! Я просто сдался! –

+1

:) приветствую вас. – Jagdeep