|
|
|
| .PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , True, 0, 0, 0, 0
Пытаюсь отправить на 2-хстороннюю печать- не выходит, распечатываетя, но на отдельных листах. Жирным выделен параметр, который отвечает за такую печать.
HELP ME, PLEASE | |
|
| |
|
|
|
| А откуда такой метод PrintOut ? | |
|
| |
|
|
|
| Dim app As Word.Application
With app.ActiveDocument
.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , True, 0, 0, 0, 0
End With | |
|
| |
|
|
|
| если это весь код, то и не будет работать ..
app не создали, документ не создали или не открыли ... | |
|
| |
|
|
|
| Private Sub butNewWord()
Dim app As Word.Application
Dim strDoc As String
Dim strDOT As String
Dim S As String
Dim i As String
On Error GoTo 999
i = Me.pole41.Value
Select Case i
Case "USD"
With Application.CurrentProject
strDOT = .Path & "\" & "USD\USD.dot"
strDoc = .Path & "\" & "USD\USD.doc"
End With
Case "UAH"
With Application.CurrentProject
strDOT = .Path & "\" & "UAH\UA.dot"
strDoc = .Path & "\" & "UAH\UA.doc"
End With
End Select
Set app = New Word.Application
app.Documents.Add strDOT
app.Visible = True
app.CommandBars("Menu Bar").Enabled = False
app.CommandBars("Standard").Enabled = False
app.CommandBars("Formatting").Enabled = False
app.CommandBars("Visual Basic").Enabled = False
app.CommandBars("WordArt").Enabled = False
app.CommandBars("AutoText").Enabled = False
app.CommandBars("Database").Enabled = False
app.CommandBars("Web Tools").Enabled = False
app.CommandBars("Web").Enabled = False
app.CommandBars("Picture").Enabled = False
app.CommandBars("Frames").Enabled = False
app.CommandBars("Reviewing").Enabled = False
app.CommandBars("Drawing").Enabled = False
app.CommandBars("Mail Merge").Enabled = False
app.CommandBars("Word Count").Enabled = False
app.CommandBars("Outlining").Enabled = False
app.CommandBars("Tables and Borders").Enabled = False
app.CommandBars("Forms").Enabled = False
app.CommandBars("E-mail").Enabled = False
app.CommandBars("Control Toolbox").Enabled = False
app.CommandBars("Function Key Display").Enabled = False
With app.ActiveDocument
On Error Resume Next
.Bookmarks.Item("versiya").Range.Text = Me.pole64
.Bookmarks.Item("nomer").Range.Text = Me.pole33
.Bookmarks.Item("famname").Range.Text = Me.pole7 & " " & Me.pole9 & " " & Me.pole11
.Bookmarks.Item("datazakl").Range.Text = Me.pole35
.Bookmarks.Item("datar").Range.Text = Me.pole15
.Bookmarks.Item("mesto").Range.Text = Me.pole13
.Bookmarks.Item("sernompas").Range.Text = Me.pole17
.Bookmarks.Item("datapas").Range.Text = Me.pole19
.Bookmarks.Item("vidanpas").Range.Text = Me.pole21
.Bookmarks.Item("ident").Range.Text = Me.pole5
.Bookmarks.Item("nomkr").Range.Text = Me.pole23
.Bookmarks.Item("datazkr").Range.Text = Me.pole25
.Bookmarks.Item("sum").Range.Text = Me.pole39
.Bookmarks.Item("tarif").Range.Text = Me.pole49
.Bookmarks.Item("premiya").Range.Text = Me.pole51
.Bookmarks.Item("granica").Range.Text = Me.pole53
.Bookmarks.Item("dataok").Range.Text = Me.pole37
Err.Clear
.Protect wdAllowOnlyReading, False, "dsitk,feirb", False, True
.SaveAs strDoc
makros
'***************************
.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , True, 0, 0, 0, 0
On Error GoTo 999
End With
Exit Sub
999:
MsgBox Err.Description
Err.Clear
Set app = Nothing
app.Quit
End Sub | |
|
| |
|
|
|
| Я могу конечно ошибаться, но кажется вы не тот параметр сделали TRUE
У вас выделен ActivePrinterMacGX (14-й по счету), а для 2-х сторонней печати надо ManualDuplexPrint (15-й) он у вас как раз 0 | |
|
| |
|
|
|
| Считать не стал, скопировал и подставил в Immediate window для ActiveDocument, вроде правильно - ManualDuplexPrint ... | |
|
| |
|
|
|
|
| Вот из HELP:
expression.PrintOut(Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight)
1- Background
2 - Append
3- Range
4- OutputFileName
5- From
6- To
7- Item
8- Copies
9- Pages
10- PageType
11- PrintToFile
12- Collate
13- FileName
14- ActivePrinterMacGX
15 - ManualDuplexPrint
16 - PrintZoomColumn
17- PrintZoomRow
18- PrintZoomPaperWidth
19- PrintZoomPaperHeight | |
|
| |
|
|
|
| FileName не используется для Document
FileName Optional Variant. The path and file name of the document to be printed.
If this argument is omitted, Word prints the active document.
(Available only with the Application object.)
|
| |
|
| |
|
|
|
| увидел, понял... | |
|
| |
|
|
|
| А что со свойствами PrintOddPagesInAscendingOrder and PrintEvenPagesInAscendingOrder?
ManualDuplexPrint Optional Variant.
True to print a two-sided document on a printer without a duplex printing kit.
If this argument is True, the PrintBackground and PrintReverse properties are ignored.
Use the PrintOddPagesInAscendingOrder and PrintEvenPagesInAscendingOrder properties to control the output during manual duplex printing.
This argument may not be available to you, depending on the language support (U.S. English, for example)
that you’ve selected or installed.
|
| |
|
| |
|
|
|
| извините, не разбил вручную цитату из Help на строки | |
|
| |
|
|
|
| Не получилось, кто-нибудь пробовал делать такую печать?
Я уже в Wordе создавал макрос->выполнял действия, потом этот код всьавлял к себе и хоть бы хны, все по барабану. | |
|
| |
|
|
|
|
| Private Sub butNewWord1()
Dim app As Word.Application
Dim strDOC As String
Dim strDOT As String
Dim s As String
Dim i As String
On Error GoTo 999
i = Me.pole41.Value
Select Case i
Case "USD"
With Application.CurrentProject
strDOT = .Path & "\" & "USD\USA.dot"
strDOC = .Path & "\" & "USD\USA.doc"
End With
Case "UAH"
With Application.CurrentProject
strDOT = .Path & "\" & "UAH\UAH.dot"
strDOC = .Path & "\" & "UAH\UAH.doc"
End With
End Select
Set app = New Word.Application
app.Documents.Add strDOT
app.Visible = True '
app.CommandBars("Menu Bar").Enabled = True
app.CommandBars("Standard").Enabled = True
With app.ActiveDocument
On Error Resume Next
.Bookmarks.Item("versiya").Range.Text = Me.pole64
.Bookmarks.Item("nomer").Range.Text = Me.pole33
.Bookmarks.Item("famname").Range.Text = Me.pole7 & " " & Me.pole9 & " " & Me.pole11
.Bookmarks.Item("datazakl").Range.Text = Me.pole35
.Bookmarks.Item("datar").Range.Text = Me.pole15
.Bookmarks.Item("mesto").Range.Text = Me.pole13
.Bookmarks.Item("sernompas").Range.Text = Me.pole17
.Bookmarks.Item("datapas").Range.Text = Me.pole19
.Bookmarks.Item("vidanpas").Range.Text = Me.pole21
.Bookmarks.Item("ident").Range.Text = Me.pole5
.Bookmarks.Item("nomkr").Range.Text = Me.pole23
.Bookmarks.Item("datazkr").Range.Text = Me.pole25
.Bookmarks.Item("sum").Range.Text = Me.pole39
.Bookmarks.Item("tarif").Range.Text = Me.pole49
.Bookmarks.Item("premiya").Range.Text = Me.pole51
.Bookmarks.Item("granica").Range.Text = Me.pole53
.Bookmarks.Item("dataok").Range.Text = Me.pole37
Err.Clear
.Protect wdAllowOnlyReading, False, "dsitk,feirb", False, True
.SaveAs strDOC
Options.PrintOddPagesInAscendingOrder = True
Options.PrintEvenPagesInAscendingOrder = False
.PrintOut True, False, wdPrintAllDocument, "", , , wdPrintDocumentContent, 1, "", wdPrintAllPages, False, True, , False, 0, 0, 0, 0
On Error GoTo 999
End With
Exit Sub
999:
MsgBox Err.Description
Err.Clear
Set app = Nothing
app.Quit
End SubПо идее это должна быть 2-хсторонняя печать, но не пашет | |
|
| |
|
|
|
| Вы запускали Word из Access? Тогда вы неправильно использовали Options. Откуда Access VBA должен понять, что речь идет о Word.Options? Надо так:
app.Options.PrintOddPagesInAscendingOrder = True
app.Options.PrintEvenPagesInAscendingOrder = False
|
| |
|
| |
|
|
|
| спасибо но что-то не работает, как еще можно обойти єто?
можно ли как-то вівести диалоговое окно печати? | |
|
| |
|
|
|
| у меня работает.
А открыть диалог печати можно так:
Const wdDialogFilePrint = 88 (&H58)
app.dialogs(wdDialogFilePrint).Display | |
|
| |
|
|
|
| попробую, спасибо за ответ.
Не могли бы Вы показать ваш код где происходит 2-хсторонняя печать? | |
|
| |
|
|
|
| знает кто-нибудь? Помогите- срочно надо!!! | |
|
| |
|
|
|
|
| Что именно кто-то должен знать? Почему у вас не получается?
Я не знаю.
А как надо делать вам уже сказано.
Простой пример
Sub TestDuplexPrint
Dim oDoc As Word.Document
Set oDoc = GetObject("c:\DuplexPrint.doc")
With oDoc
.Application.Options.PrintOddPagesInAscendingOrder = True
.Application.Options.PrintEvenPagesInAscendingOrder = False
.PrintOut ManualDuplexPrint:=True
.Close
End With
Set oDoc = Nothing
End Sub
|
Проверил работу из Access, установив ссылку на Word. Все работает как надо.
Принтер в сетке, использую hp LaserJet 1010 Series Driver.
Не предствляю, чем еще можно вам помочь?
Вы проверяли на простом примере? Из диалога работает? | |
|
| |
|
|
|
| Проверил: с помощью диалога делает двухстороннююю печать(HP LaserJet 1320n).
Установил в References ссылку на Microsoft Word 11.0 Object Library, и все равно не пашет(даже Ваш пример).
В чем может быть проблема?
Выложите работающий пример, пожалуйста! | |
|
| |
|
|
|
| Я вам привел работающий у меня пример. Больше в mdb ничего нет. Запускал из окна отладки. | |
|
| |
|
|
|
| Тогда в чем может быть проблема? | |
|
| |