pdfmake icon indicating copy to clipboard operation
pdfmake copied to clipboard

There should be an option to avoid page breaking table rows *unless necessary*

Open BobVul opened this issue 6 years ago • 16 comments

This is similar to #961.

We don't want rows in tables to be broken across pages. Where possible, we would prefer the entire row is shifted to a new page. This can be accomplished by setting dontBreakRows: true, and that's fine.

However, if a single row is too long to fit on a single page, and dontBreakRows is enabled, this row disappears entirely. This seems to be a bug.

The row needs to be broken to fit. But row breaking is disabled by that option.

Currently, the only way I can find around that is to turn row breaking back on, but that means even rows that can be safely pushed to the next page are broken.


Ideally, either a single row that overflows a page ignores the dontBreakRows option, or a new option is added to enable this scenario: avoid breaking rows unless there is no other option.


Playground examples (click to show code):

dontBreakRows true (buggy)

This works correctly with text that fits within one page. New rows are pushed onto the next page if they can't fit without breaking.

But Row3 does not fit within one page, and disappears...

var dd = {
    "content": [
        {
            "table": {
                "dontBreakRows": true,
                "widths": [
                    140,
                    "*"
                ],
                "body": [
                    [
                        "Row1",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen."
                    ],
                    [
                        "Row2",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen."
                    ],
                    [
                        "Row3",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way."
                    ]
                ]
            }
        }
    ]
}
dontBreakRows false

This works, but we don't get the desired behaviour anymore. Even rows that can be pushed onto the next page to fit are now row-broken.

var dd = {
    "content": [
        {
            "table": {
                "dontBreakRows": false,
                "widths": [
                    140,
                    "*"
                ],
                "body": [
                    [
                        "Row1",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen."
                    ],
                    [
                        "Row2",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen."
                    ],
                    [
                        "Row3",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way."
                    ]
                ]
            }
        }
    ]
}
Partial workaround

Using manual breaks with dontBreakRows: false to try to simulate what I expect to happen. Rows that can be preserved unbroken are pushed in their entirety to the next page while rows that can't fit on one page are broken.

var dd = {
    "content": [
        {
            "table": {
                "dontBreakRows": false,
                "widths": [
                    140,
                    "*"
                ],
                "body": [
                    [
                        "Row1",
                        {"pageBreak": "after", "text": "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen."}
                    ],
                    [
                        "Row2",
                        {"pageBreak": "after", "text": "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen."}
                    ],
                    [
                        "Row3",
                        "Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy. The copy warned the Little Blind Text, that where it came from it would have been rewritten a thousand times and everything that was left from its origin would be the word \"and\" and the Little Blind Text should turn around and return to its own, safe country. But nothing the copy said could convince her and so it didn?t take long until a few insidious Copy Writers ambushed her, made her drunk with Longe and Parole and dragged her into their agency, where they abused her for their projects again and again. And if she hasn?t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country, in which roasted parts of sentences fly into your mouth. Even the all-powerful Pointing has no control about the blind texts it is an almost unorthographic life One day however a small line of blind text by the name of Lorem Ipsum decided to leave for the far World of Grammar. The Big Oxmox advised her not to do so, because there were thousands of bad Commas, wild Question Marks and devious Semikoli, but the Little Blind Text didn?t listen. She packed her seven versalia, put her initial into the belt and made herself on the way. When she reached the first hills of the Italic Mountains, she had a last view back on the skyline of her hometown Bookmarksgrove, the headline of Alphabet Village and the subline of her own road, the Line Lane. Pityful a rethoric question ran over her cheek, then she continued her way."
                    ]
                ]
            }
        }
    ]
}

BobVul avatar Oct 24 '17 06:10 BobVul

I am facing this issue that the rows gets missing when dontBreakRows set to true and the row contents more than a page, is there any workaround for this?

shankarbindya avatar Feb 12 '18 08:02 shankarbindya

@shankarbindya Did you find a solution? I am currently facing this issue and I can't think of any workaround 😢

jakubito avatar Apr 19 '18 20:04 jakubito

I got the same issue.

The #961 is closed, but @liborm85 asked for a playground runnable sample there; for: http://pdfmake.org/playground.html

Here you are:

// playground requires you to assign document definition to a variable called dd
var dd = {
	content: [
		'First paragraph',
		'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines',
		{
			style: 'tableExample',
			table: {
				widths: [100, '*', 200, '*'],
				body: [
					['width=100', 'star-sized', 'width=200', 'star-sized'],
					[`fixed-width
					
					
					little bit longer to make sure, this line will 
					
					little bit longer to make sure, this line will 
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					little bit longer to make sure, this line will 
					
					
					
					`, 
					{text: 'nothing interesting here', italics: true, color: 'gray'}, 
					{text: 'nothing interesting here', italics: true, color: 'gray'}, 
					{text: 'nothing interesting here', italics: true, color: 'gray'}
					]
				],
			 dontBreakRows: true
			}
		}
	]
}

Try to manipulate dontBreakRows.

when it is false all is ok, but when you set true. Content disappears.

Problem

Problem is that I have to set dontBreakRows to true. Because when a table content is between 2 pages, and I use multiple tables on one page. PdfMake with dontBreakRows: false will add an extra little row (visible on pdf with a 5-6px height) on the bottom of the page with break and that is not what I want on my document.

image

Event if that wont happen - cells on my "production tables" have a title at the top of the cell, then a content is below, so I do not want to break those apart.

Expected behavior

Well, just as the title of this issue. This option set to true should do not break rows unless row height exceeds page height, then row should be break. At least - the content should not disappear.

michaljabi avatar Nov 05 '18 06:11 michaljabi

Can we expect any fixes / enhancements in this behavior ?

michaljabi avatar Dec 27 '18 13:12 michaljabi

Same problems here.

afbruno avatar Jul 05 '19 17:07 afbruno

In case this helps anyone here, I have a fix for v0.1.54: https://github.com/chris-steele/pdfmake/blob/master/pdfmake-v0.1.54-issue-1159-fix.patch (remember to apply this patch to an unminified build, i.e. https://github.com/bpampuch/pdfmake/blob/0.1.54/build/pdfmake.js).

