4

我一直在用头撞墙,试图找出下面错误的原因。

在此处输入图像描述

我正在做的就是运行这个非常简单的 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 不填充 PDF 表单域。我尝试了浏览我的字体并寻找损坏的字体的想法。我什至使用了一个名为 Fix Fonts Folder ( http://fix-fonts-folder.en.softonic.com/ ) 的程序,它能够找到一些损坏的字体。但即便如此,我仍然得到错误。所以,我拼命地寻找答案。

以防万一,我在 Windows 7 上运行 ColdFusion 10 Update 9。

提前致谢。

4

4 回答 4

7

我编写了一个脚本,它将解析 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>
于 2013-12-05T19:12:35.873 回答
4

安装 CS6.0 后我也遇到了同样的问题。

平台:

  • CF9.0
  • 赢 7
  • CS6(显然)

通过反复试验,如上所述,并重新启动了几次coldfusion,我将其缩减为以下字体文件,您可以通过字体管理器转到C:\ Windows \ Fonts来卸载它们:-

  • AdobeNaskh-Medium.otf
  • MyriadArabic-Bold.otf
  • MyriadArabic-BoldIt.otf
  • MyriadArabic-It.otf
  • MyriadArabic-Regular.otf

希望这可以帮助某人。我花了几个小时来解决这个“小问题”。

于 2013-07-16T16:52:28.017 回答
2

The workaround on the reported bug solved the issue. Thanks Miguel-F

The workaround is: "delete all fonts installed with the same date as your creative cloud 6 app installations or uninstall creative could 6"

于 2013-06-06T14:46:48.223 回答
2

我自己也有同样的问题。

我的解决方案(补充了上述正确答案):这是 Adob​​e 使用 Creative Suite 6 安装的字体列表:http: //www.adobe.com/type/browser/fontinstall/cs6installedfonts.html

  1. 将所有这些字体复制到单独的文件夹并从 Windows/Fonts 目录中删除。
  2. 测试 CFPDFFORM 位并确认它正在工作
  3. 手动将它们添加回来。

就我而言,事实证明这些字体本身都没有损坏,尽管可能没有按照 Windows 喜欢的方式安装。手动重新安装它在某种程度上解决了这个问题。

另外一点:我已经删除了所有内容,直到 MyriadPro(包括它)不断刷新包含 CFPDFFORM 位的页面,直到它工作为止。所以对于那些想要快速修复的人,我建议从 MyriadPro 系列开始。它可能会证明它是破坏事物的那个。

希望这可以帮助某人!

////////////// 2014 年 7 月 2 日更新 //////////////////////// /////////////////////////////////

事实证明,在获得一定数量的积分之前,我无法发表评论,因此我无法说出 Jesse Carlton 的回答(上图)对我有多大帮助。

这是解决我这个错误的另一个步骤:

  1. 事实证明,某些 Adob​​e 安装的字体的名称值为 null,因此 cfpdfform 严重失败。要查找这些文件,请使用 Jesse Carlton 创建的脚本(同样,它在上面的答案之一中)

  2. 至少在我的情况下,所有这些字体都有重复的值(正常和 _0 )。使用 Windows 字体管理器可以看到正常值并且易于删除。但是,_0 是不可见的。

  3. 下载 FontExpert2014(或任何其他字体管理器)之类的软件,并找到那些在 Windows 字体管理器中看不到的文件。

  4. 要检查是否所有损坏的字体都已删除,请再次运行步骤 1 中的脚本。当您获得空表时,请尝试之前让您失败的 cfpdfform 位,一切都应该很好。

*第 3 步中的软件已作为评估版下载,对我有用。

于 2013-07-13T18:58:10.370 回答