2016-11-28 2 views
0

Я использую EDRAW для просмотра Microsoft Word и может быть Print , Preview , ETC... И я планирую добавить к нему некоторые функции. Я добавляю 2 кнопки для Print Short (8.5 by 11 inches) и Print Long (8.5 by 13 inches), и у меня есть 2 принтера для длинных и коротких. Как установить свойства принтеров в каждой кнопке ?. Если я нажимаю кнопку коротко, он будет печатать краткими с помощью принтера 1 так же, как кнопка, но она находится в принтере 2.Как установить свойства принтера с помощью vb.net

Я следую коду в ссылке, приведенной выше.

У кого-нибудь есть идея? Любое предложение хорошо помогает и хорошо принимается. Спасибо .. Ура .. Я дам 50 щедрот к нему через два дня ..

код в качестве @Hadi запроса

Вот мой код кнопки для печати.

Private Sub btnPrint_Click(sender As System.Object, e As System.EventArgs) Handles btnPrint.Click 
    AxEDOffice1.SetActivePrinter("Printer Name") 
    AxEDOffice1.ActiveDocument.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4 
    AxEDOffice1.PrintDialog() 
End Sub 

и получаю сообщение об ошибке переменной объекта или переменная блока не устанавливается в строке кода AxEDOffice1.ActiveDocument.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4

+1

VB.NET не УВА - пожалуйста, прочитайте текст в тегах и удалить тот, который оленья кожа применить – Plutonix

+0

@Plutonix сожалею об этом. – KiRa

+0

Возможный дубликат [Как установить размер страницы MS Word с помощью API автоматизации?] (Http://stackoverflow.com/questions/12620003/how-to-set-ms-word-page-size-via-the-automation -api) –

ответ

1

После проверки библиотеки все, что вам нужно сделать, это с помощью SetActivePrinter метод, чтобы изменить принтер по умолчанию, как следующее:

AxEDOffice1.SetActivePrinter("Adobe PDF") 

И изменить PaperSize вы должны использовать следующую

AxEDOffice1.ActiveDocument.PageSetup.PaperSize = Microsoft.Office.Interop.Word.WdPaperSize.wdPaperA4 

AxEDOffice1.ActiveDocument является примером Microsoft.Office.Interop.Word.WordDocumentClass

Код проверял его, и он отлично работает.

EDIT 1:

переменная объекта или переменная блока не установлен

Подробнее об этом на этом MSDN article есть много предложений.

EDIT 2:

Чтобы распечатать документ непосредственно не показывая PrintDialog вы должны использовать PrintOut функции.

AxEDOffice1.PrintOut(EDOfficeLib.WdPrintOutRange.wdPrintAllDocument) 
+0

У меня ошибка. Значение типа Boolean не может быть преобразовано в System.Windows.Form.PrintDialog – KiRa

+0

Я получил эту ошибку «Объектная переменная или с заблокированной переменной блока». в бумаге размером – KiRa

+0

вы все еще там? .. Ты тот, у кого почти была моя проблема :( – KiRa

0

Похоже Change printername in PrintDialog through code сделок с убедившись, что диалоговое окно печати предварительно выбирает принтер, основанный на имя принтера в vb.net.

Смежные вопросы