У меня есть принтер Label Brother QL-720NW, на который я хочу напечатать некоторые ярлыки.Выбор размера бумаги (НЕ РАЗМЕР ПО УМОЛЧАНИЮ) в excel vba
Принтер имеет рулон шириной 62мм
Когда я пытаюсь напечатать что-нибудь к нему, мне нужно настроить страницу, а также определить размер страницы. Если размер страницы неправильный (ширина более 62 мм), принтер ничего не печатает.
Теперь моя проблема в том, что я использую excel с макросами для отправки некоторых данных на принтер. Я знаю, что есть некоторые предопределенные размеры страниц (http://msdn.microsoft.com/en-us/library/office/ff834612%28v=office.15%29.aspx), которые можно использовать, но в моем случае все они слишком большие для этой цели.
Вот пример кода, который я до сих пор:
Sub CreateTestCode()
' setting printer
Dim objPrinter As String
objPrinter = ActivePrinter
ActiveSheet.PageSetup.PrintArea = Range("Img")
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
.PrintHeadings = False
.PrintGridlines = False
.RightMargin = Application.InchesToPoints(0.39)
.LeftMargin = Application.InchesToPoints(0.39)
.TopMargin = Application.InchesToPoints(0.39)
.BottomMargin = Application.InchesToPoints(0.39)
.PaperSize = xlPaperUser
.Orientation = xlLandscape
.Draft = False
End With
Dim printerName As String
printerName = "BrotherQL720NW Labelprinter on XYZ"
ActiveSheet.PrintOut Preview:=True, ActivePrinter:=printerName
ActivePrinter = objPrinter
End Sub
Теперь у меня есть 3 вопроса:
1: В .PaperSize = xlPaperUser я получаю во время выполнения-ошибка '1004'. Не удалось установить PaperSize класса PageSetup. Что здесь не так?
2: Как я могу задать размер бумаги примерно на 62 мм x 50 мм?
3: Даже если я определяю область печати в Range («Img»), она все равно печатает весь лист?!?
Кстати, я совершенно не знаком с vba, это моя первая попытка использовать vba.
Я предполагаю, что ваш ответ правильный, поэтому принимается. Но я думаю, что никогда не узнаю, потому что я решил выполнить эту работу на C# и создать DLL для макроса. –
xlPaperUser, как это определено? Похоже, он может быть установлен в размере страницы настроек принтера? – zeta
@zeta Я понимаю, что xlPaperUser определяется принтером, поэтому вы не можете установить его с помощью VBA. – TheEngineer