Bonjour,
Savez-vous si il est possible d'imprimer dans un fichier *.PRN via une API ?
Merci,
ZiP
Bonjour,
Savez-vous si il est possible d'imprimer dans un fichier *.PRN via une API ?
Merci,
ZiP
La fonction qui lance l'impression d'un DC est StartDoc, voir l'exemple de code d'impression de MSDN (tu peux ne conserver que le nécessaire ...). Si tu veux imprimer dans un fichier, spécifie tout simplement le nom du fichier dans le membre lpszOutput de ta structure DOCINFO. L'extension communément utilisée (puisque c'est l'extension utilisée par Windows) est .prn mais ce n'est pas l'extension qui est le plus important, mais le contenu du fichier.
Merci, je vais explorer cette piste !
ZiP
Bonjour Melem,
J'ai besoin d'utiliser pour StartDoc :
Cependant, il ne semble pas exister en VBA (Access 97) !
Code : Sélectionner tout - Visualiser dans une fenêtre à part Printer.hdc
Connaissez-vous un équivalent VBA ?
Merci,
ZiP
J'ai avancé dans mes recherches !
J'ai un code VBA qui me passe un .doc en .prn :
Je voudrais pouvoir le faire pour toutes les applications...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Option Compare Database Option Explicit Private Sub Test() ImprimerDOCDansPRN "Brother HL-5240 series", "C:\Temp\Test.doc", "C:\Temp\Test.prn" End Sub Private Sub ImprimerDOCDansPRN(Imprimante As String, FichierDOC As String, FichierPRN As String) Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim hwnd As Long Dim iii As Long Dim lObjhWnd As Long Set WordApp = CreateObject("Word.Application") WordApp.Visible = True WordApp.ActivePrinter = Imprimante Set WordDoc = WordApp.Documents.Open(FichierDOC, ReadOnly:=True) WordApp.PrintOut PrintToFile:=True, OutputFileName:=FichierPRN WordDoc.Close WordApp.Quit Set WordDoc = Nothing Set WordApp = Nothing End Sub
J'ai donc commencé à développer un bout de code :
Mais je ne sais pas comment prendre en compte mon document...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78 Option Compare Database Option Explicit Const CCDEVICENAME = 32 Const CCFORMNAME = 32 Private Type DOCINFO cbSize As Long lpszDocName As String lpszOutput As String lpszDatatype As String fwType As Long End Type Private Type DEVMODE dmDeviceName As String * CCDEVICENAME dmSpecVersion As Integer dmDriverVersion As Integer dmSize As Integer dmDriverExtra As Integer dmFields As Long dmOrientation As Integer dmPaperSize As Integer dmPaperLength As Integer dmPaperWidth As Integer dmScale As Integer dmCopies As Integer dmDefaultSource As Integer dmPrintQuality As Integer dmColor As Integer dmDuplex As Integer dmYResolution As Integer dmTTOption As Integer dmCollate As Integer dmFormName As String * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Any) As Long Declare Function EndDoc Lib "gdi32" (ByVal hdc As Long) As Long Declare Function StartDoc Lib "gdi32" Alias "StartDocA" (ByVal hdc As Long, lpdi As DOCINFO) As Long Private Sub ImprimerPRN(Imprimante As String, FichierEntree As String, FichierSortie As String) Dim DI As DOCINFO Dim PrinterDC As Long ' On renseigne notre structure DOCINFO DI.cbSize = Len(DI) DI.lpszDocName = "MonJob" DI.lpszOutput = FichierSortie DI.lpszDatatype = vbNullString PrinterDC = CreateDC(vbNullString, Imprimante, vbNullString, ByVal 0&) ' On commence un job Call StartDoc(PrinterDC, DI) ' On commence une page 'Call StartPage(PrinterDC) ' ici on ajoute les data... ' On termine une page 'Call EndPage(PrinterDC) ' On termine le job Call EndDoc(PrinterDC) End Sub Private Sub Test() ImprimerPRN "Brother HL-5240 series", "C:\Temp\Test.doc", "C:\Temp\Test.prn" End Sub
Peut-être que ma méthode n'est pas la bonne, en connaissez-vous une meilleure ?
Je voudrais imprimer tous les documents (*.doc, *.pdf, *.jpg, etc.) sous forme de fichier *.prn.
L'information semble stockée dans la structure DOCINFO (lpszOutput) et utilisée par StartDoc.
Je ne sais pas comment donner cette information à l'imprimante au moment de l'impression des documents.
Merci,
ZiP
Partager