Prolème avec ".coption" dans pdfCreator

Signaler
Messages postés
19
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
6 mai 2015
-
 Utilisateur anonyme -
Bonjour,

Voici un code vb.net adapté à partir de code vba qui devrait permettre de transférer un fichier en .tif via pdfCreator. Ça a déjà presque marché (du moins, il tranférait les fichiers) mais maintenant, plus moyen de ne rien faire avec (il fait planter VB (system.invalidCastException : Impossible d'effectuer un cast d'un objet COM de type 'PDFCreator.clsPDFCreatorClass' en type d'interface 'PDFCreator._clsPDFCreator'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{0B8C6B1F-E8A4-4CEF-AD85-BE81E55EE79B}' a échoué en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).), je peux le débugger en arrêtant mes deux process (pdfcreator et mon application).
J'espère que vous pourrez voir quelque chose car quand je l'ai copier dans un autre module, ça semblait bien fonctionner.

Merci.

Sub SauvegardeTiff()
'On Error GoTo x
Dim pdfjob As PDFCreator.clsPDFCreator
Dim sPDFName As String
Dim sPDFPath As String
Dim strFichierPdf As String

'/// Change the output file name here! ///
sPDFPath = "O:\Dessins\WorkOrder_Drawing_Tiff\BATCH 2"
sPDFName = Replace(frmTiff.AxEModelViewControl1.FileName, ".dwg", ".tif")
sPDFName = Right(sPDFName, Len(sPDFName) - InStrRev(sPDFName, ""))
sPDFName = sPDFPath & sPDFName
strFichierPdf = frmTiff.AxEModelViewControl1.FileName

pdfjob = New PDFCreator.clsPDFCreator

With pdfjob
.cStart()
.cOption("UseAutosave") = 1
.cOption("UseAutosaveDirectory") = 1
.cOption("AutosaveDirectory") = sPDFPath
.cOption("AutosaveFilename") = sPDFName
.cOption("AutosaveFormat") 5 ' 5 TIF
.cOption("BitmapResolution") = 300
.cOption("TIFFColorscount") = 2
.cSaveOptions()
.cClearCache()
.cPrinterStop = False
.cDefaultPrinter = "PDFCreator"
.cPrintFile(strFichierPdf)
End With
Debug.Print(Err.Number)
'x:
End Sub

Philippe

1 réponse


Bonjour,

Commence par vérifier des définitions de type.
Tu as mis :

Dim pdfjob As PDFCreator.clsPDFCreator 


Ton message d'erreur dit en termes plus familiers que le Framework n'a pas été capable de prendre un objet 'PDFCreator.clsPDFCreatorClass' et de le faire correspondre à l'interface 'PDFCreator._clsPDFCreator'

Personnellement, je te dirais de remplacer ton composant COM par un composant .net.

Il y a entre autres :

Itextsharp (gratuit).

PDFSharp (gratuit).

SharpPDF (gratuit).

Report.net (gratuit).