Please be aware that I needed a fix for this issue with a very limited amount of time and working through 60k lines of unfamiliar code - this is inevitably a hack. If someone finds it useful then great.

N.B. I've only tested this using a standard A4 portrait layout.

chris-steele avatar Aug 15 '19 12:08 chris-steele

Same issue, any workarounds until now?

linhcub avatar Mar 12 '20 08:03 linhcub

any update on this issue?

capc0 avatar Nov 03 '21 16:11 capc0

I am facing this issue that the rows gets missing when dontBreakRows set to true and the row contents more than a page

I have the same problem.

I really like pdfmake, but this problem makes the usage of dontBreakRows really risky. Would love to see a fix

edit: is it possible to fire any kind of event or exception in case of rows being skipped?

cyril23 avatar Apr 27 '22 16:04 cyril23

edit: is it possible to fire any kind of event or exception in case of rows being skipped?

Yes so we could create the pdf again automatically with don´t break rows "false"

TomKJ avatar May 06 '22 16:05 TomKJ

Same issue. Following!

Sliffcak avatar Jan 05 '23 18:01 Sliffcak

Same issue as well. The ideal solution for me would be to either: default to page break before the breaking row (if dontBreakRows: true) or give the row a pageNumbers property like in pageBreakBefore. e.g. dontBreakRows: (row) => row.pageNumbers.length > 1

jo-rooke avatar Jan 16 '23 11:01 jo-rooke

Here's an even simpler playground repro:

Details

// playground requires you to assign document definition to a variable called dd

