Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[birt-dev] CheckIn: Page break algorithm enhancement, resolve page-break related bugs: 141173 , 150243 , 153039 , 153871, 161290

Title: CheckIn: Page break algorithm enhancement, resolve page-break related bugs: 141173 ,150243 ,153039 , 153871, 161290

Summary 

Page break algorithm enhancement, resolve page-break related bugs

Bugzilla Bug (s) Resolved:

141173  Page Break Inside - Avoid does not work        
150243  Widow/Orphans  
153039  PDF-Export: problems with table rows on page break     
153871  Page Break in Row      
156471  Single table row spanning multiple pages       
161290  PDF creation thrashes indefinitely for some images with particular report formatting   

Description:

Page-break enhancement in PDF report:

1.      Support page-break-inside: avoid for all report items.

2.      Support page-break-inside: avoid for Row element

3.      Support page-break-inside: avoid for List group element

4.      Support page-break-after: avoid for report items

5.      Support widows/orphans for block text type elements(text, data, label etc)

Need to enhance in next step:

1.      Support page-break-before: avoid for report items

2.      Support page-break-inside: avoid for Table group element.

Some rules in page-break algorithm:

1.      For the same level elements: Always>avoid>auto. For example, the first element is set as page-break-after: avoid, and the second is set as page-break-before: always, then page-break occurs.

2.      Children take higher priority than parent. For example, if parent=page-break-inside: avoid, and child=page-break-after/before: always, then page-break occurs.

3.      Page-break-inside: avoid takes higher priority than widows/orphans.

4.      Page-break-inside: avoid is inheritable.

5.      If an element is set as page-break-after: avoid, which means that keep itself and the next element in the same page, so a potential rule is to avoid page-break in this element.

Test Description:

Manual Test

 Files Edited:

"/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTableBandLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/font/FontConfigReader.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFLayoutEngineContext.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFListGroupLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/ListGroupExecutor.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/TableGroupExecutor.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/util/HTMLStyleProcessor.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/parser/EngineIRVisitor.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTableGroupLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTemplateLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/executor/GroupExecutor.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/ILineStackingLayoutManager.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFPageLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/ir/GroupDesign.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/font/FontMappingManager.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFInlineContainerLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/html/HTMLTableLayoutNoNestEmitter.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFRowLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/LayoutEngineFactory.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/html/HTMLTableLayoutNestEmitter.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTextBlockContainerLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFGroupLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/content/LineStackingExecutor.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFStackingLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/ir/IOConstants.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/ir/EngineIRWriter.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFRegionLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFListLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTableLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTextInlineBlockLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFAbstractLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFLineAreaLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTextLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFCellLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/ILayoutContext.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFInlineStackingLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/IStackingLayoutManager.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFLeafItemLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/html/HTMLTableLayoutEmitter.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFBlockStackingLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/area/impl/ContainerArea.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFTableRegionLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/layout/pdf/PDFImageLM.java" "/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/ir/EngineIRReader.java"

"

Notes to Build Team:

Notes to Developers:

Notes to QA:

Quotes to Documentation:


Back to the top