Toon posts:

[WORD] Automatisch afdrukken document

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Kan ik met een batch file automatisch een word document laten printen ? Net zoiets als rmk afdrukken in windows maar dan automatisch dus.

Ben nu tot zover

c:\progra~1\micros~2\office\winword p:\test.doc

  • DaRoot
  • Registratie: Maart 2001
  • Laatst online: 08-09 20:51

DaRoot

Some say...

Plaats een snelkoppeling naar je printer op je bureaublad, en sleep het document vanuit de verkenner er naar toe... zou ook moeten werken...

Edit:
moet dus persé via batch file...
Als ik vragen mag, wat is precies de bedoeling? misschien wil het wel op een andere manier dan via een batch file...

[ Voor 37% gewijzigd door DaRoot op 05-06-2003 15:51 ]

Insured by MAFIA - You hit me, we hit you!!!


  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 16:00

Super_ik

haklust!

volgens mij moet je bij c:\progra~1\micros~2\office\winword p:\test.doc nog -print of -p doen ofzoiets, is vast wel te vinden op google ofzo

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Microsoft.com -> WD: Word Startup (Command-Line) Switches and Their Purpose
en dan een macro aanroepen. Alternatief: kijk hoe het in je register gebeurt.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
/print -print -p /p werken helaas niet

Verwijderd

Topicstarter
/mmacronaam werkt alleen sluit hij word daarna niet af

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 17:29
mag je niet gewoon het print commando geven o.i.d.?
code:
1
print c:\program files\word\word.exe c:\mijn documenten\document.doc

Verwijderd

Topicstarter
Het enige nadeel van het commando print is dat hij niet het juiste programma erbij gebruikt. Dus dan print hij IQ@Y(#*@)*(#&)$(^)@($)(#@*)9 (onzin dus ;) )

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 17:29
Das toch jammer idd ;)
/mmacronaam werkt alleen sluit hij word daarna niet af
Dan laat je het macro word toch gewoon afsluiten?

Verwijderd

Topicstarter
djluc schreef op 05 June 2003 @ 17:47:
Das toch jammer idd ;)

[...]

Dan laat je het macro word toch gewoon afsluiten?
Geniaal _/-\o_ dat ik daar zelf nog niet aan gedacht had :?

  • Speed24
  • Registratie: Augustus 1999
  • Niet online
Verwijderd schreef op 05 juni 2003 @ 21:13:
[...]


Geniaal _/-\o_ dat ik daar zelf nog niet aan gedacht had :?
Ja? Wat is daar tegen?

Gewoon
code:
1
2
ThisDocument.Close
Application.Quit


Dat werkt toch? Eventueel die eerste regel nog weglaten.

Verwijderd

Topicstarter
Als ik via

ThisDocument.Close
Application.Quit

Eruit ga dan is dit te snel waardoor Word de opdracht nog niet in de afdrukrij heeft kunnen zetten. Kan ik een Delay in Visual Basic zetten?

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 01-09 09:29

Schonhose

Retro Icoon

Visual Basic:
1
2
3
4
5
6
7
8
9
Sub HaveABreak(iSeconds As Integer)
Dim lPauseTime As Long
Dim lStart As Long
  lPauseTime = iSeconds
  lStart = Timer
  Do While Timer < lStart + lPauseTime
    DoEvents
  Loop
End Sub


of via

Visual Basic:
1
2
3
4
5
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
   Call Sleep(1000)  '1 seconds
End Sub

[ Voor 89% gewijzigd door Schonhose op 06-06-2003 09:10 ]

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Verwijderd