var dd = {
	content: [
        {table: {
			dontBreakRows: true,
			body: [
				[{text: 'Header 1', style: 'tableHeader'}, {text: 'Header 2', style: 'tableHeader'}, {text: 'Header 3', style: 'tableHeader'}],
				['foo','bar','baz'],
		        [
					'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nec feugiat in fermentum posuere urna nec. Mattis pellentesque id nibh tortor id aliquet lectus proin nibh. Risus sed vulputate odio ut enim. Integer vitae justo eget magna. Quis eleifend quam adipiscing vitae proin sagittis nisl rhoncus mattis. Eget mauris pharetra et ultrices neque ornare. Dolor morbi non arcu risus. At varius vel pharetra vel turpis nunc eget lorem dolor. Sed libero enim sed faucibus turpis in eu. Ornare suspendisse sed nisi lacus sed viverra tellus in. Nunc aliquet bibendum enim facilisis gravida neque convallis a. Et ultrices neque ornare aenean. Nisl tincidunt eget nullam non nisi.Ut porttitor leo a diam sollicitudin tempor id. Sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula ipsum. Semper auctor neque vitae tempus quam. Gravida arcu ac tortor dignissim convallis aenean et tortor at. Id aliquet risus feugiat in ante. Pretium nibh ipsum consequat nisl vel. Tortor id aliquet lectus proin nibh. Congue quisque egestas diam in arcu cursus euismod. Nunc consequat interdum varius sit amet. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla. Tortor at auctor urna nunc id cursus metus aliquam eleifend. Elit ut aliquam purus sit amet luctus venenatis lectus magna.Aliquet risus feugiat in ante metus dictum. Nam aliquam sem et tortor consequat id. Enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. Tempus urna et pharetra pharetra massa massa ultricies mi. Tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius. Potenti nullam ac tortor vitae purus. Pharetra massa massa ultricies mi quis. At elementum eu facilisis sed. Odio ut sem nulla pharetra diam sit amet nisl suscipit. Eu lobortis elementum nibh tellus molestie nunc non blandit. Amet luctus venenatis lectus magna. Vitae nunc sed velit dignissim sodales ut eu sem integer. Curabitur vitae nunc sed velit. Dui sapien eget mi proin sed libero enim sed faucibus. Pellentesque habitant morbi tristique senectus et. Vel pharetra vel turpis nunc eget lorem. Suscipit tellus mauris a diam maecenas sed. Nunc consequat interdum varius sit. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a.Ipsum dolor sit amet consectetur adipiscing. Tortor posuere ac ut consequat semper viverra. Sagittis vitae et leo duis. Fermentum et sollicitudin ac orci phasellus. Arcu cursus euismod quis viverra nibh cras pulvinar. Urna et pharetra pharetra massa. Donec massa sapien faucibus et molestie ac feugiat. Diam maecenas sed enim ut. Curabitur vitae nunc sed velit dignissim sodales. Congue nisi vitae suscipit tellus mauris.Id diam maecenas ultricies mi eget. Ut tristique et egestas quis ipsum suspendisse. Donec ultrices tincidunt arcu non sodales neque sodales ut etiam. Vel eros donec ac odio. Nunc sed blandit libero volutpat sed. Elementum curabitur vitae nunc sed velit dignissim sodales. Nam at lectus urna duis convallis convallis tellus id. Est ante in nibh mauris cursus mattis. Pharetra pharetra massa massa ultricies mi. Id eu nisl nunc mi ipsum faucibus vitae aliquet nec.Egestas pretium aenean pharetra magna. Iaculis at erat pellentesque adipiscing commodo elit. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla facilisi cras. Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Amet facilisis magna etiam tempor. Risus viverra adipiscing at in tellus integer. Malesuada pellentesque elit eget gravida cum sociis natoque. Tincidunt id aliquet risus feugiat in ante metus dictum. Ut lectus arcu bibendum at varius vel pharetra vel. Mollis aliquam ut porttitor leo a diam sollicitudin.Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquam ut porttitor leo a. Consectetur libero id faucibus nisl tincidunt eget. Massa sapien faucibus et molestie ac feugiat sed lectus vestibulum. Sem et tortor consequat id porta nibh venenatis cras. Ac tortor vitae purus faucibus ornare. Sed viverra tellus in hac habitasse platea dictumst vestibulum. Habitant morbi tristique senectus et netus. Odio morbi quis commodo odio aenean sed. In eu mi bibendum neque egestas congue quisque. Vitae tortor condimentum lacinia quis. Arcu risus quis varius quam quisque id diam. Arcu cursus euismod quis viverra nibh cras pulvinar. Vel orci porta non pulvinar neque. Eu nisl nunc mi ipsum faucibus vitae aliquet. Leo in vitae turpis massa sed elementum. Sed risus ultricies tristique nulla aliquet enim. Convallis tellus id interdum velit. Feugiat sed lectus vestibulum mattis ullamcorper. Ut tellus elementum sagittis vitae.Neque vitae tempus quam pellentesque. Vivamus arcu felis bibendum ut tristique et egestas quis. Risus at ultrices mi tempus imperdiet. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper. Arcu non odio euismod lacinia at quis risus sed. Vulputate eu scelerisque felis imperdiet proin fermentum. Venenatis a condimentum vitae sapien pellentesque habitant morbi tristique. Quisque egestas diam in arcu cursus euismod quis viverra nibh. Sagittis aliquam malesuada bibendum arcu. Adipiscing bibendum est ultricies integer quis auctor. Nibh praesent tristique magna sit amet purus gravida quis blandit. Sit amet luctus venenatis lectus magna. Integer malesuada nunc vel risus commodo. Sed odio morbi quis commodo odio aenean sed adipiscing diam. Donec enim diam vulputate ut pharetra sit amet aliquam. Lorem dolor sed viverra ipsum nunc aliquet bibendum. Est ullamcorper eget nulla facilisi etiam dignissim.Morbi tristique senectus et netus. In eu mi bibendum neque egestas. Eu feugiat pretium nibh ipsum consequat nisl vel. Interdum velit euismod in pellentesque massa placerat duis ultricies. Commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Dolor sit amet consectetur adipiscing elit. Tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed. Ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget. Dignissim diam quis enim lobortis scelerisque fermentum dui faucibus. Diam maecenas sed enim ut sem. Diam quam nulla porttitor massa id neque aliquam vestibulum morbi. Vitae justo eget magna fermentum iaculis eu non diam. Feugiat scelerisque varius morbi enim nunc faucibus. Elementum nibh tellus molestie nunc non. Arcu bibendum at varius vel pharetra vel turpis. Vitae suscipit tellus mauris a diam maecenas sed. Eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. At augue eget arcu dictum.At lectus urna duis convallis convallis tellus id. Ultrices in iaculis nunc sed augue lacus viverra vitae congue. Ultricies mi quis hendrerit dolor magna. Ornare massa eget egestas purus viverra accumsan in nisl. Arcu risus quis varius quam quisque id. Mi proin sed libero enim sed faucibus turpis in. Enim sed faucibus turpis in eu. Ultrices eros in cursus turpis massa tincidunt dui ut ornare. Venenatis lectus magna fringilla urna porttitor rhoncus dolor. Donec massa sapien faucibus et molestie ac feugiat sed lectus. Id aliquet lectus proin nibh nisl. Ut tristique et egestas quis. Viverra accumsan in nisl nisi.Gravida rutrum quisque non tellus orci. Justo eget magna fermentum iaculis. Vitae congue mauris rhoncus aenean vel. Vitae proin sagittis nisl rhoncus. Fermentum odio eu feugiat pretium nibh ipsum consequat. Mi sit amet mauris commodo. Nunc faucibus a pellentesque sit amet porttitor. Commodo sed egestas egestas fringilla phasellus faucibus. Integer eget aliquet nibh praesent tristique magna. Mauris augue neque gravida in. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Eget est lorem ipsum dolor sit amet consectetur adipiscing elit. Neque convallis a cras semper auctor neque vitae tempus. Eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar. Vel quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Facilisis gravida neque convallis a cras semper. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Elit eget gravida cum sociis natoque penatibus et magnis. Venenatis a condimentum vitae sapien pellentesque habitant.Eros in cursus turpis massa. Eget gravida cum sociis natoque penatibus et magnis. At quis risus sed vulputate odio ut. Sed risus ultricies tristique nulla aliquet enim tortor at auctor. In pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. At imperdiet dui accumsan sit amet nulla facilisi morbi. Diam vel quam elementum pulvinar etiam non quam lacus. Lacus viverra vitae congue eu. Nulla malesuada pellentesque elit eget gravida cum sociis. Laoreet sit amet cursus sit amet dictum sit amet.Cursus euismod quis viverra nibh cras pulvinar mattis. Id venenatis a condimentum vitae sapien pellentesque habitant. Ac ut consequat semper viverra nam. Vulputate ut pharetra sit amet aliquam id diam maecenas. Urna porttitor rhoncus dolor purus non enim praesent elementum. Faucibus vitae aliquet nec ullamcorper sit. Nulla facilisi cras fermentum odio eu feugiat pretium nibh ipsum. A pellentesque sit amet porttitor eget dolor morbi non. Magna eget est lorem ipsum dolor sit amet consectetur adipiscing. Eget arcu dictum varius duis at. Facilisi nullam vehicula ipsum a arcu cursus vitae congue mauris. Ut diam quam nulla porttitor massa id neque. Id consectetur purus ut faucibus pulvinar. Vulputate mi sit amet mauris. Habitant morbi tristique senectus et netus et. Nisl nisi scelerisque eu ultrices. Justo laoreet sit amet cursus sit amet dictum sit. Orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt. At risus viverra adipiscing at in tellus. Nisi est sit amet facilisis magna etiam tempor orci.Etiam sit amet nisl purus. Varius sit amet mattis vulputate enim nulla. Sit amet mauris commodo quis imperdiet. Semper auctor neque vitae tempus quam pellentesque nec nam. Sagittis eu volutpat odio facilisis mauris. Hendrerit dolor magna eget est lorem ipsum dolor. Duis at consectetur lorem donec massa sapien faucibus et. Vel elit scelerisque mauris pellentesque pulvinar pellentesque. Duis at consectetur lorem donec massa sapien faucibus. Diam sit amet nisl suscipit adipiscing bibendum est ultricies. Proin nibh nisl condimentum id venenatis a condimentum vitae. Amet massa vitae tortor condimentum. Arcu felis bibendum ut tristique et egestas. Porttitor leo a diam sollicitudin tempor. Quam quisque id diam vel quam elementum. Sed nisi lacus sed viverra tellus in hac habitasse. Nibh ipsum consequat nisl vel pretium lectus quam id.Parturient montes nascetur ridiculus mus mauris vitae ultricies leo integer. Vestibulum sed arcu non odio euismod. Eu feugiat pretium nibh ipsum consequat nisl vel. Mauris augue neque gravida in fermentum et. Vitae elementum curabitur vitae nunc sed velit dignissim sodales ut. Etiam tempor orci eu lobortis elementum nibh. Condimentum lacinia quis vel eros. Donec et odio pellentesque diam volutpat commodo sed egestas. Lobortis mattis aliquam faucibus purus in massa tempor nec feugiat. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit. Morbi quis commodo odio aenean sed adipiscing diam. Nibh nisl condimentum id venenatis a condimentum vitae. Nisl tincidunt eget nullam non. Pulvinar sapien et ligula ullamcorper malesuada proin. Nam at lectus urna duis. Senectus et netus et malesuada fames ac turpis. Elit ullamcorper dignissim cras tincidunt lobortis.Duis at consectetur lorem donec massa sapien faucibus et. Et ligula ullamcorper malesuada proin libero. Morbi tincidunt augue interdum velit euismod in pellentesque. Blandit aliquam etiam erat velit scelerisque in dictum. Consequat ac felis donec et odio. Risus commodo viverra maecenas accumsan lacus vel facilisis volutpat. Imperdiet nulla malesuada pellentesque elit. Aliquet enim tortor at auctor urna nunc id cursus. Ridiculus mus mauris vitae ultricies leo. Ultricies mi eget mauris pharetra et ultrices neque ornare aenean. Ac ut consequat semper viverra nam libero. Pellentesque habitant morbi tristique senectus. Nibh ipsum consequat nisl vel pretium lectus quam id leo. Proin libero nunc consequat interdum varius sit amet mattis. Orci eu lobortis elementum nibh tellus.',
					'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nec feugiat in fermentum posuere urna nec. Mattis pellentesque id nibh tortor id aliquet lectus proin nibh. Risus sed vulputate odio ut enim. Integer vitae justo eget magna. Quis eleifend quam adipiscing vitae proin sagittis nisl rhoncus mattis. Eget mauris pharetra et ultrices neque ornare. Dolor morbi non arcu risus. At varius vel pharetra vel turpis nunc eget lorem dolor. Sed libero enim sed faucibus turpis in eu. Ornare suspendisse sed nisi lacus sed viverra tellus in. Nunc aliquet bibendum enim facilisis gravida neque convallis a. Et ultrices neque ornare aenean. Nisl tincidunt eget nullam non nisi.Ut porttitor leo a diam sollicitudin tempor id. Sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula ipsum. Semper auctor neque vitae tempus quam. Gravida arcu ac tortor dignissim convallis aenean et tortor at. Id aliquet risus feugiat in ante. Pretium nibh ipsum consequat nisl vel. Tortor id aliquet lectus proin nibh. Congue quisque egestas diam in arcu cursus euismod. Nunc consequat interdum varius sit amet. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla. Tortor at auctor urna nunc id cursus metus aliquam eleifend. Elit ut aliquam purus sit amet luctus venenatis lectus magna.Aliquet risus feugiat in ante metus dictum. Nam aliquam sem et tortor consequat id. Enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. Tempus urna et pharetra pharetra massa massa ultricies mi. Tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius. Potenti nullam ac tortor vitae purus. Pharetra massa massa ultricies mi quis. At elementum eu facilisis sed. Odio ut sem nulla pharetra diam sit amet nisl suscipit. Eu lobortis elementum nibh tellus molestie nunc non blandit. Amet luctus venenatis lectus magna. Vitae nunc sed velit dignissim sodales ut eu sem integer. Curabitur vitae nunc sed velit. Dui sapien eget mi proin sed libero enim sed faucibus. Pellentesque habitant morbi tristique senectus et. Vel pharetra vel turpis nunc eget lorem. Suscipit tellus mauris a diam maecenas sed. Nunc consequat interdum varius sit. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a.Ipsum dolor sit amet consectetur adipiscing. Tortor posuere ac ut consequat semper viverra. Sagittis vitae et leo duis. Fermentum et sollicitudin ac orci phasellus. Arcu cursus euismod quis viverra nibh cras pulvinar. Urna et pharetra pharetra massa. Donec massa sapien faucibus et molestie ac feugiat. Diam maecenas sed enim ut. Curabitur vitae nunc sed velit dignissim sodales. Congue nisi vitae suscipit tellus mauris.Id diam maecenas ultricies mi eget. Ut tristique et egestas quis ipsum suspendisse. Donec ultrices tincidunt arcu non sodales neque sodales ut etiam. Vel eros donec ac odio. Nunc sed blandit libero volutpat sed. Elementum curabitur vitae nunc sed velit dignissim sodales. Nam at lectus urna duis convallis convallis tellus id. Est ante in nibh mauris cursus mattis. Pharetra pharetra massa massa ultricies mi. Id eu nisl nunc mi ipsum faucibus vitae aliquet nec.Egestas pretium aenean pharetra magna. Iaculis at erat pellentesque adipiscing commodo elit. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla facilisi cras. Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Amet facilisis magna etiam tempor. Risus viverra adipiscing at in tellus integer. Malesuada pellentesque elit eget gravida cum sociis natoque. Tincidunt id aliquet risus feugiat in ante metus dictum. Ut lectus arcu bibendum at varius vel pharetra vel. Mollis aliquam ut porttitor leo a diam sollicitudin.Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquam ut porttitor leo a. Consectetur libero id faucibus nisl tincidunt eget. Massa sapien faucibus et molestie ac feugiat sed lectus vestibulum. Sem et tortor consequat id porta nibh venenatis cras. Ac tortor vitae purus faucibus ornare. Sed viverra tellus in hac habitasse platea dictumst vestibulum. Habitant morbi tristique senectus et netus. Odio morbi quis commodo odio aenean sed. In eu mi bibendum neque egestas congue quisque. Vitae tortor condimentum lacinia quis. Arcu risus quis varius quam quisque id diam. Arcu cursus euismod quis viverra nibh cras pulvinar. Vel orci porta non pulvinar neque. Eu nisl nunc mi ipsum faucibus vitae aliquet. Leo in vitae turpis massa sed elementum. Sed risus ultricies tristique nulla aliquet enim. Convallis tellus id interdum velit. Feugiat sed lectus vestibulum mattis ullamcorper. Ut tellus elementum sagittis vitae.Neque vitae tempus quam pellentesque. Vivamus arcu felis bibendum ut tristique et egestas quis. Risus at ultrices mi tempus imperdiet. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper. Arcu non odio euismod lacinia at quis risus sed. Vulputate eu scelerisque felis imperdiet proin fermentum. Venenatis a condimentum vitae sapien pellentesque habitant morbi tristique. Quisque egestas diam in arcu cursus euismod quis viverra nibh. Sagittis aliquam malesuada bibendum arcu. Adipiscing bibendum est ultricies integer quis auctor. Nibh praesent tristique magna sit amet purus gravida quis blandit. Sit amet luctus venenatis lectus magna. Integer malesuada nunc vel risus commodo. Sed odio morbi quis commodo odio aenean sed adipiscing diam. Donec enim diam vulputate ut pharetra sit amet aliquam. Lorem dolor sed viverra ipsum nunc aliquet bibendum. Est ullamcorper eget nulla facilisi etiam dignissim.Morbi tristique senectus et netus. In eu mi bibendum neque egestas. Eu feugiat pretium nibh ipsum consequat nisl vel. Interdum velit euismod in pellentesque massa placerat duis ultricies. Commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Dolor sit amet consectetur adipiscing elit. Tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed. Ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget. Dignissim diam quis enim lobortis scelerisque fermentum dui faucibus. Diam maecenas sed enim ut sem. Diam quam nulla porttitor massa id neque aliquam vestibulum morbi. Vitae justo eget magna fermentum iaculis eu non diam. Feugiat scelerisque varius morbi enim nunc faucibus. Elementum nibh tellus molestie nunc non. Arcu bibendum at varius vel pharetra vel turpis. Vitae suscipit tellus mauris a diam maecenas sed. Eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. At augue eget arcu dictum.At lectus urna duis convallis convallis tellus id. Ultrices in iaculis nunc sed augue lacus viverra vitae congue. Ultricies mi quis hendrerit dolor magna. Ornare massa eget egestas purus viverra accumsan in nisl. Arcu risus quis varius quam quisque id. Mi proin sed libero enim sed faucibus turpis in. Enim sed faucibus turpis in eu. Ultrices eros in cursus turpis massa tincidunt dui ut ornare. Venenatis lectus magna fringilla urna porttitor rhoncus dolor. Donec massa sapien faucibus et molestie ac feugiat sed lectus. Id aliquet lectus proin nibh nisl. Ut tristique et egestas quis. Viverra accumsan in nisl nisi.Gravida rutrum quisque non tellus orci. Justo eget magna fermentum iaculis. Vitae congue mauris rhoncus aenean vel. Vitae proin sagittis nisl rhoncus. Fermentum odio eu feugiat pretium nibh ipsum consequat. Mi sit amet mauris commodo. Nunc faucibus a pellentesque sit amet porttitor. Commodo sed egestas egestas fringilla phasellus faucibus. Integer eget aliquet nibh praesent tristique magna. Mauris augue neque gravida in. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Eget est lorem ipsum dolor sit amet consectetur adipiscing elit. Neque convallis a cras semper auctor neque vitae tempus. Eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar. Vel quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Facilisis gravida neque convallis a cras semper. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Elit eget gravida cum sociis natoque penatibus et magnis. Venenatis a condimentum vitae sapien pellentesque habitant.Eros in cursus turpis massa. Eget gravida cum sociis natoque penatibus et magnis. At quis risus sed vulputate odio ut. Sed risus ultricies tristique nulla aliquet enim tortor at auctor. In pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. At imperdiet dui accumsan sit amet nulla facilisi morbi. Diam vel quam elementum pulvinar etiam non quam lacus. Lacus viverra vitae congue eu. Nulla malesuada pellentesque elit eget gravida cum sociis. Laoreet sit amet cursus sit amet dictum sit amet.Cursus euismod quis viverra nibh cras pulvinar mattis. Id venenatis a condimentum vitae sapien pellentesque habitant. Ac ut consequat semper viverra nam. Vulputate ut pharetra sit amet aliquam id diam maecenas. Urna porttitor rhoncus dolor purus non enim praesent elementum. Faucibus vitae aliquet nec ullamcorper sit. Nulla facilisi cras fermentum odio eu feugiat pretium nibh ipsum. A pellentesque sit amet porttitor eget dolor morbi non. Magna eget est lorem ipsum dolor sit amet consectetur adipiscing. Eget arcu dictum varius duis at. Facilisi nullam vehicula ipsum a arcu cursus vitae congue mauris. Ut diam quam nulla porttitor massa id neque. Id consectetur purus ut faucibus pulvinar. Vulputate mi sit amet mauris. Habitant morbi tristique senectus et netus et. Nisl nisi scelerisque eu ultrices. Justo laoreet sit amet cursus sit amet dictum sit. Orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt. At risus viverra adipiscing at in tellus. Nisi est sit amet facilisis magna etiam tempor orci.Etiam sit amet nisl purus. Varius sit amet mattis vulputate enim nulla. Sit amet mauris commodo quis imperdiet. Semper auctor neque vitae tempus quam pellentesque nec nam. Sagittis eu volutpat odio facilisis mauris. Hendrerit dolor magna eget est lorem ipsum dolor. Duis at consectetur lorem donec massa sapien faucibus et. Vel elit scelerisque mauris pellentesque pulvinar pellentesque. Duis at consectetur lorem donec massa sapien faucibus. Diam sit amet nisl suscipit adipiscing bibendum est ultricies. Proin nibh nisl condimentum id venenatis a condimentum vitae. Amet massa vitae tortor condimentum. Arcu felis bibendum ut tristique et egestas. Porttitor leo a diam sollicitudin tempor. Quam quisque id diam vel quam elementum. Sed nisi lacus sed viverra tellus in hac habitasse. Nibh ipsum consequat nisl vel pretium lectus quam id.Parturient montes nascetur ridiculus mus mauris vitae ultricies leo integer. Vestibulum sed arcu non odio euismod. Eu feugiat pretium nibh ipsum consequat nisl vel. Mauris augue neque gravida in fermentum et. Vitae elementum curabitur vitae nunc sed velit dignissim sodales ut. Etiam tempor orci eu lobortis elementum nibh. Condimentum lacinia quis vel eros. Donec et odio pellentesque diam volutpat commodo sed egestas. Lobortis mattis aliquam faucibus purus in massa tempor nec feugiat. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit. Morbi quis commodo odio aenean sed adipiscing diam. Nibh nisl condimentum id venenatis a condimentum vitae. Nisl tincidunt eget nullam non. Pulvinar sapien et ligula ullamcorper malesuada proin. Nam at lectus urna duis. Senectus et netus et malesuada fames ac turpis. Elit ullamcorper dignissim cras tincidunt lobortis.Duis at consectetur lorem donec massa sapien faucibus et. Et ligula ullamcorper malesuada proin libero. Morbi tincidunt augue interdum velit euismod in pellentesque. Blandit aliquam etiam erat velit scelerisque in dictum. Consequat ac felis donec et odio. Risus commodo viverra maecenas accumsan lacus vel facilisis volutpat. Imperdiet nulla malesuada pellentesque elit. Aliquet enim tortor at auctor urna nunc id cursus. Ridiculus mus mauris vitae ultricies leo. Ultricies mi eget mauris pharetra et ultrices neque ornare aenean. Ac ut consequat semper viverra nam libero. Pellentesque habitant morbi tristique senectus. Nibh ipsum consequat nisl vel pretium lectus quam id leo. Proin libero nunc consequat interdum varius sit amet mattis. Orci eu lobortis elementum nibh tellus.',
					'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Nec feugiat in fermentum posuere urna nec. Mattis pellentesque id nibh tortor id aliquet lectus proin nibh. Risus sed vulputate odio ut enim. Integer vitae justo eget magna. Quis eleifend quam adipiscing vitae proin sagittis nisl rhoncus mattis. Eget mauris pharetra et ultrices neque ornare. Dolor morbi non arcu risus. At varius vel pharetra vel turpis nunc eget lorem dolor. Sed libero enim sed faucibus turpis in eu. Ornare suspendisse sed nisi lacus sed viverra tellus in. Nunc aliquet bibendum enim facilisis gravida neque convallis a. Et ultrices neque ornare aenean. Nisl tincidunt eget nullam non nisi.Ut porttitor leo a diam sollicitudin tempor id. Sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula ipsum. Semper auctor neque vitae tempus quam. Gravida arcu ac tortor dignissim convallis aenean et tortor at. Id aliquet risus feugiat in ante. Pretium nibh ipsum consequat nisl vel. Tortor id aliquet lectus proin nibh. Congue quisque egestas diam in arcu cursus euismod. Nunc consequat interdum varius sit amet. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla. Tortor at auctor urna nunc id cursus metus aliquam eleifend. Elit ut aliquam purus sit amet luctus venenatis lectus magna.Aliquet risus feugiat in ante metus dictum. Nam aliquam sem et tortor consequat id. Enim nulla aliquet porttitor lacus luctus accumsan tortor posuere. Tempus urna et pharetra pharetra massa massa ultricies mi. Tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius. Potenti nullam ac tortor vitae purus. Pharetra massa massa ultricies mi quis. At elementum eu facilisis sed. Odio ut sem nulla pharetra diam sit amet nisl suscipit. Eu lobortis elementum nibh tellus molestie nunc non blandit. Amet luctus venenatis lectus magna. Vitae nunc sed velit dignissim sodales ut eu sem integer. Curabitur vitae nunc sed velit. Dui sapien eget mi proin sed libero enim sed faucibus. Pellentesque habitant morbi tristique senectus et. Vel pharetra vel turpis nunc eget lorem. Suscipit tellus mauris a diam maecenas sed. Nunc consequat interdum varius sit. Tellus integer feugiat scelerisque varius morbi enim nunc faucibus a.Ipsum dolor sit amet consectetur adipiscing. Tortor posuere ac ut consequat semper viverra. Sagittis vitae et leo duis. Fermentum et sollicitudin ac orci phasellus. Arcu cursus euismod quis viverra nibh cras pulvinar. Urna et pharetra pharetra massa. Donec massa sapien faucibus et molestie ac feugiat. Diam maecenas sed enim ut. Curabitur vitae nunc sed velit dignissim sodales. Congue nisi vitae suscipit tellus mauris.Id diam maecenas ultricies mi eget. Ut tristique et egestas quis ipsum suspendisse. Donec ultrices tincidunt arcu non sodales neque sodales ut etiam. Vel eros donec ac odio. Nunc sed blandit libero volutpat sed. Elementum curabitur vitae nunc sed velit dignissim sodales. Nam at lectus urna duis convallis convallis tellus id. Est ante in nibh mauris cursus mattis. Pharetra pharetra massa massa ultricies mi. Id eu nisl nunc mi ipsum faucibus vitae aliquet nec.Egestas pretium aenean pharetra magna. Iaculis at erat pellentesque adipiscing commodo elit. Rutrum tellus pellentesque eu tincidunt tortor aliquam nulla facilisi cras. Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Amet facilisis magna etiam tempor. Risus viverra adipiscing at in tellus integer. Malesuada pellentesque elit eget gravida cum sociis natoque. Tincidunt id aliquet risus feugiat in ante metus dictum. Ut lectus arcu bibendum at varius vel pharetra vel. Mollis aliquam ut porttitor leo a diam sollicitudin.Massa tincidunt nunc pulvinar sapien et ligula ullamcorper malesuada proin. Aliquam ut porttitor leo a. Consectetur libero id faucibus nisl tincidunt eget. Massa sapien faucibus et molestie ac feugiat sed lectus vestibulum. Sem et tortor consequat id porta nibh venenatis cras. Ac tortor vitae purus faucibus ornare. Sed viverra tellus in hac habitasse platea dictumst vestibulum. Habitant morbi tristique senectus et netus. Odio morbi quis commodo odio aenean sed. In eu mi bibendum neque egestas congue quisque. Vitae tortor condimentum lacinia quis. Arcu risus quis varius quam quisque id diam. Arcu cursus euismod quis viverra nibh cras pulvinar. Vel orci porta non pulvinar neque. Eu nisl nunc mi ipsum faucibus vitae aliquet. Leo in vitae turpis massa sed elementum. Sed risus ultricies tristique nulla aliquet enim. Convallis tellus id interdum velit. Feugiat sed lectus vestibulum mattis ullamcorper. Ut tellus elementum sagittis vitae.Neque vitae tempus quam pellentesque. Vivamus arcu felis bibendum ut tristique et egestas quis. Risus at ultrices mi tempus imperdiet. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper. Arcu non odio euismod lacinia at quis risus sed. Vulputate eu scelerisque felis imperdiet proin fermentum. Venenatis a condimentum vitae sapien pellentesque habitant morbi tristique. Quisque egestas diam in arcu cursus euismod quis viverra nibh. Sagittis aliquam malesuada bibendum arcu. Adipiscing bibendum est ultricies integer quis auctor. Nibh praesent tristique magna sit amet purus gravida quis blandit. Sit amet luctus venenatis lectus magna. Integer malesuada nunc vel risus commodo. Sed odio morbi quis commodo odio aenean sed adipiscing diam. Donec enim diam vulputate ut pharetra sit amet aliquam. Lorem dolor sed viverra ipsum nunc aliquet bibendum. Est ullamcorper eget nulla facilisi etiam dignissim.Morbi tristique senectus et netus. In eu mi bibendum neque egestas. Eu feugiat pretium nibh ipsum consequat nisl vel. Interdum velit euismod in pellentesque massa placerat duis ultricies. Commodo nulla facilisi nullam vehicula ipsum a arcu cursus. Dolor sit amet consectetur adipiscing elit. Tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed. Ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget. Dignissim diam quis enim lobortis scelerisque fermentum dui faucibus. Diam maecenas sed enim ut sem. Diam quam nulla porttitor massa id neque aliquam vestibulum morbi. Vitae justo eget magna fermentum iaculis eu non diam. Feugiat scelerisque varius morbi enim nunc faucibus. Elementum nibh tellus molestie nunc non. Arcu bibendum at varius vel pharetra vel turpis. Vitae suscipit tellus mauris a diam maecenas sed. Eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. At augue eget arcu dictum.At lectus urna duis convallis convallis tellus id. Ultrices in iaculis nunc sed augue lacus viverra vitae congue. Ultricies mi quis hendrerit dolor magna. Ornare massa eget egestas purus viverra accumsan in nisl. Arcu risus quis varius quam quisque id. Mi proin sed libero enim sed faucibus turpis in. Enim sed faucibus turpis in eu. Ultrices eros in cursus turpis massa tincidunt dui ut ornare. Venenatis lectus magna fringilla urna porttitor rhoncus dolor. Donec massa sapien faucibus et molestie ac feugiat sed lectus. Id aliquet lectus proin nibh nisl. Ut tristique et egestas quis. Viverra accumsan in nisl nisi.Gravida rutrum quisque non tellus orci. Justo eget magna fermentum iaculis. Vitae congue mauris rhoncus aenean vel. Vitae proin sagittis nisl rhoncus. Fermentum odio eu feugiat pretium nibh ipsum consequat. Mi sit amet mauris commodo. Nunc faucibus a pellentesque sit amet porttitor. Commodo sed egestas egestas fringilla phasellus faucibus. Integer eget aliquet nibh praesent tristique magna. Mauris augue neque gravida in. Gravida dictum fusce ut placerat orci nulla pellentesque dignissim. Nisl nunc mi ipsum faucibus vitae aliquet nec ullamcorper sit. Eget est lorem ipsum dolor sit amet consectetur adipiscing elit. Neque convallis a cras semper auctor neque vitae tempus. Eget velit aliquet sagittis id consectetur purus ut faucibus pulvinar. Vel quam elementum pulvinar etiam non quam lacus suspendisse faucibus. Facilisis gravida neque convallis a cras semper. Massa placerat duis ultricies lacus sed turpis tincidunt id aliquet. Elit eget gravida cum sociis natoque penatibus et magnis. Venenatis a condimentum vitae sapien pellentesque habitant.Eros in cursus turpis massa. Eget gravida cum sociis natoque penatibus et magnis. At quis risus sed vulputate odio ut. Sed risus ultricies tristique nulla aliquet enim tortor at auctor. In pellentesque massa placerat duis ultricies lacus sed turpis tincidunt. At imperdiet dui accumsan sit amet nulla facilisi morbi. Diam vel quam elementum pulvinar etiam non quam lacus. Lacus viverra vitae congue eu. Nulla malesuada pellentesque elit eget gravida cum sociis. Laoreet sit amet cursus sit amet dictum sit amet.Cursus euismod quis viverra nibh cras pulvinar mattis. Id venenatis a condimentum vitae sapien pellentesque habitant. Ac ut consequat semper viverra nam. Vulputate ut pharetra sit amet aliquam id diam maecenas. Urna porttitor rhoncus dolor purus non enim praesent elementum. Faucibus vitae aliquet nec ullamcorper sit. Nulla facilisi cras fermentum odio eu feugiat pretium nibh ipsum. A pellentesque sit amet porttitor eget dolor morbi non. Magna eget est lorem ipsum dolor sit amet consectetur adipiscing. Eget arcu dictum varius duis at. Facilisi nullam vehicula ipsum a arcu cursus vitae congue mauris. Ut diam quam nulla porttitor massa id neque. Id consectetur purus ut faucibus pulvinar. Vulputate mi sit amet mauris. Habitant morbi tristique senectus et netus et. Nisl nisi scelerisque eu ultrices. Justo laoreet sit amet cursus sit amet dictum sit. Orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt. At risus viverra adipiscing at in tellus. Nisi est sit amet facilisis magna etiam tempor orci.Etiam sit amet nisl purus. Varius sit amet mattis vulputate enim nulla. Sit amet mauris commodo quis imperdiet. Semper auctor neque vitae tempus quam pellentesque nec nam. Sagittis eu volutpat odio facilisis mauris. Hendrerit dolor magna eget est lorem ipsum dolor. Duis at consectetur lorem donec massa sapien faucibus et. Vel elit scelerisque mauris pellentesque pulvinar pellentesque. Duis at consectetur lorem donec massa sapien faucibus. Diam sit amet nisl suscipit adipiscing bibendum est ultricies. Proin nibh nisl condimentum id venenatis a condimentum vitae. Amet massa vitae tortor condimentum. Arcu felis bibendum ut tristique et egestas. Porttitor leo a diam sollicitudin tempor. Quam quisque id diam vel quam elementum. Sed nisi lacus sed viverra tellus in hac habitasse. Nibh ipsum consequat nisl vel pretium lectus quam id.Parturient montes nascetur ridiculus mus mauris vitae ultricies leo integer. Vestibulum sed arcu non odio euismod. Eu feugiat pretium nibh ipsum consequat nisl vel. Mauris augue neque gravida in fermentum et. Vitae elementum curabitur vitae nunc sed velit dignissim sodales ut. Etiam tempor orci eu lobortis elementum nibh. Condimentum lacinia quis vel eros. Donec et odio pellentesque diam volutpat commodo sed egestas. Lobortis mattis aliquam faucibus purus in massa tempor nec feugiat. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit. Morbi quis commodo odio aenean sed adipiscing diam. Nibh nisl condimentum id venenatis a condimentum vitae. Nisl tincidunt eget nullam non. Pulvinar sapien et ligula ullamcorper malesuada proin. Nam at lectus urna duis. Senectus et netus et malesuada fames ac turpis. Elit ullamcorper dignissim cras tincidunt lobortis.Duis at consectetur lorem donec massa sapien faucibus et. Et ligula ullamcorper malesuada proin libero. Morbi tincidunt augue interdum velit euismod in pellentesque. Blandit aliquam etiam erat velit scelerisque in dictum. Consequat ac felis donec et odio. Risus commodo viverra maecenas accumsan lacus vel facilisis volutpat. Imperdiet nulla malesuada pellentesque elit. Aliquet enim tortor at auctor urna nunc id cursus. Ridiculus mus mauris vitae ultricies leo. Ultricies mi eget mauris pharetra et ultrices neque ornare aenean. Ac ut consequat semper viverra nam libero. Pellentesque habitant morbi tristique senectus. Nibh ipsum consequat nisl vel pretium lectus quam id leo. Proin libero nunc consequat interdum varius sit amet mattis. Orci eu lobortis elementum nibh tellus.',
				],
				['fizz','buzz','loop']
			],
        }}
	],
	styles: {
	    header: {
			fontSize: 18,
			bold: true,
			margin: [0, 0, 0, 10]
		},
		subheader: {
			fontSize: 16,
			bold: true,
			margin: [0, 10, 0, 5]
		},
		tableExample: {
			margin: [0, 5, 0, 15]
		},
		tableHeader: {
			bold: true,
			fontSize: 13,
			color: 'black'
		}
	},
	defaultStyle: {
		// alignment: 'justify'
	}
	
}

