The font adjustment scheme means that most of the time you can define the report fonts with just two font adjustment properties in the root Report: FontAdjustment and BaseHeadingFontAdjustment.
In fact often you only set the root Report’s FontAdjustment. For instance you might set it to be Arial 12pt. Descendent items would inherit a font of Arial 12pt, a suit symbol font of Symbol 12pt, and where relevant, a heading font of Arial 12pt Bold.
If your report has some fonts bigger or smaller than the main font, then it is better to use the percentage or relative size adjustments, rather than an absolute override. For instance you might specify ‘150%’ or ‘+5’. That way you can subsequently adjust the fonts for the entire report just by changing the FontAdjustment property of the root Report.
That applies just as much to the root Report BaseHeadingFontAdjustment. You might for instance specify a size of ‘200%’ and a style of ‘+i’. This would adjust all headings to be twice as big and italic (but not bold), before individual items’ HeadingFontAdjustment properties are applied.
Creating an A5 booklet is a frequent requirement. There are three ways to achieve this.
- Many print drivers have direct support to print an A5 booklet from a normal A4 document. This is the suggested method because it has the flexibility of leaving the output layout until print time, allowing different users to choose their preferred format.
- Adobe Acrobat Reader has a built-in booklet preprocessor for PDF files. Modern versions of Microsoft Word can save documents as PDF files directly, or you could use Windows 10’s built-in (but less efficient) Microsoft Print to PDF print driver.
- BDM Reporting has direct support for Word’s BookFold feature. However, this does not scale the fonts, nor automatically set the correct duplexing mode when printing.
Controlling Column Breaks
You can specify multiple columns for the report with the Report.ColumnCount property. This simply sets the Word document column count so that text flows down the column and then onto the next one.
If you set the Deal.SeparateColumn property to true, then deals are separated by a column break, meaning that each deal starts at the top of a column (or page).
Sometimes you might want to insert a column break in the middle of the deal output, such as if you have questions in the Intro text and answers in the Analysis text that you want to appear on the next page. You can generate a column break by inserting a CustomText item and setting its WithColumnBreak property to true.
Keeping Deals Together Within Column/Page
Sometimes you don’t necessarily want each deal to start at the top of a column or page, but you do want to keep each deal together without splitting across a boundary. A good technique for that is to set the Paragraph.KeepWithNext property to true in the root Report, so that all items inherit it, and then add a final CustomText item with Paragraph.KeepWithNext set to false.
Keeping Tables Together Within Column/Page
Even if you don’t mind deals being split across column/page boundaries, you may well want a table not to be split. Again you can set Paragraph.KeepWithNext for the item (or custom Table). Then make sure the following item has the property set to false, adding a CustomText item after the table if necessary.
Preventing Word Tables Merging
In Word, tables merge if they are adjacent with nothing between. Obviously you can prevent this by inserting a CustomText item, but the situation is so common that all items that output Word tables have an InsertParagraphBefore property specifically for this.