Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Access et PDFCreator

6 réponses
Avatar
Fabien
Bonjour,
En fouillant sur le net, j'ai degoté ce bout de code :

Attribute VB_Name = "modPDFCreatorAccess"
Option Compare Database
Option Explicit

' Add a reference to PDFCreator

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

Private Const maxTime = 10 ' in seconds
Private Const sleepTime = 250 ' in milliseconds

Public Function Start()
PrintRep "Report1"
End Function

Public Sub PrintRep(RepName As String)
Dim PDFCreator1 As PDFCreator.clsPDFCreator, DefaultPrinter As String,
c As Long, _
OutputFilename As String
Set PDFCreator1 = New clsPDFCreator
With PDFCreator1
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = "C:\"
.cOption("AutosaveFilename") = RepName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
DefaultPrinter = .cDefaultPrinter
.cDefaultPrinter = "PDFCreator"
.cClearCache
DoCmd.OpenReport RepName, acViewNormal
.cPrinterStop = False
End With

c = 0

Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime * 1000 /
sleepTime))
c = c + 1
Sleep 200
Loop

OutputFilename = PDFCreator1.cOutputFilename

With PDFCreator1
.cDefaultPrinter = DefaultPrinter
Sleep 200
.cClose
End With

Sleep 2000 ' Wait until PDFCreator is removed from memory

If OutputFilename = "" Then
MsgBox "Creating pdf file." & vbCrLf & vbCrLf & _
"An error is occured: Time is up!", vbExclamation + vbSystemModal
End If

End Sub
Mais il plante d'entrée sur le mot Attribute. Access ne connait pas ce
mot (moi non plus).
Quelqu'un saurait-il me dire a quoi ça correspond ?
Merci

Ce source est fourni par nos amis de sourceforge dans le dossier
programme de PdfCreator avec quelques autres exemples (c:\program
files\pdfcreator\com\msoffice).

6 réponses

Avatar
Fabien
Bonjour,
En fouillant sur le net, j'ai degoté ce bout de code :

Attribute VB_Name = "modPDFCreatorAccess"
Option Compare Database
Option Explicit

' Add a reference to PDFCreator

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

Private Const maxTime = 10 ' in seconds
Private Const sleepTime = 250 ' in milliseconds

Public Function Start()
PrintRep "Report1"
End Function

Public Sub PrintRep(RepName As String)
Dim PDFCreator1 As PDFCreator.clsPDFCreator, DefaultPrinter As String,
c As Long, _
OutputFilename As String
Set PDFCreator1 = New clsPDFCreator
With PDFCreator1
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = "C:"
.cOption("AutosaveFilename") = RepName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
DefaultPrinter = .cDefaultPrinter
.cDefaultPrinter = "PDFCreator"
.cClearCache
DoCmd.OpenReport RepName, acViewNormal
.cPrinterStop = False
End With

c = 0

Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime * 1000 /
sleepTime))
c = c + 1
Sleep 200
Loop

OutputFilename = PDFCreator1.cOutputFilename

With PDFCreator1
.cDefaultPrinter = DefaultPrinter
Sleep 200
.cClose
End With

Sleep 2000 ' Wait until PDFCreator is removed from memory

If OutputFilename = "" Then
MsgBox "Creating pdf file." & vbCrLf & vbCrLf & _
"An error is occured: Time is up!", vbExclamation + vbSystemModal
End If

End Sub
Mais il plante d'entrée sur le mot Attribute. Access ne connait pas ce
mot (moi non plus).
Quelqu'un saurait-il me dire a quoi ça correspond ?
Merci

Ce source est fourni par nos amis de sourceforge dans le dossier
programme de PdfCreator avec quelques autres exemples (c:program
filespdfcreatorcommsoffice).
Je me répond:

en fait il suffit de mettre cette ligne attribut en commentaire et
d'ajouter la bib Pdfcreator.
Jusque là ca marche ;-)
Merci qui ? Merci moi!

Avatar
Gloops
Salut,

ça, c'est un module qui a été ouvert dans un éditeur de textes au lieu
d'un environnement de développement.

Ce qui était prévu était de lui donner l'extension d'un module, et de
l'ouvrir depuis Access.

On peut effectivement, aussi, créer un nouveau module vierge et y
transférer le contenu par copier/coller, mais dans ce cas,
effectivement, ne pas transférer la ligne Attribute. A la place, on
prend note du nom entre guillemets, et on donne ce nom au module lors de
sa sauvegarde (si tant est que le nom soit important).
_____________________________________
Fabien a écrit, le 01/06/2007 15:13 :
Bonjour,
En fouillant sur le net, j'ai degoté ce bout de code :

Attribute VB_Name = "modPDFCreatorAccess"
Option Compare Database
Option Explicit

Mais il plante d'entrée sur le mot Attribute. Access ne connait pas ce
mot (moi non plus).
Quelqu'un saurait-il me dire a quoi ça correspond ?
Merci

Ce source est fourni par nos amis de sourceforge dans le dossier
programme de PdfCreator avec quelques autres exemples (c:program
filespdfcreatorcommsoffice).
Je me répond:

en fait il suffit de mettre cette ligne attribut en commentaire et
d'ajouter la bib Pdfcreator.
Jusque là ca marche ;-)
Merci qui ? Merci moi!



Avatar
Fabien
Bonjour,
En fouillant sur le net, j'ai degoté ce bout de code :