maxpowa avatar Nov 22 '23 19:11 maxpowa

I'm having the same issue. Anyone found a solution yet?

NewGHUser4321 avatar Dec 07 '23 22:12 NewGHUser4321

I'm having the same issue. Anyone found a solution yet?

trantoi99 avatar Jan 02 '24 08:01 trantoi99

I found a workaround that uses id naming to go around the limitations. It's not performant though. The condition is essentially "If there is another row on the same page the row fits, otherwise pagebreak."

  1. Only use objects such as { text: "" } or { stack: [...stuff] } as cell body.
  2. Name each cell something you can use to filter out values you want to use.
  3. Use the names of the columns to see if there's another one of those on the current page. If not, put a page-break.
  4. Add a { text: ' ', id: 'table-end' } element so the pageBreakBefore` function knows when to stop.
  5. table-end must have at least one character, otherwise it will not be rendered and can't be checked for in the pageBreakFunction

Here's a playground file with two cases, one basic and one I thought was tricky.

const text = 'Content '.repeat(200)
const tableBody = []
for (let i = 0; i < 5; i++) {
    tableBody.push([
        { text, id: `col1-${i}` },
        { text, id: `col2-${i}` },
        { text, id: `col3-${i}` }
    ])
}

for (let i = 5; i < 30; i++) {
    tableBody.push([
        { stack: ['content'], id: `col1-${i}` },
        {
            stack: [
                'content', 'content', 'content', 'content', 'content',
                'content', 'content', 'content', 'content', 'content'
            ],
            id: `col2-${i}`
            
        },
        {
            stack: [
                'content', 'content', 'content', 'content', 'content',
                'content', 'content', 'content', 'content', 'content'
            ],
            id: `col3-${i}`
            
        },
    ])
}


var dd = {
    pageBreakBefore (currentNode, followingNodesOnPage, nodesOnNextPage, previousNodesOnPage) {
        // If the next page is empty => No page break
        if (followingNodesOnPage.find(n => n?.id =='table-end')) {
            return false;
        }
        if (currentNode.id?.startsWith('col')) {
            const columnPrefix = currentNode.id.split('-')[0]
          if (followingNodesOnPage.some(node => node.id?.startsWith(columnPrefix) && node.id != currentNode.id)) {
            return false;
          }
          if (!previousNodesOnPage.some(node => node.id?.startsWith(columnPrefix) && node.id != currentNode.id)) {

                return false
          }
          
          return true;
        }
    },
    content: [
        {
            table: {
                body: tableBody
            }
        },
        { text: ' ', id: 'table-end' }
    ]
}

olafur-palsson avatar Jan 09 '24 11:01 olafur-palsson