Кто знает, в чем может быть причина такой штуки?
Печатаю в Immediate:
Printer.Line (10,10)-(100,100),RGB(128,128,128),BF
Printer.CurrentX=20:Printer.CurrentY=20:Printer.Print "Test"
Получаю серый фон, на нем текст.
Имеется довольно большой класс, который реализует печать бланков. Когда печатаю, получается серый прямоугольник, а на нем текст на белом фоне. FontTransparent=True, это проверялось.
Печать в классе реализована примерно так:
...
Disp.Line (X1 - X0, Y1 - Y0)-(X2 - X0, Y2 - Y0), Color, BF
...
Call WrapText(Disp, Text, WT(), X2 - X1)
H = Disp.TextHeight(vbNullString) * UBound(WT)
Disp.CurrentY = ...
For I = 1 To UBound(WT)
W = Disp.TextWidth(WT(I))
Disp.CurrentX = ...
Disp.Print WT(I)
Next I
...
здесь Disp - это объект Printer.
Вначале печатал через API, увидел что получается непрозрачный фон под текстом и решил, что лучше буду печатать вручную, а тут такая же ерунда.
З.Ы. Дело не в коде класса. Сейчас проверил таким образом:
- Код: Выделить всё
Dim P As PrintJob
Set P = New PrintJob
P.AddBox vbNullString, 20, 20, 80, 80, , , RGB(128, 128, 128)
P.AddTextBox vbNullString, 30, 30, 50, 50, "test text test text test text"
P.OriginX = 10
P.OriginY = 10
P.PrintCurrentJob Printer
Printer.EndDoc
Set P = Nothing
Все печатает как надо, т.е. фонт прозрачный. Но в реальной работе, когда объекты добавляются из БД, текст печатается, как непрозрачный.