CFPDFForm填充错误-java.lang.NullPointerException:平台、区域设置和平台名称不能为null

CFPDFForm填充错误-java.lang.NullPointerException:平台、区域设置和平台名称不能为null,pdf,coldfusion,cfpdfform,Pdf,Coldfusion,Cfpdfform,我一直在努力找出下面错误的原因 我所做的就是运行这个非常简单的CFPDFFORM来填充PDF表单 <cfset source = expandPath("Customer.pdf")> <cfpdfform action="populate" source="#source#"> <cfpdfformparam name="Name" value="John Doe"> <cfpdfformparam name="Address" va

我一直在努力找出下面错误的原因

我所做的就是运行这个非常简单的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>

我做了很多搜索,发现很少有人谈论这个错误。我找到的那一页是。我试着检查我的字体,寻找损坏的字体。我甚至使用了一个名为FixFonts Folder()的程序,它能够找到一些损坏的字体。但即便如此,我还是会犯错误。所以,我在拼命寻找答案

以防万一,我正在Windows7上运行ColdFusion 10 Update 9


提前感谢。

报告错误的解决方法解决了问题。谢谢,米格尔-F


解决方法是:“删除与creative cloud 6应用程序安装日期相同的所有字体,或者卸载creative cloud 6”

我自己也有同样的问题

我的解决方案(补充上述正确答案): 以下是Adobe随Creative Suite 6安装的字体列表:

  • 将所有这些字体复制到单独的文件夹中,并从Windows/fonts目录中删除
  • 测试CFPDF钻头并确认其工作正常
  • 手动将它们添加回
  • 在我的例子中,结果证明这些字体本身都没有损坏,尽管可能不是Windows喜欢的安装方式。手动重新安装它多少解决了这个问题

    还有一个注意事项:我已经删除了所有内容,直到Myriadro(包括它)不断刷新包含CFPDFFORM位的页面,直到它工作为止。因此,对于那些试图快速修复的人,我建议从MyriadPro家族开始。结果可能是它打破了一切

    希望这能帮到别人

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

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

    还有一个步骤解决了我的问题:

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

  • 至少在我的例子中,所有这些字体都有重复的值(正常和0)。正常值可见,使用Windows字体管理器可以轻松删除。但是0的不可见

  • 下载FontExpert2014(或任何其他字体管理器)之类的软件,找到在windows字体管理器中看不到的文件

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


  • *步骤3中的软件作为评估版本下载,并为我完成了这项任务。

    在安装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

    希望这对别人有帮助。我花了几个小时来解决这个“小问题”。

    我编写了一个脚本,将解析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>
    
    
    字体名称:
    错误
    #fontdir.name#
    #cfcatch.message#
    
    这可能是配股吗?也许ColdFusion服务对某些字体没有权限。你可以尝试为ColdFusion服务授予该文件夹/文件的权限吗?这并不是说它目前对你有帮助,但我发现了一个相关的错误:如果没有其他问题,你可以投票支持它,并给出你的例子让Adobe看一下。原始PDF文件是如何生成的(什么软件)?它是使用Acrobat Pro X创建的。我还将检查权限,并确保该字段未按PDF上的要求设置。请确保单击并轻推Adobe以修复它。。或者至少提供一个更好的错误消息。@Leigh-Done。。。!为链接干杯。别忘了鼓励Adobe修复它。