我使用Submit按鈕創建了一個帶有兩個表單字段(名字和姓氏(或FirstName和LastName))的快速PDF文件,並使用以下代碼嘗試填充這些字段一個新的PDF文件:ColdFusion CFPDFFORM不會填充PDF表單字段
<cfpdfform action="populate" source="#variables.AbsPath#\test.pdf">
<cfpdfformparam name="FirstName" value="foo" />
<cfpdfformparam name="LastName" value="bar" />
</cfpdfform>
不過,我收到此錯誤:
The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code.
Null Pointers are another name for undefined values.
Platform, Locale, and Platform Name must not be null
我試着閱讀PDF文件,以確保表單字段是正確使用這一點,他們分別是:
<cfpdfform action="read" source="#variables.AbsPath#\test.pdf" result="fields" />
<cfdump var="#fields#">
的結構轉儲出:
FirstName: [empty string]
LastName: [empty string]
Submit: [empty string]
我試着搜索的Adobe文檔和周圍的一些其他網站,但無法找到此錯誤的解決方案。我還嘗試在需要的情況下向cfpdfform標籤添加一個「目標」參數,但獲得了相同的結果。 PDF文件確實存在。有任何想法嗎?提前致謝。
更新: 這裏是堆棧跟蹤:
java.lang.NullPointerException: Platform, Locale, and Platform Name must not be null
at com.adobe.fontengine.fontmanagement.platform.PlatformFontDescription.<init>(Unknown Source)
at com.adobe.fontengine.font.opentype.OpenTypeFont.getPlatformFontDescription(Unknown Source)
at com.adobe.fontengine.font.FontImpl.getPlatformFontDescription(Unknown Source)
at com.adobe.fontengine.font.FontImpl.getPlatformFontDescription(Unknown Source)
at com.adobe.fontengine.fontmanagement.platform.PlatformFontResolverImpl.addFont(Unknown Source)
at com.adobe.internal.pdftoolkit.core.fontset.impl.PDFFontSetImpl.addFont(Unknown Source)
at com.adobe.internal.pdfm.util.FontSetBuilder.loadFontsPath(FontSetBuilder.java:418)
at com.adobe.internal.pdfm.util.FontSetBuilder.loadSystemFonts(FontSetBuilder.java:346)
at com.adobe.internal.pdfm.util.FontSetBuilder.makePDFFontSet(FontSetBuilder.java:239)
at com.adobe.internal.pdfm.util.FontSetBuilder.getPdfFontSet(FontSetBuilder.java:93)
at com.adobe.internal.pdfm.PDFM7Factory.getPdfFontSet(PDFM7Factory.java:97)
at coldfusion.document.DocumentServiceImpl.getAssemblerFontSet(DocumentServiceImpl.java:512)
at coldfusion.pdf.PDFForm.populateFields(PDFForm.java:292)
at coldfusion.tagext.lang.PDFFormTag.doEndTag(PDFFormTag.java:347)
at cfsubmit2ecfm1224790315.runPage(C:\ColdFusion\wwwroot\nVision\projects\test\pdfform\submit.cfm:9)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:416)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:381)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:94)
at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)
at coldfusion.CfmServlet.service(CfmServlet.java:200)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
at jrun.servlet.FilterChain.service(FilterChain.java:101)
at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
的PDF是在Adobe Acrobat X Pro中創建。我確實檢查確定沒有子表單(沒有),但仍然存在問題。閱讀PDF時,它只顯示諸如FirstName,LastName等字段,但不嵌套在任何其他字段或結構中。使用CFPDFFORM會生成我指出的錯誤。不知道還有別的去。 – Whatevo
您是否嘗試添加'overwriteData'屬性並將其設置爲'yes'?文檔狀態:指定是否使用數據源中的數據覆蓋PDF表單域中的現有數據: yes:使用數據源中的數據覆蓋表單域中的現有數據。 否:保留表單字段中的現有數據並僅填充沒有數據的字段。 此屬性適用於從XML數據源和cfpdfparam和cfpdfsubform標記提供的數據。 –
嘗試添加overwriteData屬性並將其設置爲「是」,但仍然收到相同的錯誤。 – Whatevo