Home > Blockchain >  How can I create a PDF page with two columns with xsl-fo
How can I create a PDF page with two columns with xsl-fo

Time:02-04

I want to create a pdf file from two blocks. The first block should always be oriented to the left side of the page and the second block should always be to the right side. It is very important that the second block is always oriented to the right side. Even if a text in the block will be several pages, it should be only on the right side.

To get a look. I made an example with microsoft Word. Please open it to know exactly, what i mean:

Example made with ms-word

Note: Its not important, what should be used (Table, blocks, container..etc). As long as I am able to have columns, which flow across pages, that is what is important.

CodePudding user response:

What happens when an fo:block-container overflows is a bit murky. There is an overflow="repeat" option but I don't know how widely that is implemented, used, or understood. (See https://www.w3.org/TR/xsl11/#overflow)

My previous answer did qualify the fo:block-container option with "chunks don't break across pages." You can handle the content taking more than a page by putting each side in a separate table cell:

<fo:table>
  <fo:table-column column-width="50%" />
  <fo:table-column column-width="50%" />
  <fo:table-body>
    <fo:table-row>
      <fo:table-cell padding-right="6pt">
    <fo:block>:::::: Frist Block :::::::</fo:block>
      </fo:table-cell>
      <fo:table-cell padding-left="6pt">
    <fo:block>Lots of text</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>

Instead of putting padding on the table cells, another way to get a gutter between the two columns would be to put a narrow column between the two columns of text.

CodePudding user response:

 <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <fo:layout-master-set>
       <fo:simple-page-master master-name="DIN-A4" page-height="297mm" page-width="210mm">
          <fo:region-body region-name="inhalt" margin="2cm" />
        </fo:simple-page-master>
      </fo:layout-master-set>
    
      <fo:page-sequence master-reference="DIN-A4">
        <fo:flow flow-name="inhalt">
         <fo:table>
      <fo:table-column column-width="50%" />
      <fo:table-column column-width="50%" />
      <fo:table-body>
        <fo:table-row>
          <fo:table-cell padding-right="6pt">
        <fo:block>:::::: Frist Block :::::::</fo:block>
          </fo:table-cell>
          <fo:table-cell padding-right="6pt">
        <fo:block> Test Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Yous Younus Sed viverra metus quis nibh pulvinar, at
              dignissim nibh adipiscing. Duis sit amet ipsum non elit tincidunt
              sagittis ac non tortor. Mauris commodo, elit a imperdiet interdum,
              nulla velit viverra elit, at scelerisque urna est eget lacus. Integer
              eu lobortis neque. Donec malesuada sed arcu vitae fringilla. Sed
              viverra metus quis nibh pulvinar, at dignissim nibh adipiscing. Duis
              sit amet ipsum non elit tincidunt sagittis ac non tortor. Mauris
              commodo, elit a imperdiet interdum, nulla velit viverra elit, at
              scelerisque urna est eget lacus. Integer eu lobortis neque. Donec
              malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Yous Younus Sed viverra
              metus quis nibh pulvinar, at dignissim nibh adipiscing. Duis sit amet
              ipsum non elit tincidunt sagittis ac non tortor. Mauris commodo, elit
              a imperdiet interdum, nulla velit viverra elit, at scelerisque urna
              est eget lacus. Integer eu lobortis neque. Donec malesuada sed arcu
              vitae fringilla. Sed viverra metus quis nibh pulvinar, at dignissim
              nibh adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac
              non tortor. Mauris commodo, elit a imperdiet interdum, nulla velit
              viverra elit, at scelerisque urna est eget lacus. Integer eu lobortis
              neque. Donec malesuada sed arcu vitae fringilla. Sed viverra metus
              quis nibh pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum
              non elit tincidunt sagittis ac non tortor. Mauris commodo, elit a
              imperdiet interdum, nulla velit viverra elit, at scelerisque urna est
              eget lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Yous Younus Sed viverra
              metus quis nibh pulvinar, at dignissim nibh adipiscing. Duis sit amet
              ipsum non elit tincidunt sagittis ac non tortor. Mauris commodo, elit
              a imperdiet interdum, nulla velit viverra elit, at scelerisque urna
              est eget lacus. Integer eu lobortis neque. Donec malesuada sed arcu
              vitae fringilla. Sed viverra metus quis nibh pulvinar, at dignissim
              nibh adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac
              non tortor. Mauris commodo, elit a imperdiet interdum, nulla velit
              viverra elit, at scelerisque urna est eget lacus. Integer eu lobortis
              neque. Donec malesuada sed arcu vitae fringilla. Sed viverra metus
              quis nibh pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum
              non elit tincidunt sagittis ac non tortor. Mauris commodo, elit a
              imperdiet interdum, nulla velit viverra elit, at scelerisque urna est
              eget lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Yous Younus Sed viverra
              metus quis nibh pulvinar, at dignissim nibh adipiscing. Duis sit amet
              ipsum non elit tincidunt sagittis ac non tortor. Mauris commodo, elit
              a imperdiet interdum, nulla velit viverra elit, at scelerisque urna
              est eget lacus. Integer eu lobortis neque. Donec malesuada sed arcu
              vitae fringilla. Sed viverra metus quis nibh pulvinar, at dignissim
              nibh adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac
              non tortor. Mauris commodo, elit a imperdiet interdum, nulla velit
              viverra elit, at scelerisque urna est eget lacus. Integer eu lobortis
              neque. Donec malesuada sed arcu vitae fringilla. Sed viverra metus
              quis nibh pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum
              non elit tincidunt sagittis ac non tortor. Mauris commodo, elit a
              imperdiet interdum, nulla velit viverra elit, at scelerisque urna est
              eget lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Sed viverra metus quis nibh
              pulvinar, at dignissim nibh adipiscing. Duis sit amet ipsum non elit
              tincidunt sagittis ac non tortor. Mauris commodo, elit a imperdiet
              interdum, nulla velit viverra elit, at scelerisque urna est eget
              lacus. Integer eu lobortis neque. Donec malesuada sed arcu vitae
              fringilla. Sed viverra metus quis nibh pulvinar, at dignissim nibh
              adipiscing. Duis sit amet ipsum non elit tincidunt sagittis ac non
              tortor. Mauris commodo, elit a imperdiet interdum, nulla velit viverra
              elit, at scelerisque urna est eget lacus. Integer eu lobortis neque.
              Donec malesuada sed arcu vitae fringilla. Yous</fo:block>
          </fo:table-cell>
        </fo:table-row>
      </fo:table-body>
    </fo:table>
    
        </fo:flow>
      </fo:page-sequence>
    </fo:root>

The PDF showed like this:

PDF

And it is not all of the text.

  •  Tags:  
  • Related