我一直在撞墙,试图找出下面错误的原因。
我正在做的就是运行这个非常简单的CFPDFFORM来填充PDF表单。
<cfset source = expandPath("Customer.pdf")>
<cfpdfform action="populate" source="#source#">
<cfpdfformparam name="Name" value="John Doe">
<cfpdfformparam name="Address" value="123 Test Cir">
<cfpdfformparam name="City" value="Some City">
<cfpdfformparam name="State" value="Some State">
<cfpdfformparam name="Zip" value="11111">
<cfpdfformparam name="Phone" value="123-456-7890">
</cfpdfform>
我做了很多搜索,发现很少有人在谈论这个错误。我找到的一页是ColdFusion CFPDFFORM does not populate PDF form fields。我尝试了通过我的字体并寻找损坏的字体的想法。我甚至使用了一个名为Fix Fonts Folder(http://fix-fonts-folder.en.softonic.com/)的程序,它可以找到一些损坏的字体。但即便如此,我仍然得到错误。所以,我拼命寻找答案。
以防万一,我在Windows 7上运行ColdFusion 10 Update 9.
提前致谢。
答案 0 :(得分:6)
我编写了一个脚本,它将解析c:\ windows \ fonts中的所有字体文件并报告错误的字体文件:
<cfset fontobj = createobject("java","com.adobe.fontengine.fontmanagement.FontLoader")>
<cfdirectory action="list" directory="c:\windows\fonts" name="fontdir">
<table border="1" style="border-collapse:collapse">
<tr>
<th>Font Name:</th>
<th>Error</th>
</tr>
<cfloop query="fontdir">
<cftry>
<cfset loaded = fontobj.load(createobject("java","java.net.URL").init("file:///C|/windows/fonts/#fontdir.name#"))>
<cfif arraylen(loaded) gt 0>
<cfset dummy="#loaded[1].getPlatformFontDescription()[1].toString()#" >
</cfif>
<cfcatch>
<cfif findnocase("platform",cfcatch.message)>
<tr>
<td><cfoutput>#fontdir.name#</cfoutput></td>
<td><cfoutput>#cfcatch.message#</cfoutput></td>
</tr>
</cfif>
</cfcatch>
</cftry>
</cfloop>
</table>
答案 1 :(得分:4)
安装CS6.0后,我也遇到了同样的问题。
平台:
通过反复试验,如上所述,并且很好地重新启动了coldfusion,我将其缩减为以下字体文件,您可以通过字体管理器卸载 C:\ Windows \ Fonts : -
希望这有助于某人。花了我几个小时来解决这个问题&#34; niggle&#34;。
答案 2 :(得分:2)
报告的bug的解决方法解决了这个问题。谢谢Miguel-F
解决方法是:“删除安装的所有字体与创意云6应用安装的日期相同或卸载广告素材可以6”
答案 3 :(得分:2)
我自己也有同样的问题。
我的解决方案(补充上述正确答案): 以下是Adobe随Creative Suite 6安装的字体列表: http://www.adobe.com/type/browser/fontinstall/cs6installedfonts.html
在我的情况下,事实证明这些字体本身都没有损坏,但可能没有像Windows那样安装。手动重新安装它可以解决问题。
还有一点需要注意:我已经删除了所有内容,直到MyriadPro(包括它)不断刷新包含CFPDFFORM位的页面,直到它工作为止。因此,对于那些试图快速修复的人,我建议从MyriadPro系列开始。它可能会发现它是破坏事物的那个。
希望这可以帮助别人!
///////////////更新日期7/02/2014 ////////////////////////// /////////////////////////////////////////
事实证明,在获得一定数量的积分之前我无法发表评论,因此我无法说出Jesse Carlton的回答(上图)对我有多大帮助。
这是解决我错误的又一步:
事实证明,某些Adobe安装的字体的名称值为null,因此cfpdfform严重失败。要查找这些文件,请使用Jesse Carlton创建的脚本(再次,它在上面的答案中)
至少在我的情况下,所有这些字体都有重复值(正常和_0个)。使用Windows字体管理器可以看到正常值并易于删除。但是,_0个不可见。
下载FontExpert2014(或任何其他字体管理器)等软件,找到您在Windows字体管理器中看不到的文件。
要检查是否删除了所有损坏的字体,请再次运行步骤1中的脚本。如果你得到空表,请尝试以前失败的cfpdfform位,一切都应该是好的。
*步骤3中的软件作为评估版下载并为我做了诀窍。