RML (Report Markup Language) is ReportLab's own language for specifying the appearance of a printed page, which is converted into PDF by the utility rml2pdf.
These RML samples showcase techniques and features for generating various types of ouput and are distributed within our commercial package as test cases. Each should be self explanatory and stand alone.
KeepWithNext The keepWithNext attribute for the paraStyle tag tells the paragraph, whether it should always be kept together with the next paragraph or not. This can be useful for keeping headings together with the following paragraph. The default value is 0. The code looks as follows: ]]> An example with keepWithNext="0". There is a spacer underneath. This is paragraph 1 with the keepWithNext="0" attribute. This is paragraph 2. An example with keepWithNext="1". There is a spacer underneath This is paragraph 1, whose style has the keepWithNext="1" attribute. This is paragraph 2. condPageBreak The <condPageBreak/> tag will move to the next page if there is not enough space on the page. The length required to stay on the same page is give by the attribute height which takes a length in the allowed measurements. Blah blah blah blah blah blah Lieutenant Commander Data Harry Kim blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah cloaking device blah blah Lieutenant Commander Data blah Dr. Pulaski blah blah blah USS Enterprise blah blah blah emergency transponder. Blah blah Ferrengi blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah Tom Paris Archer IV blah blah Archer IV blah blah Soyuz class science vessel blah Betazoid blah blah blah blah warship blah blah blah blah blah. Blah blah blah Lieutenant Worf blah blah Lieutenant Worf Vulcan blah blah blah. Blah blah blah blah blah blah blah Tom Paris blah William Riker blah blah blah blah blah blah blah Klingon blah Admiral Nakamura blah blah blah blah blah. Blah blah blah blah blah blah blah Romulan ale blah blah blah asteroid field blah blah blah blah blah blah blah blah. Blah blah blah blah blah Memory Alpha blah blah blah blah blah blah blah. Blah blah blah Captain Picard blah blah Romulan blah blah blah blah blah Admiral Nakamura blah blah. Blah blah blah blah blah blah blah Starfleet Academy blah blah USS Intrepid blah blah blah blah blah blah blah blah holodeck blah blah blah blah. Blah blah blah blah blah ...with a phaser! blah blah blah blah blah Romulan Vulcan blah blah blah. Blah blah quantum flux blah blah blah blah quantum flux Chief O'Brian blah blah blah blah blah blah blah blah blah. Blah Counsellor Troi blah blah blah blah blah blah USS Intrepid blah blah blah blah blah Captain Janeway blah asteroid field blah IKV Pagh blah blah. Blah blah blah blah blah blah Betazoid blah blah blah blah blah IKV Pagh blah blah Captain Janeway blah blah IKV Pagh. Blah photon torpedo blah blah blah blah blah blah photon torpedo blah blah blah blah blah blah blah blah blah Ferrengi blah blah blah blah blah. Blah blah blah blah United Federation of Planets blah blah blah blah blah blah blah Deep Space Nine blah blah blah blah blah blah blah blah blah. Blah blah "Intruder alert!" Romulan blah blah blah blah blah blah blah blah blah. Blah blah blah shuttlecraft Ferrengi Vulcan blah blah blah blah blah blah Galaxy class vessel blah blah blah blah blah blah blah. Blah turbolift blah blah scout ship cruiser blah quantum flux blah blah blah blah blah blah blah blah blah blah blah blah blah William Riker blah blah blah. Blah blah blah blah blah battlecruiser blah blah blah blah blah blah blah blah Dr. Pulaski Pacifica blah blah blah blah blah blah turbolift. Blah blah blah Benzite blah Bajoran blah blah "Borg Invasion imminent!" blah blah blah blah blah blah blah blah blood wine. Blah emergency transponder blah Starfleet blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah shuttle bay 2 blah blah blah. Blah blah blah blah blah blah blah blah distress signal blah spacedock blah Irumodic Syndrome blah Romulan ale blah blah blah blah blah "All hands abandon ship! This is not a drill!" blah blah blah blah blah. The conditional page break comes in here and is set for 3 inches. This is on the next page since there was less than three inches till the end of the page. Blah blah blah blah blah blah Lieutenant Commander Data Harry Kim blah blah blah blah blah blah blah blah blah blah blah blah blah. Blah cloaking device blah blah Lieutenant Commander Data blah Dr. Pulaski blah blah blah USS Enterprise blah blah blah emergency transponder. Blah blah Ferrengi blah blah blah blah blah blah blah blah blah blah blah. Blah blah blah blah blah Tom Paris Archer IV blah blah Archer IV blah blah Soyuz class science vessel blah Betazoid blah blah blah blah warship blah blah blah blah blah. Blah blah blah Lieutenant Worf blah blah Lieutenant Worf Vulcan blah blah blah. Blah blah blah blah blah blah blah Tom Paris blah William Riker blah blah blah blah blah blah blah Klingon blah Admiral Nakamura blah blah blah blah blah. Blah blah blah blah blah blah blah Romulan ale blah blah blah asteroid field blah blah blah blah blah blah blah blah. Blah blah blah blah blah Memory Alpha blah blah blah blah blah blah blah. Blah blah blah Captain Picard blah blah Romulan blah blah blah blah blah Admiral Nakamura blah blah. Blah blah blah blah blah blah blah Starfleet Academy blah blah USS Intrepid blah blah blah blah blah blah blah blah holodeck blah blah blah blah. Blah blah blah blah blah ...with a phaser! blah blah blah blah blah Romulan Vulcan blah blah blah. Blah blah quantum flux blah blah blah blah quantum flux Chief O'Brian blah blah blah blah blah blah blah blah blah. Blah Counsellor Troi blah blah blah blah blah blah USS Intrepid blah blah blah blah blah Captain Janeway blah asteroid field blah IKV Pagh blah blah. Blah blah blah blah blah blah Betazoid blah blah blah blah blah IKV Pagh blah blah Captain Janeway blah blah IKV Pagh. Blah photon torpedo blah blah blah blah blah blah photon torpedo blah blah blah blah blah blah blah blah blah Ferrengi blah blah blah blah blah. Blah blah blah blah United Federation of Planets blah blah blah blah blah blah blah Deep Space Nine blah blah blah blah blah blah blah blah blah. Blah blah "Intruder alert!" Romulan blah blah blah blah blah blah blah blah blah. Blah blah blah shuttlecraft Ferrengi Vulcan blah blah blah blah blah blah Galaxy class vessel blah blah blah blah blah blah blah. Blah turbolift blah blah scout ship cruiser blah quantum flux blah blah blah blah blah blah blah blah blah blah blah blah blah William Riker blah blah blah. Blah blah blah blah blah battlecruiser blah blah blah blah blah blah blah blah Dr. Pulaski Pacifica blah blah blah blah blah blah turbolift. Blah blah blah Benzite blah Bajoran blah blah "Borg Invasion imminent!" blah blah blah blah blah blah blah blah blood wine. Blah emergency transponder blah Starfleet blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah shuttle bay 2 blah blah blah. Blah blah blah blah blah blah blah blah distress signal blah spacedock blah Irumodic Syndrome blah Romulan ale blah blah blah blah blah "All hands abandon ship! This is not a drill!" blah blah blah blah blah. The conditional page break comes in here and is set for 3 inches. This is at the bottom of the page since there are more than 3in remaining. frameBreakBefore and pageBreakBefore The frameBreakBefore and pageBeforeBreak are both attributes of the <paraStyle> tag. The frameBreakBefore attribute causes the new paragraph to go into the next frame, even if there is still space in the current frame. The default value is 0. The pageBreakBefore attribute causes the new paragraph to go into the next page, even if there is still space in the current frame, or if there are other frames remaining on the page. The default value is 0. This is an example of frameBreakBefore. The next paragraph will be in a new frame. This paragraph is in a new frame, since its style has the attribute frameBreakBefore="1" This is an example of pageBreakBefore. The next paragraph will be on a new page. This paragraph is on a new page. It missed out the frame in the lower right corner of the last page, since its style has pageBreakBefore="1" allowWidows The allowWidows attribute, for the <paraStyle> tag, allows the paragraph to have a widow, a line of text, separated from the rest of the paragraph, at the end. The default value for allowWidows is 1. This is an example of allowWidows="1" Blah blah blah blah SQL blah blah blah blah pizza blah blah blah blah TeX blah blah blah blah blah. Blah Intercal blah blah blah blah blah blah TeX OS/2 TFT display blah Linux blah blah blah blah crash! blah blah Sun Microsystems blah Logo blah blah. Blah blah blah blah blah blah blah blah blah blah VB Tcl/Tk Fortran blah blah blah awk blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah PGP TCP/IP blah blah blah. Blah cgi Modula-3 SQL blah blah blah Delphi blah LISP blah BETA mailing lists blah. Blah blah blah blah pepperoni pizza blah blah blah blah blah blah blah blah blah blah blah blah blah blah monitor blah. Blah blah blah blah blah blah blah blah blah parallel languages blah blah blah blah blah blah blah blah BEER! blah blah. Blah blah beer blah blah OpenGL monitor blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah "illiterate programming" blah blah C: drive. Blah blah blah. This example has a widow (the line above). This is an example of allowWidows="0" Blah blah blah blah SQL blah blah blah blah pizza blah blah blah blah TeX blah blah blah blah blah. Blah Intercal blah blah blah blah blah blah TeX OS/2 TFT display blah Linux blah blah blah blah crash! blah blah Sun Microsystems blah Logo blah blah. Blah blah blah blah blah blah blah blah blah blah VB Tcl/Tk Fortran blah blah blah awk blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah PGP TCP/IP blah blah blah. Blah cgi Modula-3 SQL blah blah blah Delphi blah LISP blah BETA mailing lists blah. Blah blah blah blah pepperoni pizza blah blah blah blah blah blah blah blah blah blah blah blah blah blah monitor blah. Blah blah blah blah blah blah blah blah blah parallel languages blah blah blah blah blah blah blah blah BEER! blah blah. Blah blah beer blah blah OpenGL monitor blah blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah "illiterate programming" blah blah C: drive. Blah blah blah. This example does not have a widow, since another line has been brought with it. allowOrphans The allowOrphans attribute allows the paragraph to have an orphan, a line of text, left in the original frame, separated from the rest of the paragraph. The default value is for this attribute is 0. This is an example of allowOrphans="0" There is no orphan below. Blah blah blah blah SQL blah blah blah blah pizza blah blah blah blah TeX blah blah blah blah blah. Blah Intercal blah blah blah blah blah blah TeX OS/2 TFT display blah Linux blah blah blah blah crash! blah blah Sun Microsystems Logo blah blah. Blah blah blah blah blah blah blah blah blah blah VB Tcl/Tk Fortran blah blah blah awk blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah PGP TCP/IP blah blah blah. Blah cgi Modula-3 SQL blah blah blah Delphi blah LISP blah BETA mailing lists blah. Blah blah blah blah pepperoni pizza blah blah blah blah blah blah blah blah blah blah blah blah blah blah monitor blah. Blah blah blah blah blah blah blah blah blah parallel languages blah blah blah blah blah blah blah blah BEER! blah blah. Blah blah beer blah blah OpenGL monitor blah blah blah blah. Blah blah Phys blah blah blah blah blah blah blah blah blah "illiterate programming" blah blah C: drive. This is an example of allowOrphans="1" There is an orphan below. Blah blah blah blah SQL blah blah blah blah pizza blah blah blah blah TeX blah blah blah blah blah. Blah Intercal blah blah blah blah blah blah TeX OS/2 TFT display blah Linux blah blah blah blah crash! blah blah Sun Microsystems blah Logo blah blah. Blah blah blah blah blah blah blah blah blah blah VB Tcl/Tk Fortran blah blah blah awk blah blah blah. Blah blah blah blah blah blah blah blah blah blah blah blah PGP TCP/IP blah blah blah. Blah cgi Modula-3 SQL blah blah blah Delphi blah LISP blah BETA mailing lists blah. Blah blah blah blah pepperoni pizza blah blah blah blah blah blah blah blah blah blah blah blah blah blah monitor blah. Blah blah blah blah blah blah blah blah blah parallel languages blah blah blah blah blah blah blah blah BEER! blah blah. Blah blah beer blah blah OpenGL monitor blah blah blah blah. Blah blah Phys blah blah blah blah blah blah blah blah blah "illiterate programming" blah blah C: drive. endDots The endDots attribute fills in the rest of the last line of the paragraph with the characters given for the attribute. This paragraph should have dots following it until the end of the line. This paragraph should have the characters "123" following it until the end of the line.