Как поместить содержимое рядом с изображением с помощью XSL-FO в PDF? - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь создать образец PDF, я хочу добиться того, что показано ниже [Image1], т. Е. Моя страница разделена на 2 половины, одна половина содержит изображение (синего цвета) и имеет содержимое рядом с ним. , Но мой код генерирует то, что показано ниже Image2, то есть содержимое начинается снизу изображения, а не рядом.

Ниже приведен пример кода: -

<xsl:template match="SAMPLE">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
          <fo:layout-master-set>
                <fo:simple-page-master master-name="simpleA4" page-height="30cm" page-width="21cm" margin-top="0cm" margin-bottom="0.5cm" margin-left="0.2cm" margin-right="0.2cm">
                    <fo:region-body column-count="2" column-gap="5mm"/>
                </fo:simple-page-master>
          </fo:layout-master-set>
      <fo:page-sequence master-reference="simpleA4">
            <fo:flow flow-name="xsl-region-body">

                 <fo:block-container>
                            <fo:block margin-left="3.5%" margin-right="3.5%" margin-top="4%" margin-bottom="2%" >   
                                <fo:block margin-left="2cm">
                                    <fo:external-graphic src="D:\PDF\Image1.jpg" width="5cm" height="6cm" scaling="uniform" content-height="scale-to-fit" content-width="scale-to-fit"/>
                                </fo:block>

                                <fo:block top="2%" color="#154360" margin-top="4%">
                                    <xsl:value-of select="MyPage/ImageQuote/Quote"/>
                                </fo:block>
                            </fo:block>
                </fo:block-container>
            </fo:flow>
      </fo:page-sequence>

Любая помощь, как я могу этого достичь?

1 Ответ

0 голосов
/ 31 октября 2018

Как говорит Кевин, цель не ясна. Если вы хотите обтекать текст вокруг изображения, необходимо использовать fo: float / @ float = "start". Вот пример XSL-FO и отформатированное изображение:

<?xml version="1.0" encoding="UTF-8"?> 
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
        <fo:simple-page-master master-name="simpleA4" page-height="30cm" page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-left="0.2cm" margin-right="0.2cm">
            <fo:region-body column-count="2" column-gap="5mm" border="1pt solid black" />
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="simpleA4">
        <fo:flow flow-name="xsl-region-body">
            <fo:block-container margin-left="3.5%" margin-right="3.5%" margin-top="4%" margin-bottom="2%" >
                <fo:block color="#154360" start-indent="0mm" end-indent="0mm">
                    <fo:float float="start">
                        <fo:block>
                            <fo:external-graphic src="Image1.jpg" width="3cm" content-width="scale-to-fit"/>&#xA0;&#xA0;
                        </fo:block>
                    </fo:float>
                    <fo:block>
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                        Aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
                    </fo:block>
                </fo:block>
            </fo:block-container>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

Formatted result

...