Регистрация | | запомнить |
 
 
ВК



Просматривают:   1 Анонимно





Custom Page Size
print | #
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01
Откуда Москва
Сообщений: 49
Offline
Доброго дня Всем !!!
помогите разобраться...
Есть желание печатать Custom Page Size, но не получается принтеру назначить тот размер который нужно ....например получить список принтеров это пожалуста, выбрать нужный тоже ...посмотреть текущий размер тоже можно.... а КАК Установить свой размер?

Private Sub Command1_Click()
List1.Clear
For Each objPrinter In Printers
List1.AddItem objPrinter.DeviceName
If objPrinter.DeviceName = "Adobe PDF" Then
Text4.Text = objPrinter.DeviceName

Dim W
Dim H

W = objPrinter.Width * 1.7636684303351E-03 * 10
H = objPrinter.Height * 1.7636684303351E-03 * 10

W = Round(W, 2)
H = Round(H, 2)

Text3.Text = W
Text5.Text = H

End If

Next

End Sub

Private Sub Command2_Click() установить в принтер новые парамтры (размеры)

??? objPrinter.Width = ???
??? objPrinter.Height = T???

End Sub

Опубликовано: 2010/3/22 17:51

Edited by GoodvinVV on 22/03/2010 18:41:53


Re: Custom Page Size
Титан
Присоединился:
2005/10/2 14:57
Откуда Москва
Сообщений: 6779
Offline
GoodvinVV
вы об чем молчел?
у любого принтера есть адд кастом сайз
накой все эти сложные скриптули?

Опубликовано: 2010/3/23 0:31
_________________
[икс́эм]


Re: Custom Page Size
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01
Откуда Москва
Сообщений: 49
Offline
.....как вбить Custom ручками меня не интересует я этим по 50-100 раз в день .... а мне нужно програмно ибо ручками (каждый раз новые размеры) много времени тыркать диалог принтера однако.
поэтому и "скриптули"

Опубликовано: 2010/3/23 9:40


Re: Custom Page Size
Титан - модератор
Присоединился:
2006/4/8 19:42
Сообщений: 152
Offline
нужно будет писать через winapi, иначе никак. Кури гуглы, должны быть примеры, я пользовал только чтение отступов:

Sub GetPrinterMargins(Optional L#, Optional t#, Optional r#, Optional b#)
    Const PhysicalOffsetX& = 112, PhysicalOffsetY& = 113, PhysicalWidth& = 110, PhysicalHeight& = 111, _
                HorzRES& = 8, VertRES& = 10, HorzSIZE& = 4, VertSIZE& = 6, _
                LogPixelsX& = 88, LogPixelsY& = 90
    Dim dpiX#, dpiY#, W#, H#, hDC&, s$
    s = Printers.Default.Name
    hDC = CreateDCW(StrPtr("WINSPOOL"), StrPtr(s), 0, ByVal 0&)
    If hDC = 0 Then Exit Sub
    dpiX = GetDeviceCaps(hDC, LogPixelsX): If dpiX = 0 Then Exit Sub
    dpiY = GetDeviceCaps(hDC, LogPixelsY): If dpiY = 0 Then Exit Sub
    L = ConvertUnits(GetDeviceCaps(hDC, PhysicalOffsetX) / dpiX, cdrInch, p_impUnit)
    t = ConvertUnits(GetDeviceCaps(hDC, PhysicalOffsetY) / dpiY, cdrInch, p_impUnit)
    W = ConvertUnits(GetDeviceCaps(hDC, PhysicalWidth) / dpiX, cdrInch, p_impUnit)
    H = ConvertUnits(GetDeviceCaps(hDC, PhysicalHeight) / dpiY, cdrInch, p_impUnit)
    r = W - ConvertUnits(GetDeviceCaps(hDC, HorzRES) / dpiX, cdrInch, p_impUnit) - L
    b = H - ConvertUnits(GetDeviceCaps(hDC, VertRES) / dpiY, cdrInch, p_impUnit) - t
    DeleteDC hDC
    marginTop = t: marginBottom = b: marginLeft = L: marginRight = r
    With chMargins
        hDC = InStr(.Caption, "(")
        .Caption = RTrim$(Left$(.Caption, IIf(hDC = 0, 99, hDC - 1))) & " (" & s & ")"
        .ControlTipText = "Top: " & RoundUnit(t, p_impUnit) & "; Left: " & RoundUnit(L, p_impUnit) & _
                                     "; Right: " & RoundUnit(r, p_impUnit) & "; Bottom: " & RoundUnit(b, p_impUnit) & _
                                     " — using default system printer: " & s
    End With
End Sub

Опубликовано: 2010/3/23 10:26


Re: Custom Page Size
Пользователь 2 уровня
Присоединился:
2008/2/4 10:01
Откуда Москва
Сообщений: 49
Offline
вот, нашел примерчик, не совсем то , что хотелось бы.... мудрёный очень...кто поможет разобраться?
http://www.planet-source-...


пример моей тестовой формы

и cod

Private Sub Command1_Click()
List1.Clear
For Each objPrinter In Printers
List1.AddItem objPrinter.DeviceName
If objPrinter.DeviceName = "Adobe PDF" Then
Text4.Text = objPrinter.DeviceName

Dim W
Dim H

W = objPrinter.Width * 1.7636684303351E-03 * 10
H = objPrinter.Height * 1.7636684303351E-03 * 10

W = Round(W, 2)
H = Round(H, 2)

Text3.Text = W
Text5.Text = H

End If

Next

End Sub

Private Sub Command2_Click() установить в принтер новые парамтры (размеры)

??? ???
??? ???

End Sub

Опубликовано: 2010/3/23 17:37

Edited by GoodvinVV on 23/03/2010 18:34:28
Edited by GoodvinVV on 23/03/2010 18:37:10
Edited by GoodvinVV on 23/03/2010 18:38:01
Edited by GoodvinVV on 23/03/2010 22:39:03
Edited by GoodvinVV on 23/03/2010 22:42:06


Re: Custom Page Size
Guest_
Был жуткий затрах с этой темой.
В итоге как вышло у меня:
Юзер жмёт печатать.
ППД файл заменяется с подменой скажем А4 страницы нужными размерами.
PrintSettings натравливаются на этот кастомный размер.
Выводится диалог на печать.

Опубликовано: 2011/9/22 12:55







Форма быстрого ответа
ЛогинИмя   Пароль   Логин
Сообщение:          

      ПРИМЕР


 [далее...]
Уведомлять о сообщениях в теме.



[Настройки поиска]