Я пытаюсь напечатать документ Word в Visual Studio.Когда я создаю документ, я вижу, что параметры страницы правильные, поскольку я их установил, и я могу вручную распечатать его из Word без проблем.Если я пытаюсь распечатать его с помощью метода .PrintOut, он игнорирует размер страницы, заданный мной, когда он идет на принтер.Интересно, что когда у нас был один драйвер на сервере, код работал.Когда мы разбили его на два разных драйвера, один для черного и белого и один для цветного, ни один из них не работал.
Я попытался устранить неполадки в существующей программе, создав шаблон для используемой программы, а такжесоздание нового приложения с использованием примера, предоставленного Microsoft, и оно ведет себя так же.Если это что-то значит, я пытаюсь печатать на Xerox WorkCentre 7845.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim oWord As Word.Application
Dim oDoc As Word.Document
Dim oTable As Word.Table
Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph
Dim oRng As Word.Range
Dim oShape As Word.InlineShape
Dim oChart As Object
Dim Pos As Double
'Start Word and open the document template.
oWord = CreateObject("Word.Application")
oWord.Visible = True
oDoc = oWord.Documents.Add
Dim PageSettings = oDoc.PageSetup
PageSettings.Orientation = Word.WdOrientation.wdOrientLandscape
PageSettings.PaperSize = Word.WdPaperSize.wdPaperCustom
PageSettings.PageHeight = oWord.InchesToPoints(10)
PageSettings.PageWidth = oWord.InchesToPoints(13)
PageSettings.FirstPageTray = CType(258, Word.WdPaperTray)
PageSettings.OtherPagesTray = CType(258, Word.WdPaperTray)
'Insert a paragraph at the beginning of the document.
oPara1 = oDoc.Content.Paragraphs.Add
oPara1.Range.Text = "Heading 1"
oPara1.Range.Font.Bold = True
oPara1.Format.SpaceAfter = 24 '24 pt spacing after paragraph.
oPara1.Range.InsertParagraphAfter()
'Insert a paragraph at the end of the document.
'** \endofdoc is a predefined bookmark.
oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
oPara2.Range.Text = "Heading 2"
oPara2.Format.SpaceAfter = 6
oPara2.Range.InsertParagraphAfter()
'Insert another paragraph.
oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"
oPara3.Range.Font.Bold = False
oPara3.Format.SpaceAfter = 24
oPara3.Range.InsertParagraphAfter()
'Insert a 3 x 5 table, fill it with data, and make the first row
'bold and italic.
Dim r As Integer, c As Integer
oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, 3, 5)
oTable.Range.ParagraphFormat.SpaceAfter = 6
For r = 1 To 3
For c = 1 To 5
oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
Next
Next
oTable.Rows.Item(1).Range.Font.Bold = True
oTable.Rows.Item(1).Range.Font.Italic = True
oDoc.PrintOut(Range:=Word.WdPrintOutRange.wdPrintAllDocument, Item:=Word.WdPrintOutItem.wdPrintDocumentWithMarkup, Copies:=1, PageType:=Word.WdPrintOutPages.wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0)
'All done. Close this form.
Me.Close()
End Sub
Я ожидал, что это будет печать на лоток 5 принтера с размерами 10 "x 13" в альбомной ориентации.Печать из Word напрямую, закомментировав метод .PrintOut и нажав кнопку «Печать» в Word, делает это, но метод .PrintOut заставляет принтер пытаться печатать на бумаге размером 8,5 x 11 дюймов.