Strange Character Sizing Problem
LOTS of background information to setup a question/problem:
ReportBuilder Standard Edition Version 7.02
Delphi Version 5 with Update Pack 1
Epson Stylus 1520 INK JET (B&W and Color) which provides sheet feed and
tractor feed capabilities
Client is currently only using the tractor feed feature to print labels.
Labels consist of a single strip of one up labels.
The height of the label backing paper (from perforation to perforation)
is 2 inches.
The width of the label backing paper (which includes the tractor feed
portion) is 4 1/4 inches
The actual size of the paper label printable portion itself is 1 5/8 in.
height 3 1/2 in. width
Application:
The user wants to print either one, two or three labels for whatever the
currently viewed record is as selected using a TDBGrid.
The user wants the same information to be on all labels.
I've designed the app so that after the user has chosen the TDBGrid
record they want to print; they press a button and choose one of three
ReportBuilder reports.
One report prints a single label, another report prints two labels, and
a third report prints three labels - again all of the same current
TDBGrid record.
Because Epson requires a 1/2" bottom margin on the last page (i.e.
label) when using the tractor feed, and the user needs information
printed in this area, each of my three ReportBuilder reports is designed
with a page height that will actually cause an extra label (which is
left blank) to be generated. For example a single label's backing paper
would normally require a height of 2 inches but I've designed the
ReportBuilder height as twice that much (4 inches) and have laid out
ReportBuilder controls for only one label in the upper 2 inch portion of
the RB designer's detail band. This way when the user chooses to print a
single label, the printer actually prints a label and then a blank
label. This allows the printed label to print data in the lower 1/2"
area without being cut off. After the user tears off the first label
which contains the printed info, they press Epson's Eject/Load button
and the blank label that was included in the print process gets
repositioned as the next label to be printed on. In other words the
blank label is never lost. For the two and three label reports, I use
the same method of creating a page height that will cause an extra blank
label to be generated. Again all of this to get around the 1/2" margin
requirements and so far is working well.
Each label consists of ten TppLabel components and one TppMemo component
of various point sizes (9, 8, and 10). I do not use a ppDBPipeline for
any of the three reports but set the component captions using the before
print event. I am currently using an Arial font but have also tried a
couple of other fonts too.
Question/Problem:
The problem that I am having is that I have a particular component on
the label that does not consistently print the same size. Sometimes the
top or bottom of the characters is slightly cut off and sometimes the
characters appear to be squished in size. What makes this particularly
hard to diagnose is that the output appears to slightly change from one
print process to another. In other words I can print (for example) the
single label once and the letters are squished, and then immediately
print it again (without exiting the print previewer) and it *almost*
prints normally. I've spent about a day and a half trying a number of
things including lots of playing with the vertical position of the
control, deleting the control and replacing it, changing to a different
font and/or font size, etc but have not been able to totally resolve the
issue. I have noticed that when I change the vertical position of the
control it appears to make improvements to the size but as stated
earlier the improvements don't ever seem to fully remain. I have also
noticed that the spacing and characteristic of this control's output
does seem to change depending on whether I compile and run the report
(within Delphi's IDE) with the ReportBuilder's designer still open or
whether I compile and run the report (within Delphi's IDE) with the
ReportBuilder's designer closed but then again this is not consistent.
What is even stranger is that if I print the ReportBuilder report that
contains two labels or the one with three labels, this problem only
happens in the *first* label (the most upper label), the 2nd and 3rd
labels always print OK even though the relative position of all controls
is the same in the other labels.
Of course I've made sure the client has the most current driver
installed, tried repositioning the control numerous times and have tried
printing on blank paper on the client's HP Laser printer - naturally
works just fine but does not have tractor feed capabilities. I am at my
wits end on this one and would appreciate any insight that you could
give me. Does this sound like a driver issue or something that I have
misconfigured in ReportBuilder? This one really has me stumped!!
Steve Swarner
ReportBuilder Standard Edition Version 7.02
Delphi Version 5 with Update Pack 1
Epson Stylus 1520 INK JET (B&W and Color) which provides sheet feed and
tractor feed capabilities
Client is currently only using the tractor feed feature to print labels.
Labels consist of a single strip of one up labels.
The height of the label backing paper (from perforation to perforation)
is 2 inches.
The width of the label backing paper (which includes the tractor feed
portion) is 4 1/4 inches
The actual size of the paper label printable portion itself is 1 5/8 in.
height 3 1/2 in. width
Application:
The user wants to print either one, two or three labels for whatever the
currently viewed record is as selected using a TDBGrid.
The user wants the same information to be on all labels.
I've designed the app so that after the user has chosen the TDBGrid
record they want to print; they press a button and choose one of three
ReportBuilder reports.
One report prints a single label, another report prints two labels, and
a third report prints three labels - again all of the same current
TDBGrid record.
Because Epson requires a 1/2" bottom margin on the last page (i.e.
label) when using the tractor feed, and the user needs information
printed in this area, each of my three ReportBuilder reports is designed
with a page height that will actually cause an extra label (which is
left blank) to be generated. For example a single label's backing paper
would normally require a height of 2 inches but I've designed the
ReportBuilder height as twice that much (4 inches) and have laid out
ReportBuilder controls for only one label in the upper 2 inch portion of
the RB designer's detail band. This way when the user chooses to print a
single label, the printer actually prints a label and then a blank
label. This allows the printed label to print data in the lower 1/2"
area without being cut off. After the user tears off the first label
which contains the printed info, they press Epson's Eject/Load button
and the blank label that was included in the print process gets
repositioned as the next label to be printed on. In other words the
blank label is never lost. For the two and three label reports, I use
the same method of creating a page height that will cause an extra blank
label to be generated. Again all of this to get around the 1/2" margin
requirements and so far is working well.
Each label consists of ten TppLabel components and one TppMemo component
of various point sizes (9, 8, and 10). I do not use a ppDBPipeline for
any of the three reports but set the component captions using the before
print event. I am currently using an Arial font but have also tried a
couple of other fonts too.
Question/Problem:
The problem that I am having is that I have a particular component on
the label that does not consistently print the same size. Sometimes the
top or bottom of the characters is slightly cut off and sometimes the
characters appear to be squished in size. What makes this particularly
hard to diagnose is that the output appears to slightly change from one
print process to another. In other words I can print (for example) the
single label once and the letters are squished, and then immediately
print it again (without exiting the print previewer) and it *almost*
prints normally. I've spent about a day and a half trying a number of
things including lots of playing with the vertical position of the
control, deleting the control and replacing it, changing to a different
font and/or font size, etc but have not been able to totally resolve the
issue. I have noticed that when I change the vertical position of the
control it appears to make improvements to the size but as stated
earlier the improvements don't ever seem to fully remain. I have also
noticed that the spacing and characteristic of this control's output
does seem to change depending on whether I compile and run the report
(within Delphi's IDE) with the ReportBuilder's designer still open or
whether I compile and run the report (within Delphi's IDE) with the
ReportBuilder's designer closed but then again this is not consistent.
What is even stranger is that if I print the ReportBuilder report that
contains two labels or the one with three labels, this problem only
happens in the *first* label (the most upper label), the 2nd and 3rd
labels always print OK even though the relative position of all controls
is the same in the other labels.
Of course I've made sure the client has the most current driver
installed, tried repositioning the control numerous times and have tried
printing on blank paper on the client's HP Laser printer - naturally
works just fine but does not have tractor feed capabilities. I am at my
wits end on this one and would appreciate any insight that you could
give me. Does this sound like a driver issue or something that I have
misconfigured in ReportBuilder? This one really has me stumped!!
Steve Swarner
This discussion has been closed.
Comments
This is not a know issue with ReportBuilder. If the labels are printing
correctly on the HP and not on the Epson, it is more than likely a printer
driver/printer related problem. ReportBuilder uses the same Windows API
calls to every printer driver when printing. The Epson may be handling
these calls differently than most other printers. Below is a diagram of how
the ReporBuilder print process works.
ReportBuilder ==> Windows API ==> Printer Driver ==> Printer
You might try contacting the printer manufacturer and see if they have heard
of this issue and request a possible solution.
--
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
The line spacing could have something to do with this but it still does not
make since why it is only printing correctly sometimes. This is what leads
me to believe that it a driver issue. It's worth a try. Set the line
spacing of your printer to something larger than the default and see if the
results change.
--
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com