Open afzalIbnSH opened 3 years ago
I'm having a similar issue with flexbox. All that is required is two columns that flow side by side down the document (they do not flow into each other) and across page breaks.
Instead, the second column doesn't start until after the first page.
This is such a basic layout I'm very surprised it does not work at all.
This is the code I'm using to debug in the weasyprint renderer.
<style>
@page {
size: a4;
margin:19mm 12.8mm 15mm 12.8mm;
background-color: white;
}
body { margin: 12mm; border: 1px solid black; background-color: white;}
h1 { text-decoration : underline; position: absolute; color:blue;}
div { border: 1px solid; background: #black }
img{ width: 70mm; }
figure{ margin:0; }
.container {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
}
.block{ display: block; width:70mm; max-width:70mm;}
.block:nth-of-type(1){color:red}
.block:nth-of-type(2){color: blue}
.block:nth-of-type(3){color: green}
.block:nth-of-type(4){color: grey}
.block:nth-of-type(5){color: orange}
</style>
<h1>Weasyprint testing</h1>
<div class='container'>
<div class='column-wrap l'>
<figure><img src="http://placekitten.com/g/200/380"></figure>
<figure><img src="http://placekitten.com/g/500/300"></figure>
<figure><img src="http://placekitten.com/g/200/300"></figure>
</div>
<div class='column-wrap r'>
<div class='block'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam consequat laoreet lectus, vel viverra nibh volutpat quis. Donec volutpat mi vitae sapien posuere, quis tincidunt enim volutpat. Cras facilisis at velit in hendrerit. Pellentesque elementum fermentum metus, ac tristique ipsum pharetra eu. Curabitur rhoncus augue et vehicula accumsan. In sed mauris et ex aliquet consectetur. Quisque nec nunc dapibus, ornare purus eleifend, consequat quam. Nulla cursus ullamcorper tellus sed molestie. Etiam sit amet lobortis diam. Etiam aliquet pulvinar ante faucibus efficitur. Nullam sit amet nibh porttitor, vestibulum sapien eu, tristique sem. Nulla facilisi. Vestibulum sodales gravida justo ac euismod. Phasellus viverra varius sapien in feugiat. Duis augue dui, dapibus ut faucibus at, tristique vitae ante.</div>
<div class='block'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam consequat laoreet lectus, vel viverra nibh volutpat quis. Donec volutpat mi vitae sapien posuere, quis tincidunt enim volutpat. Cras facilisis at velit in hendrerit. Pellentesque elementum fermentum metus, ac tristique ipsum pharetra eu. Curabitur rhoncus augue et vehicula accumsan. In sed mauris et ex aliquet consectetur. Quisque nec nunc dapibus, ornare purus eleifend, consequat quam. Nulla cursus ullamcorper tellus sed molestie. Etiam sit amet lobortis diam. Etiam aliquet pulvinar ante faucibus efficitur. Nullam sit amet nibh porttitor, vestibulum sapien eu, tristique sem. Nulla facilisi. Vestibulum sodales gravida justo ac euismod. Phasellus viverra varius sapien in feugiat. Duis augue dui, dapibus ut faucibus at, tristique vitae ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam consequat laoreet lectus, vel viverra nibh volutpat quis. Donec volutpat mi vitae sapien posuere, quis tincidunt enim volutpat. Cras facilisis at velit in hendrerit. Pellentesque elementum fermentum metus, ac tristique ipsum pharetra eu. Curabitur rhoncus augue et vehicula accumsan. In sed mauris et ex aliquet consectetur. Quisque nec nunc dapibus, ornare purus eleifend, consequat quam. Nulla cursus ullamcorper tellus sed molestie. Etiam sit amet lobortis diam. Etiam aliquet pulvinar ante faucibus efficitur. Nullam sit amet nibh porttitor, vestibulum sapien eu, tristique sem. Nulla facilisi. Vestibulum sodales gravida justo ac euismod. Phasellus viverra varius sapien in feugiat. Duis augue dui, dapibus ut faucibus at, tristique vitae ante.</div>
<div class='block'>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam consequat laoreet lectus, vel viverra nibh volutpat quis. Donec volutpat mi vitae sapien posuere, quis tincidunt enim volutpat. Cras facilisis at velit in hendrerit. Pellentesque elementum fermentum metus, ac tristique ipsum pharetra eu. Curabitur rhoncus augue et vehicula accumsan. In sed mauris et ex aliquet consectetur. Quisque nec nunc dapibus, ornare purus eleifend, consequat quam. Nulla cursus ullamcorper tellus sed molestie. Etiam sit amet lobortis diam. Etiam aliquet pulvinar ante faucibus efficitur. Nullam sit amet nibh porttitor, vestibulum sapien eu, tristique sem. Nulla facilisi. Vestibulum sodales gravida justo ac euismod. Phasellus viverra varius sapien in feugiat. Duis augue dui, dapibus ut faucibus at, tristique vitae ante.</div>
</div>
</div>
Expected:
Result
I can't get weasyprint to correctly render my template.
Eg html:
This is what was rendered: weasyPrintGeneratedPDF.pdf
I then removed
%
forpx
to fit an A4 sheet assuming relative values could be the problem. The result is much better but still wrong.Rewritten html:
If you print this html directly from the browser as a PDF, this fits nicely on an A4 sheet. See here: whatIExpect.pdf.
Weasyprint's rendering on the other hand, puts the right section below the left section. See here: whatWeasyPrintGIves.pdf
Please fix.