Topicstarter
Application.Wait werkt niet in Word 2000 :(

Verwijderd

Topicstarter
Ik heb dit nu maar krijg foutmeldingen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 afdrukken(iSeconds As Integer)
    Dim lPauseTime As Long
    Dim lStart As Long
    
'
' afdrukken Macro
' Macro opgenomen op 05-06-03 door Paul Verkooijen
'

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
        PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
 
    lPauseTime = iSeconds
    lStart = Timer
    Do While Timer < lStart + lPauseTime
        DoEvents
    Loop
    
    ThisDocument.Close
    Application.Quit
End Sub

[ Voor 6% gewijzigd door Verwijderd op 10-06-2003 14:12 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 17:29
Misschien evne tussen iets van code tags zetten en niet zoveel berichten achter elkaar zetten, dat leest wat fijner.

Verder zou het leuk zijn om te weten wat er precies fout gaat en welke meldingen je krijgt. ;)

Verwijderd

Topicstarter
Nou het werkte eigenlijk helemaal niet met het vorige voorbeeld. Als ik de 2e oplossing probeer dan krijg ik dat opmerkingen enkel achter End Sub of Function mag. :?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub afdrukken()

    '
    ' afdrukken Macro
    ' Macro opgenomen op 05-06-03 door Paul Verkooijen
    '

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
    PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Sub test()
       Call Sleep(1000)  '1 seconds
    End Sub


    ThisDocument.Close
    Application.Quit
    
End Sub

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 01-09 09:29

Schonhose

Retro Icoon

Verwijderd schreef op 10 juni 2003 @ 14:11:
Nou het werkte eigenlijk helemaal niet met het vorige voorbeeld. Als ik de 2e oplossing probeer dan krijg ik dat opmerkingen enkel achter End Sub of Function mag. :?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub afdrukken()

    '
    ' afdrukken Macro
    ' Macro opgenomen op 05-06-03 door Paul Verkooijen
    '

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
    PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

    Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

    Sub test()
       Call Sleep(1000)  '1 seconds
    End Sub


    ThisDocument.Close
    Application.Quit
    
End Sub
Ja dat klopt.

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

De in bold weergegeven declaratie hoort ook buiten je sub staan. Gooi deze maar eens boven in je module en je zult zien dat het dan wel werkt.

In mijn voorbeeld staat hij ook buiten de sub!!!! [rml]Athos in "[ WORD] Automatisch afdrukken document"[/rml]

En je hebt een sub in een sub staan. Dat kan ook niet, dus haal deze regels maar eens weg uit je code:

Sub test()
Call Sleep(1000) '1 seconds
End Sub

en dat Application.Wait niet werkte kwam ik ook achter tijdens het testen, maar dat was het eerste wat in mij opkwam.... :o

Als je er niet uitkomt mail dan het Word document maar even naar mij, dan fix ik het wel even voor je.

Ach laat ik de goede code maar even heen zetten:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub afdrukken()

    '
    ' afdrukken Macro
    ' Macro opgenomen op 05-06-03 door Paul Verkooijen
    '

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
    PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0


    Call Sleep(1000)  '1 seconds


    ThisDocument.Close
    Application.Quit
    
End Sub

[ Voor 34% gewijzigd door Schonhose op 10-06-2003 14:59 ]

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Verwijderd

Topicstarter
Athos, had je 'm toevallig ook uitgeprobeerd ? Hij wacht namelijk wel, alleen heel Word wacht ipv alleen de macro. Hij komt dus nog steeds met de melding dat hij nog aan het afdrukken is.

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

normaal kun je met rechtsklikken op je document ook op "print" terecht daar hangt in de registry naurrlijk een beetje code aan

code:
1
[REM _DDE_Minimize][FileOpen("%1")][t=IsDocumentDirty()][FilePrint 0][SetDocumentDirty t][DocClose]

dit in een ander stukkie
code:
1
[FileOpen("%1")][FilePrint 0][FileExit 2]



ik weet niet precies hoe dat dde gebeuren werkt (heb ff geexperimenteerd) maar het is een idee ........
(om het mischien zonder macro's te doen?)

Iperf


  • Schonhose
  • Registratie: April 2000
  • Laatst online: 01-09 09:29

Schonhose

Retro Icoon

Verwijderd schreef op 10 juni 2003 @ 16:29:
Athos, had je 'm toevallig ook uitgeprobeerd ? Hij wacht namelijk wel, alleen heel Word wacht ipv alleen de macro. Hij komt dus nog steeds met de melding dat hij nog aan het afdrukken is.
Heb je al geprobeerd om hem langer te laten wachten? Hij zou gewoon moeten doorprinten naar mijn idee.

Wat je ook nog kan doen is heel primitief met een loopje.

Probeer deze module eens:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub afdrukken()

    '
    ' afdrukken Macro
    ' Macro opgenomen op 05-06-03 door Paul Verkooijen
    '
    dim teller as long

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
    PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0


    'Call Sleep(1000)  '1 seconds
    For teller = 1 to 99999999
    next teller


    ThisDocument.Close
    Application.Quit
    
End Sub


Das 1 oplossing. De volgende oplossing is dat je vraagt of het document goed is afgedrukt. Wanneer de gebruiker dan op "OK" drukt gaat de macro verder:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub afdrukken()

    '
    ' afdrukken Macro
    ' Macro opgenomen op 05-06-03 door Paul Verkooijen
    '
    Dim MsgPrintResult As Integer

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
    PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

   
    MsgPrintResult = MsgBox("Wacht tot het document is afgedrukt " & vbCrLf _
    & "en controleer of dit goed gegaan is." & vbCrLf & vbCrLf _
    & "Druk op OK om door te gaan.", vbInformation, "Document afdrukken")
    
    If MsgPrintResult = vbOK Then
       ThisDocument.Close
       Application.Quit
    End If
        
End Sub

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005


Verwijderd

Topicstarter
De eerste werkt eigenlijk hetzelfde als wat ik al had, en je ziet wel dat de balk voor het printen begint, maar daarna begint de wait ipv het kleine printerje wat onder in word moet verschijnen. Deze begint dus na de wait.

  • Schonhose
  • Registratie: April 2000
  • Laatst online: 01-09 09:29

Schonhose

Retro Icoon

En die optie die ik aandroeg met de msgbox.... is dat wat?

Anders probeer deze even:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub afdrukken()

    '
    ' afdrukken Macro
    ' Macro opgenomen op 05-06-03 door Paul Verkooijen
    '

    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
    wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
    Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, _
    PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0

    DoEvents
    Call Sleep(1000)  '1 seconds


    ThisDocument.Close (False)
    Application.Quit
    
End Sub


Trouwens: Word wordt bij mij niet gesloten omdat wanneer ThisDocument.Close (False) ook de macro afsluit zodat het laatste statement niet wordt uitgevoerd.

Die False is trouwens om de vraag of je veranderingen wilt opslaan te beantwoorden met nee. Wanneer je dit wel wilt vul dan True in. Je zult nu niet meer worden lastig gevallen door de vraag of je de wijzigingen wilt bewaren.

[ Voor 91% gewijzigd door Schonhose op 12-06-2003 07:56 ]

"The thing under my bed waiting to grab my ankle isn't real. I know that, and I also know that if I'm careful to keep my foot under the covers, it will never be able to grab my ankle." - Stephen King
Quinta: 3 januari 2005

Pagina: 1