Attribute VB_Name = "modPDFCreatorAccess"
Option Compare Database
Option Explicit

' Add a reference to PDFCreator

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

Private Const maxTime = 10 ' in seconds
Private Const sleepTime = 250 ' in milliseconds

Public Function Start()
PrintRep "Report1"
End Function

Public Sub PrintRep(RepName As String)
Dim PDFCreator1 As PDFCreator.clsPDFCreator, DefaultPrinter As String,
c As Long, _
OutputFilename As String
Set PDFCreator1 = New clsPDFCreator
With PDFCreator1
.cStart "/NoProcessingAtStartup"
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = "C:"
.cOption("AutosaveFilename") = RepName
.cOption("AutosaveFormat") = 0 ' 0 = PDF
DefaultPrinter = .cDefaultPrinter
.cDefaultPrinter = "PDFCreator"
.cClearCache
DoCmd.OpenReport RepName, acViewNormal
.cPrinterStop = False
End With

c = 0

Do While (PDFCreator1.cOutputFilename = "") And (c < (maxTime * 1000 /
sleepTime))
c = c + 1
Sleep 200
Loop

OutputFilename = PDFCreator1.cOutputFilename

With PDFCreator1
.cDefaultPrinter = DefaultPrinter
Sleep 200
.cClose
End With

Sleep 2000 ' Wait until PDFCreator is removed from memory

If OutputFilename = "" Then
MsgBox "Creating pdf file." & vbCrLf & vbCrLf & _
"An error is occured: Time is up!", vbExclamation + vbSystemModal
End If

End Sub
Mais il plante d'entrée sur le mot Attribute. Access ne connait pas ce
mot (moi non plus).
Quelqu'un saurait-il me dire a quoi ça correspond ?
Merci

Ce source est fourni par nos amis de sourceforge dans le dossier
programme de PdfCreator avec quelques autres exemples (c:program
filespdfcreatorcommsoffice).
Suite...

J'ai essayé ma base sur un autre poste et m...... ca marche pas.
Aprés le clic sur mon bouton m'apparait la fenetre classique de
PdfCreator me demandant où sauvegarder, quoi sauvegarder .....

Alors j'ai repris mes recherches et j'ai trouvé ça:
http://www.lebans.com/reporttopdf.htm
Avec 2 dll on s'affranchit des convertisseurs (enfin je crois).
Le seul bémol c'est que contrairement au code ci-dessus, celui-ci passe
par la création d'un snapshot qu'il convertit en PDF.
De plus (ou de moins), la possibilté de filtrer lors de l'appel de
l'état disparait. Il faut contourner par la création dynamique d'une
requete qui alimente l'état.
Voilà
si ça peut être utile a d'autres ...

Avatar
Gloops
Fabien a écrit, le 04/06/2007 10:25 :
Suite...
J'ai essayé ma base sur un autre poste et m...... ca marche pas.
Aprés le clic sur mon bouton m'apparait la fenetre classique de
PdfCreator me demandant où sauvegarder, quoi sauvegarder .....



Salut,

Je me demande si il s'agit du même PDFCreator que celui que je connais.

Celui-ci crèche là :
http://www.PDFCreator.de.vu/
http://sourceforge.net/projects/PDFCreator/


et le moyen le plus simple de s'en servir est de le considérer comme un e
imprimante.

Au moment de l'impression (vers ... l'imprimante cette fois), Acrobat
Reader propose des fonctions intéressantes, comme d'imprimer plusieurs
pages sur une seule, ou d'imprimer la sélection, ou encore de gérer l e
zoom d'impression.

ça fait un bon bout de temps que je m'en sers, ça serait décevant
d'apprendre qu'ils ont perdu en clarté.

Avatar
Gloops
Gloops a écrit, le 04/06/2007 22:08 :
et le moyen le plus simple de s'en servir est de le considérer comme une
imprimante.



Quelquefois je devrais un peu réfléchir au newsgroup dans lequel je s uis.

C'est vrai que si on veut convertir un document quelconque en PDF sans
rien afficher à l'écran, l'interface imprimante, ce n'est pas telleme nt ça.

Bon, je crois que je vais arrêter pour ce soir.

Avatar
Fabien
Gloops a écrit, le 04/06/2007 22:08 :
et le moyen le plus simple de s'en servir est de le considérer comme
une imprimante.



Quelquefois je devrais un peu réfléchir au newsgroup dans lequel je suis.

C'est vrai que si on veut convertir un document quelconque en PDF sans
rien afficher à l'écran, l'interface imprimante, ce n'est pas tellement ça.

Bon, je crois que je vais arrêter pour ce soir.
Bonjour Gloops,

Bien dormi ?
Alors oui c'est bien le PdfCreator que tu connais.
Et oui il est toujours aussi clair.
Et dans le cas d'utilisation que j'en fais je ne souhaite pas voir
d'interface ni celle de l'imprimante, ni celle de PdfCreator.
Aprés une analyse un peu plus précise je crois bien que mon soucis avec
PDFCreator ne vient pas de lui mais de l'état que je souhaite convertir.
Celui-ci contenait un lien vers une image présente sur le poste 1 qui
n'existait pas sur le poste 2 => erreur dans l'état = comportement
inattendu de PDFcreator.
C'est en testant le même etat sur le poste 2 et en demandant un export
au format snp que j'ai compris.
Donc les deux solutions (Avec PdfCreator et sans) fonctionnent.
Voilà
@+
Fabien