objselection.font.name changes to calibri



我遇到了一个让我头疼的小问题。我已经建立了一个VBScript签名创建脚本,从AD中提取用户信息,并将其应用于我们所有用户的签名。效果很好,我很满意。除了一个问题。我已经搜索过了,虽然我发现其他人有同样的问题,但我没能找到任何解决方案。


首先,介绍一下脚本的背景信息:

脚本设置为使用以下对象来配置签名,参见Microsoft的文章。

Word.Application.EmailOptions.EmailSignature.EmailSignatureEntries

然后,在整个脚本中,我不得不多次更改字体。要做到这一点,我使用这样的行:

objSelection.Font.Name = "Times New Roman"

这对我和我们的大多数用户来说都很好。然而,我的一位技术人员之前将Word的默认字体更改为Times New Roman。当我为他运行脚本时,应该是TNR的行,而不是显示为Calibri。由于我们运行的是Office 2007, Word中最初的默认字体是Calibri。我在自己的电脑和另一台电脑上测试了更改默认字体的情况,两次都出现了同样的问题。

我之前链接到的technet海报指出,原始文档的所有字体都是正确的。只有当"EmailSignatureEntries"将其保存为RTF和HTML用作签名时,字体才会混淆。

我真的被这个难住了。任何帮助将不胜感激!:)

我在为我的公司创建一个自动填充AD的新签名时偶然发现了同样的问题。从我在互联网上找到的东西来看,当签名的字体与Word的Normal.dot(m)中的字体相同时,就会出现问题。

例如

;我的公司希望Arial 10作为Word、Excel和Outlook的默认字体。所以我当然修改了所有需要的文件,并安排了一个GPO来完成这个工作。一切正常,Word等将Arial作为默认字体。

现在当我运行我的签名。vbs脚本,其中也指出,字体应该是Arial的结果将永远是Calibri作为字体奇怪的足够。我摆弄了一下,发现我可以用Arial以外的任何字体,它都可以工作,除了Arial。

这让我发疯了2天,然后它击中了我;—如果我在用户配置文件中放置临时normal.dot(m)(默认字体为Calibri),然后用VBS创建签名,然后在配置文件中放置合适的normal.dot(m),会怎么样?

事实证明,这确实奏效了。所以我拿出了Normal.dot(m)的文件放置GPO,并在我的批处理脚本中集成了临时副本,运行vbs,最终副本,该脚本也触发了signature.vbs.

这是我的批代码,你可能要适应自己的需要,但它给出了基本的想法。我已经添加了英语翻译的评论,这样你就不用学荷兰语了:)

希望这对你和任何仍在寻找"解决方案"的人有所帮助。

@echo off
REM Verwijder alle default word templates in het userprofile (niet meer via GPO)
REM Remove all default Word templates in the userprofile (no longer through GPO)
DEL /F /Q %userprofile%AppDataRoamingMicrosoftSjablonenNormal.dotm
DEL /F /Q %userprofile%AppDataRoamingMicrosoftTemplatesNormal.dotm
DEL /F /Q %userprofile%AppDataRoamingMicrosoftSjablonenNormalEmail.dotm
DEL /F /Q %userprofile%AppDataRoamingMicrosoftTemplatesNormalEmail.dotm
REM Check of het Handtekeningscript al gelopen heeft, zoja ga over tot plaatsen juiste normal.dotm
REM Check if the signaturescript already ran, if so copy the proper normal.dotm
IF EXIST %homeshare%pvfsig.txt goto copynormal
REM Plaats een tijdelijke Normal.dotm ivm een conversie issue als je default Arial hebt (wordt Calibri)
REM Copy a temporary Normal.dotm in the profile so the conversion problem with the Default font won't occur.
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_met_calibriNormal.dotm %userprofile%AppDataRoamingMicrosoftSjablonenNormal.dotm
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_met_calibriNormal.dotm %userprofile%AppDataRoamingMicrosoftTemplatesNormal.dotm
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_met_calibriNormalEmail.dotm %userprofile%AppDataRoamingMicrosoftSjablonenNormalEmail.dotm
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_met_calibriNormalEmail.dotm %userprofile%AppDataRoamingMicrosoftTemplatesNormalEmail.dotm
REM Start Handtekening VBS script om de handtekening te genereren
REM Start signature VBS script to generate the signature
cscript \pvfnetlogonscriptshuisstijloutlooksig_new.vbs
REM Verwijder tijdelijke Normal.dotm bestanden
REM Remove the temporary Normal.dotm files
DEL /F /Q %userprofile%AppDataRoamingMicrosoftSjablonenNormal.dotm
DEL /F /Q %userprofile%AppDataRoamingMicrosoftTemplatesNormal.dotm
DEL /F /Q %userprofile%AppDataRoamingMicrosoftSjablonenNormalEmail.dotm
DEL /F /Q %userprofile%AppDataRoamingMicrosoftTemplatesNormalEmail.dotm
REM Creeer een check bestand op de Homedirectory v/d gebruiker
REM Create a checkfile in the users homedirectory
echo pvf standaard handtekening is aangemaakt > %homeshare%pvfsig.txt
REM Kopieeren van juiste normal.dotm bestanden (met Arial)
REM Copy the proper normal.dotm files into place
:copynormal
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_pvf_huisstijlNormal.dotm %userprofile%AppDataRoamingMicrosoftSjablonenNormal.dotm
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_pvf_huisstijlNormal.dotm %userprofile%AppDataRoamingMicrosoftTemplatesNormal.dotm
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_pvf_huisstijlNormalEmail.dotm %userprofile%AppDataRoamingMicrosoftSjablonenNormalEmail.dotm
COPY /Y /Z \pvfnetlogonScriptshuisstijlnormal_pvf_huisstijlNormalEmail.dotm %userprofile%AppDataRoamingMicrosoftTemplatesNormalEmail.dotm
:end
EXIT

相关内容

  • 没有找到相关文章

最新更新