Not Again!
This problem has returned from the dark ages!
I guess Oki et al never did get things quite right.
I'm sure that the changes to the parts of windows that are involved have
introduced a different software environment than the one existing when the
Oki's drivers were developed. (GUI, various DLL's, registry info. etc.)
Microsoft supplies a generic text printer driver with windows. (Which has
it's own set of quirks.)
Other options might be to see what printers the Oki will emulate, and try
one of those drivers.
There are some tricks to help determine what is going on.
The brute force method involves sending the data to a file instead of the
printer. This is usually an option in the printer driver.
A Hex editor is used to display the file contents, and determine what codes
are causing the extra line feed. You may find that it occurs because of a
settable printer option (printer control panel, dip switch, etc. and not
directly from the data sent to the printer.) Or, an extra line feed is being
sent to the printer, or the printer is adding one at the end of the page due
to printer firmware settings.
We would also generate a file that had numbers in each line, such that the
first line had 1, and the highest number representing the last number at the
end of several pages, assuming the number of lines per page as listed in the
printer specs.
This gives you a controlled data file that can be saved and sent to the
printer via a command line copy with the binary option.
You can then print the file via the printer drive as well as the
aforementiond copy command, thus giving you a comparison.
Some of the dot matrix printers have a control panel or dip switch option to
print the hex codes sent as hex codes instead of text and formatting/command
codes.
Some dot matrix printers automatically add a line feed/carriage return or
form feed at the end of around 66 line of ASCII text. (Firmware settings,
dip switch or control panel. ) This may vary with the printers settings for
the default ascii printer font.
Some dot matrix printers & driver had to be set to treat everything as
graphics formatted data instead of mixing text and graphics, or text as
text.
There are all kinds of other things to try, such as fudging the top and
bottom margin settings and non printable areas. (when you can set such
things.) Turn skip over perf off at the printer control panel or dip switch.
Lie to the driver by telling it that the form is longer or shorter than it
actually is.
Why does this problem occur?
Non printable area not exactly the same as windows and the driver will/do
accept. Some applications can also be involved, depending on how they pass
data to the printer driver thru windows.
Math rounding error in printer driver or printer firmware
Advance (line feed) distance different than the printer firmware or driver
is set for. (errors accumulate)
A scaling problem between the screen font and the printed font. (This was
not uncommon in the win 3.1 and 95 days)
Occasionally, the cure is to flip all of one bit in a registry entry.
Unfortunately, knowing what bit to diddle involves having access to tech
data for the printer driver as well as the windows internals.
A printer hardware buffer size, if too small, or a minor handshaking problem
can also produce a similar symptom, although it may or may not occuring a
completely repeatable manner.