During the generation process, XFRX takes each section – one by one – and tries to split into to individual lines. Then each line is added to the output, respecting the vertical position of the line on the paper and horizontal positions of individual objects. Vertically misaligned objects are moved down to the closest baseline, for example:
This report definition:
Will be split to three lines:
And the result would look like this:
One two three four five six |
If XFRX will not be able to create distinct lines or if objects would overlap one another, XFRX will try removing some of the objects.
For example:
will be converted as:
One two Four six |
Horizontal lines can optionally be converted to a series of dashes. By default, this option is switched on. To suppress horizontal lines, call the setOtherParams method of XFRXSession object with two parameters: "PLAIN_SHOW_LINES" and .F., before calling processReport() method.
Example:
LOCAL m.loSession, m.lnRetval m.loSession= xfrx("XFRX#INIT") m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"PLAIN") IF m.lnRetVal = 0 m.loSession.SetOtherParams("PLAIN_SHOW_LINES", .F.) && do not print horizontal lines m.loSession.ProcessReport("report.frx") m.loSession.finalize() ENDIF |
To convert the object absolute positions to character positions, XFRX calculates the number of characters per line and the number of lines per page using horizontal and vertical character-per-inch values. By default, these values are 10 characters per horizontal inch and 5.2 characters per vertical inch, which results in approximately 80 characters x 55 lines on a letter size paper.
You may want to change the character density (e.g. when using a condensed font on a dot matrix printer). To do this, send PLAIN_CPI_HORIZONTAL or PLAIN_CPI_VERTICAL as the first parameter of the SetOtherParams() method and the actual value as the second parameter.
Example:
LOCAL m.loSession, m.lnRetval m.loSession= xfrx("XFRX#INIT") m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"PLAIN") IF m.lnRetVal = 0 * changing the character density to 12x6 per sq. inch m.loSession.SetOtherParams("PLAIN_CPI_HORIZONTAL",12) m.loSession.SetOtherParams("PLAIN_CPI_VERTICAL",8) m.loSession.ProcessReport("report.frx") m.loSession.finalize() ENDIF |
XFRX 17.2 generate control char FF (Form feed) after each page - except last page. You can turn off this feature:
LOCAL m.loSession, m.lnRetval m.loSession= xfrx("XFRX#INIT") m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"PLAIN") IF m.lnRetVal = 0 * don't add control chars m.loSession.SetOtherParams("DONTADDCONTROLCHARS",.F.) m.loSession.ProcessReport("report.frx") m.loSession.finalize() ENDIF |
Compact plain text is text output with plain mode - equal to XLSPLAIN.
LOCAL m.loSession, m.lnRetval m.loSession= xfrx("XFRX#INIT") m.lnRetVal = m.loSession.SetParams("output.txt",,,,,,"CPLAIN") IF m.lnRetVal = 0 m.loSession.ProcessReport("report.frx") m.loSession.finalize() ENDIF |