Page 1 of 1

Table border printing problem

Posted: Fri Nov 04, 2005 1:24 am
by Fellow
Two days ago, you helped me to make one pixel border table, and it worked perfect.

But another problem rised.
When I use stylus printer to print these tables, the border is so so so bord, so thick, more than 3 pixel. But if I use laser printer, the tables are beautiful.

Maybe you think it printers' problem, but these printers work well with Word and Excel.

Can you check out this problem?

Thx~

Posted: Sat Nov 05, 2005 3:58 pm
by Sergey Tkachenko
Is this a problem with strandard TRichView table printing, or with that procedure for printing one pixel border?

Posted: Mon Nov 14, 2005 8:13 am
by fellow99
Image

Posted: Mon Nov 14, 2005 8:32 am
by fellow99
The pic above shows 3 tables:

1. Useing RichViewAction, I insert a table. Then go to "Table properties" and set "Cell spacing" to -1.

2. Created by program:
table.BorderStyle := rvtbColor;
table.BorderWidth := 0;
table.BorderVSpacing := 0;
table.BorderHSpacing := 0;
table.CellBorderStyle := rvtbColor;
table.CellBorderWidth := 1;
table.CellPadding := 3;
table.CellHSpacing := -1;
table.CellVSpacing := -1;

3. Excel table.

===================================

You can see the differences easily.
The Excel table is a true ONE pixel table. The RichViewAction one is a two pixels table. The program created one is worst...
It is not so much as a three pixels table. Some lines' width are more than 4 pixels, and some are thiner.

===================================
My printer is Epson LQ-1600KIIIH, a stylus printer. My OS is win2k pro.

Posted: Mon Nov 14, 2005 8:53 pm
by Sergey Tkachenko
Do lines have the same width if cell spacings are positive?

Posted: Thu Nov 17, 2005 9:06 am
by fellow99
When the cell spacings are positive, 2 for example, the width of the lines are two pixels.

=======================

This is the last question I answer. Please solve my problem as soon as possible. I am very vexed for it. I want to print a large number of tables, and the numbers of each table's cells are alse very LARGE. It is very very guly, and wasted ribbons, and also easy to damage the printer.

Everything is ready except this problem. I don't like to use a report control at this phase of project. Exactly, none of a report control could fulfil my needs except TRichView.

So, please solve my problem as soon as you can.

Posted: Thu Nov 17, 2005 7:34 pm
by Sergey Tkachenko
Sorry, but how can I solve this problem without knowing why it happens? I am asking questions not because I am trying to delay the solution, but because I want to know why it goes wrong.

I asked the last question because I want to know if the problem happens because of the border overlapping (may be drawing line two times over the same place makes it wider on that printer).
And sorry, I do not understand your answer. Are the lines have the same width when CellHSpacing=CellVSpacing=-1, and when they are positive values?

Posted: Fri Nov 18, 2005 7:49 am
by fellow99
I am sorry. Maybe I am too vexed.

=====================================
Image
As you see, the width of the lines are two pixels.

Posted: Fri Nov 18, 2005 8:01 am
by fellow99
When CellHSpacing=CellVSpacing=-1, It is also like the second instance, the worst one.

In another words, using RichViewAction can print tables with 2 pixels lines, and it is not too bad. But creating tables with programming could not be accepted.

It seems only appear at stylus printers, Maybe.

Posted: Fri Nov 18, 2005 1:08 pm
by Michel
I don't know if you both have noticed, but maybe this is significant. In the Nov 14, 2005 1:13 pm post with the first big snapshot, in the middle picture marked as "2", the leftmost cell in roughly 9th row from the top appears to have a thinner left border than the other rows. This could indicate cell overlapping, perhaps due to floating point imprecision (on which side, I wouldn't know), but I find it interesting that only one row is different. If I am even seeing it clearly enough. :)
Michel

Posted: Fri Nov 18, 2005 4:54 pm
by Sergey Tkachenko
So the lines have the same width when cellspacing = -1 and when it is positive (so the problem is not in the border overlapping)? It seems like this from these scans, but I am not 100% sure.

Posted: Sat Nov 19, 2005 3:51 am
by fellow99
New discovery

=================================

Image

Image

=================================

I used "Microsoft Office Document Image Writer" as a virtual printer, to output the papers as a image file(.mdi). I snaped parts of the tables.

All tables and all cell were create by programming. It should be the same.
Why? Mystificatory.

You should go over your code and find out the problem.

Posted: Sat Nov 19, 2005 5:51 pm
by Sergey Tkachenko
I think the problem with the virtual printer in a rounding off error. And I stronly believe it's not in TRichView but in the printer, because TRichView draws all border lines using the same width (if the image is created in higher resolution and then saved in lower resolution, the virtual printer's rounding off error is understandable, the same artifacts you can see in TRVPrintPreview). I am afraid this problem is not solvable.

But back to the initial problem. I still need an answer to my last question.

Posted: Mon Nov 21, 2005 1:39 am
by fellow99
I've solved the problem with a middle course.

Code: Select all

for r := 0 to rowCount - 1 do
  for c := 0 to colCount - 1 do
    table.SetCellVisibleBorders(c = 0, r = 0, true, true, r, c);
The codes above can do so on the whole, with litte bug.
I don't like to use this method, but i indeed have no more time.

Posted: Mon Nov 21, 2005 8:05 pm
by Sergey Tkachenko
So I believe the problem was in overlapping (drawing the same line over the same place made it thicker).
Ok, this is a temporal solution which I wanted to suggest you to test.