AutoTag Output Formats
The following are tips, limitations, and unsupported formats for output formats when generating documents:
- Items with a vertical absolute position related to the top of the page or margin are problematic as because AutoTag must guess how to place them based on the report generated prior to the item. The most commonly absolutely positioned items are text boxes, but this also happens with images and tables.
- Absolute vertical position based on the paragraph or line is fine.
- Absolute horizontal position is fine
- Only supported in DOCX & XLSX templates (starting with version 11.0.7).
- XLSX is only supported for Excel 2010 and later (Excel 2007 stores the metafile in a very convoluted way).
Smart Art & Shapes
- Supported for DOCX -> DOCX and XLSX -> XLSX only
- Smart Art is not supported in imported templates, only in the main template.
- DOCX - each diagram (complex Smart Art) will be placed once in the generated report. If it is inside a forEach loop, it will not be written in any iteration after the first.
- XLSX - in Excel these are written over the worksheet, not as part of a cell. On output they will be placed in the exact same position in the generated worksheet. Position will not be adjusted due to forEach, if (and so on) tags.
- Support for Smart Art & Shapes added in version 11.0.7.
- Forms (example: a field in Word) are not supported.
When importing a template:
- All header information is ignored, including default language, font, style, page size, margins, headers and footers. (Section breaks and their settings are imported, though.)
- Styles map over by name. If identical style names occur, there is no check to see if the settings are identical; the parent document's (the template's) styles prevail. If the imported document has a new style, that new style is added.
- Word - All list entries in the imported document become new list entries in the parent document; identical list entries are not mapped together.
Objects (OLE & ActiveX Objects)
- Autotag uses the default image if it is provided and treats the object as a bitmap.
- Not supported.
Additional limitations to specific output formats
Word DOCX & XML (WordML)
- Footnotes are not supported.
- Autoshapes are not supported.
- Tables of Figures are not supported. (Tables of Contents are, however.)
- Custom styles in table of contents.
- Fields - we support some fields, primarily numbering, dates, indexes, and table of contents.
- Does not support pivot tables
- Opening an XLSX file in Excel 2000/2002/2003 – you must click no on “Calculation is incomplete” – this is a bug in Excel.
- Cell content longer than 512 characters cannot be in a macro and so we display the full tag – this is an Excel limitation.
- Does not support page break settings in output to other formats.
- Does not support references to cells in other worksheets
Tips for Making Output Identical to Your Template
Blueprint tries to make the output report pixel for pixel identical with the created template. However, it will never be perfect. Some (not all) of the reasons for this difference are:
- Office itself will format slightly differently based on the graphics and printer drivers on a system.
- Office lays out documents slightly differently from what their spec says it should do. As these differences are not documented and Microsoft itself generally does not know exactly how Word/Excel is calculating the placement of text.
- Most measurement comes from the text metrics provided by the True Type fonts on a system. Different fonts provide different numbers for the same font. The same font file provides different numbers on different operating systems (no idea how this works). If these differ, the output will differ.
- The layout (soft line break, soft page breaks, and so on) is performed using the font metrics of the fonts installed on the system generating the report. If a font specified in the template does not exist on the server, then the system has to substitute in a font that is installed. This substituted font will generally has different font metric values and that will change the layout.
In almost all cases you can easily work with these constraints if you follow these guidelines:
- When you need a page break, put in a hard page break. Do not depend on the page layout to put a soft page break. The same for line breaks, column breaks, and so on.
- Avoid absolutely positioned objects whenever possible. Positioning relative to the paragraph, column, (margin for X position) are all fine. Positioning relative to the page or margin on the Y axis is strongly discouraged.
- Use paragraph "keep with/together" and table "row header" settings appropriately. What is 3 rows or 3 paragraphs in the template can be 150 in the report and where you can have those 3 rows/paragraphs all fit on one, page, 150 will not.
- Set column widths in tables using set values (inches, centimeters, points) or percentages. If you use autofit it will not match because Microsoft is not sure how Word does that. (And Excel column widths will always be a little off because of how Excel calculates them.)
- Use TrueType and OpenType fonts. If you use other types of fonts, there are limits with what can be done with them and they are closely tied to their code page.
- Minimize the use of nested tables. If you want a border around a page, do not create a table for the entire page containing the page contents - use the page border. Nested tables are very useful and well supported, so this is a matter of appropriate use, not trying to avoid them. But when you have two approaches and one does not use an additional nested table, use that approach.
- Leave a little room on each page. If you cram everything you can onto a page and it barely holds it all before the hard page break, you will sooner or later run on a system where the fonts are a little larger and your 1 page is now 2 pages.
The best way to approach your template is that it is a document, not a painting. With a painting you say I want this item right here on the page. With a document it is a flowing stream of paragraphs, images, tables, one after the other. Each has properties that say how it follows the preceding item and how the next should follow it.