API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Settings

La braise

XLDnaute Occasionnel
Bonjour à Tous,

Une question un poil technique. :cool:

Dans le cadre d'un développement Excel et précisément l'impression de pdf, je suis obligé d’utiliser Acrobat Distiller!
:mad:

Une fois passé le problème de l’activation de la référence, si celle-ci n'est pas activé ou si celle si n'est pas présente...
Une fois passé le problème d'identifier le nom de l'imprimante sur le réseau, de l'activer et de l'utiliser...

Je rencontre le pbm suivant :

Il est nécessaire d'aller manuellement dans les propriétés de l'imprimante Adobe Pdf pour modifier les "Printing Preferences" en décochant l'option "Rely on system fonts" afin de ne pas générer d'erreur.

Mon souhait, effectuer ce "décochage" à l'aide de vba.

Après de longues erreur de récherche... il semblerait que la solution réside dans l'API de Distiller.
J'ai eu beau récupérer et lire le "API Distiller reference"... pas un mot sur la question :mad::mad::mad:

Ce post est un SOS :D:D:D:D

Si quelqu'un a une idée, ou rêvons un peu déjà rencontré (et solutionné :D) ce problème, vous êtes les bienvenus.

D'avance merci pour votre aide.
 
C

Compte Supprimé 979

Guest
Re : API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Set

Bonjour La braise ;)

Apparemment se paramètre est inscrit dans la base de registre
HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts: 0x00000000


Je pense qu'il suffit donc de modifier la BdR avec ses 2 fonctions
Code:
Function RegWrite(Clé As String, Valeur As String, Optional LeType As String = "REG_SZ")
    Set WSh = CreateObject("WScript.Shell")
    WSh.RegWrite Clé, Valeur, LeType
End Function

Function RegRead(Valeur As String)
'lire la valeur dans la BDR
    Set WSh = CreateObject("WScript.Shell")
    strTemp = WSh.RegRead(Valeur)
    RegRead = strTemp
End Function

A+
 

La braise

XLDnaute Occasionnel
Re : API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Set

BrunoM45,

Bon ça avance...

J'arrive à lire la valeur :

RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts")
:D

Quand je modifie l'option manuellement via "Option Imprimantes" et que je lis la valeur à nouveau, la modif a bien été prise en compte.
:D

Par contre, quand je modifie la clef à la main dans la base de registre, la modif est bien prise en compte dans la base de registre, mais pas dans les options de l'imprimante quand je vérife, puis quand je retourne vérifier dans la base de registre ma modif précédente a été annulée.
:mad:

De plus, je n 'arrive pas à écrire dedans à l'aide de RegWrite:
RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts", 0
:confused:

Est-ce que j'aurais zappé une étape???

Merci d'avance pour ton aide.
 
C

Compte Supprimé 979

Guest
Re : API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Set

Re,

Sur mon PC de cette façon là, ça fonctionne parfaitement
Code:
Function RegWrite(Clé As String, Valeur As String, Optional LeType As String = "REG_SZ")    Set WSh = CreateObject("WScript.Shell")
    WSh.RegWrite Clé, Valeur, LeType
End Function


Function RegRead(Valeur As String)
'lire la valeur dans la BDR
    Set WSh = CreateObject("WScript.Shell")
    strTemp = WSh.RegRead(Valeur)
    RegRead = strTemp
End Function


Sub Test()
  RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts", 0, "REG_DWORD"
End Sub
Peut-être le "HKLM" en entier et le type de clé qui est "REG_DWORD"

A+
 

La braise

XLDnaute Occasionnel
Re : API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Set

Bruno,

Je pense que le pbm vient du fait que je n'ai pas les droits administrateurs pour écrire dans la base de registre.
:mad:

J'en réferre (sans trop d'espoir...) à qui de droit... :cool:

Merci pour ton aide précieuse et efficace sur mon problème.
 
C

Compte Supprimé 979

Guest
Re : API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Set

Re,

Cela te dis "Invalid root in registry key" = mauvais chemin de clé de registre
Et tu as laissé "HKLM" apparemment !?

A+
 

La braise

XLDnaute Occasionnel
Re : API Acrobat Distiller - Décochez Option "Rely on system font" dans Adobe PDF Set

Bruno,

J'ai essayé avec le nom complet et le nom court, même résultat. :mad:

Ce qui est perturbant c'est que dans mon code :
je lui demande de lire la clef et en fonction de la valeur retournée la modifier.
La lecture fonctionne très bien (vérifiée avec espion et Msgbox) mais pas l'écriture.

j'en suis là :

Set Shell = CreateObject("wscript.shell")
RegKey = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\Adobe PDF\PrinterDriverData\DistillerHostFontHasMostFonts"
On Error GoTo DistillerAmodify
If Shell.RegRead(RegKey) = 1 Then Shell.RegWrite RegKey, 0, "REG_DWORD"

avec un lamentable : :mad::mad::mad:

DistillerAmodify:
Msgbox "merci de faire le paramétrage manuellement!"



J'ai fait quelques tests et je peux écrire dans la base sur : HKEY_CURRENT_USER\ mais pas sur HKEY_LOCAL_MACHINE\
je pense que c'est un pbm de droits.
 
Dernière édition:

Statistiques des forums

Discussions
312 347
Messages
2 087 502
Membres
103 563
dernier inscrit
samyezzehar