Как сделать что бы текст введенный в текстовое поле, при распечатке этого документа попадал в поля: 1 лицо, 2 лицо, задание? (самые поля с голограмою уже готов на A4)
Бланк документа
А текстовые поля где расположены? На форме? Т.е. если я правильно понял, то должна быть некая форма, на ней два поля: 1 лицо, 2 лицо, которые заполняются. Далее в принтер вставляется готовый типографский бланк формата А4 и данные их этих полей должны попасть на бланк в соответствующие для них места при распечатке?Sayan писал(а):Как сделать что бы текст введенный в текстовое поле
Sayan писал(а):Как сделать что бы текст введенный в текстовое поле, при распечатке этого документа попадал в поля: 1 лицо, 2 лицо, задание?
Да, только проблема в том, что точно попасть в нужное место можно только при печати на цветном принтере, так как там идет четкое позиционирование листа перед печатью. Еще более менее приемлемый вариант получается при печати на хороших обычных черно белых лазерниках, но такие сейчас достаточно редки. На дешевом офисном ширпотребе попасть в нужное место практически нереально. Нынешний ширпотреб (некоторые экземпляры) даже страницы печатать прямо без перекосов заставить бывает сложно.Хакер писал(а):При выводе графики на принтер выводить её по нужным координатам — только и всего.
Dim oPrinter As Printer
For Each oPrinter In Printers
If oPrinter.DeviceName = "EPSON Stylus Photo R270 Series" Then Exit For
Next
oPrinter.CurrentX = 500
oPrinter.CurrentY = 1000
oPrinter.Print "Один"
oPrinter.CurrentX = 500
oPrinter.CurrentY = 300
oPrinter.Print "Два"
Property CurrentX As Single
Member of VB.Printer
Returns/sets the horizontal coordinates for next print or draw method.
Property CurrentY As Single
Member of VB.Printer
Returns/sets the vertical coordinates for next print or draw method.
По второму способу, т.е. печатать весь бланк, я бы предпочел использовать Excel. На нем нарисовать и в случае надобности подправить бланк можно достаточно быстро и без лишнего геммора.Sayan писал(а):ger_kar, да вы правильно поняли - и первый и второй способ подходит.
ger_kar писал(а):Обламывается на oPrinter.CurrentX = 500 с ошибкой, что свойство доступно только для чтения, причем объект браузер утверждает обратное:
Документация писал(а):Note If you use the Printers collection to specify a particular printer, as in Printers(3), you can only access properties on a read-only basis. To both read and write the properties of an individual printer, you must first make that printer the default printer for the application.
Private Sub Form_Load()
Dim prn As Printer
Set prn = Printers(0)
On Error Resume Next
prn.CurrentX = 123
MsgBox "Попытка 1: " + IIf(Err, "сбой — " + Err.Description, "успешно!")
On Error GoTo 0
Set Printer = prn
On Error Resume Next
Printer.CurrentX = 123
MsgBox "Попытка 2: " + IIf(Err, "сбой — " + Err.Description, "успешно!")
On Error GoTo 0
End Sub
Почему же, с удовольствием прочитал твою ссылку на документацию, а гугл переводчик мне в этом очень помогХакер писал(а):Кое-кто никогда не работал с принтерами в VB и не любит читать документацию:
ger_kar писал(а):только для предопределенного объекта Printer
ger_kar писал(а):и простое присвоение ссылки этому объекту позволяет решить проблему.
Sayan писал(а):как зарегистрировать?
Mikle писал(а):Пароль - "azimut mikle".
ger_kar писал(а):Да, только проблема в том, что точно попасть в нужное место можно только при печати на цветном принтере, так как там идет четкое позиционирование листа перед печатью. Еще более менее приемлемый вариант получается при печати на хороших обычных черно белых лазерниках, но такие сейчас достаточно редки.
Сейчас этот форум просматривают: SemrushBot и гости: 41