Hi,
This is possible but requires you to write custom paging code to explicitly "tell" the converter where to page. See here for more details on how to do this:
https://www.essentialobjects.com/doc/pdf/htmltopdf/paging.aspx#customThe basic steps will be:
1. Follow the sample code above to get a Paginator object by calling session.CreatePaginator(). At this point the Paginator's Pages collection already contains the default paging result;
2. Use paginator.Pages[0] to get the top and bottom Y position of the page (for example, 0 - 820);
3. Walk through the DOM tree starting from paginator.Document.Body, then examine each HtmlTextNode's PageBreakLineRanges (which contains an array of YRange objects) to determine where you want to break before that. For example, you may see a HtmlTextNode with 4 YRange objects with the following value:
YRange0: 801 - 820
YRange1: 821 - 840
YRange2: 841 - 860
YRange3: 861 - 880
In this case, the default paging result would break after the first line (since the page height is 820 and it will only fit the first line) and the rest would be pushed to the second page. If you wish text only to break after the second line on the first page, then you will need to "correct" this problem. One way to correct this problem is to push the entire paragraph to the second page. In that case you would decide to break at 800 instead of the default value 820;
4. After you reached this conclusion, you would call the following code to force the paging process to run again from the first page:
Code: C#
paginator.Pages[0].PageAgain(800);
5. This would update the entire Pages collection (since you are redoing it from the first page). At this point you are satisfied with the first page. 6. Now you can repeat the above process on contents on the second page, figuring out where you want to break on the second page, then call:
Code: C#
paginator.Pages[1].PageAgain(position_for_the_end_of_the_second_page);
You would repeat this process until you finish all the pages.
Hope this helps. This is one of the most advanced (and probably least used) features. So please feel free to let us know if you have any more questions.
Also please keep in mind that in our next build, we will support "high resolution rendering" which will multiply all coordinate values by 100 by default, so 800 will become 80000, 810 will become 81000, etc. This will be a breaking change but it is necessary to support sub pixel rendering.
Thanks!