【问题标题】:Coldfusion CFPDFColdfusion CFPDF
【发布时间】:2014-08-06 17:14:58
【问题描述】:

我正在尝试使用cfpdf 并不断收到以下错误:

字符串索引超出范围:-1

我不明白为什么。我在 Debian Linux 上运行 ColdFusion 11。

<CFIF FileExists("#getDirectoryFromPath(getCurrentTemplatePath())#REPORT.pdf")>
    <cfpdfform 
        action="read" 
        source="#getDirectoryFromPath(getCurrentTemplatePath())#REPORT.pdf" xmldata="x" 
        result="r">
    </cfpdfform>

    <cfdump var="#x#" label="XMLData">
    <cfdump var="#r#" label="Result">
<CFELSE>
    File doesn't exist
</CFIF>

确切的错误:

String index out of range: -1 

 The error occurred in /var/www/www.test.com/test.cfm: line 2

1 : <CFIF FileExists("#getDirectoryFromPath(getCurrentTemplatePath())#REPORT.pdf")>
2 : <cfpdfform 
action="read" 
source="#getDirectoryFromPath(getCurrentTemplatePath())#REPORT.pdf" 
xmldata="x" result="r">
3 : </cfpdfform>
4 : <cfdump var="#x#" label="XMLData">

【问题讨论】:

  • 您在第二个 cfdump 上缺少关闭 &gt;,因此此代码无法编译。请发布引发错误的确切代码以及引发错误的行
  • 很好,但由于某种原因,当我发布并格式化代码时它被删除了。但即使使用结束标签,它仍然会给出相同的错误。
  • 我从不使用 cfpdfform,但我要做的第一件事就是去掉 x 和 r 属性,看看错误是否消失。如果是这样,请将它们一一放回去,以便找出罪魁祸首。
  • 您没有使用任何子标签,例如 cfpdfformparamcfpdfsubform,因此您可能想尝试在没有结束标签的情况下编写它(这不太可能是您的错误的根源,但您永远不知道)&lt;cfpdfform ... /&gt;
  • 您的report.pdf 有多复杂?我会从尽可能简单的测试用例开始解决这个问题,然后从那里增加它,直到你找出导致问题的原因。首先要做的事情...使用一个非常基本的 PDF 作为输入文件,看看会发生什么。正如@duncan 建议的那样:不要关闭不需要关闭的标签。

标签: pdf coldfusion cfpdf


【解决方案1】:

过去我也遇到过类似的问题。问题一直是使用非 Adob​​e 程序创建 pdf - 例如,在 Libreoffice 中制作 pdf 表单可能会导致此问题。我假设 CF 正在查找的文件中缺少一些内部格式。

您可以尝试在 Acrobat 中打开并重新保存。

【讨论】:

    猜你喜欢
    • 2014-09-15
    • 1970-01-01
    • 2012-03-12
    • 2018-05-26
    • 2019-12-13
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多