2015-06-01 50 views
2

我已經給出一個帶有表格的PDF文件。格式爲而不是格式化爲表格。我的要求是提取表單域值,並將它們寫入可以導入到Excel中的CSV文件。我曾嘗試在Acrobat Pro中使用自動的「將數據文件合併到電子表格」菜單項,但輸出包括標籤和表單字段值。我主要關心表單域的值。使用JavaScript提取PDF表格數據並寫入CSV文件

我想用JavaScript來提取表單數據,並指示的JavaScript如何寫CSV(因爲我知道結局的電子表格應該是什麼樣子)。我得到儘可能提取表單字段:

this.getField("Today_s_Date").value;

而且下面這個帖子:How to write a text file in Acrobat Javascript,我嘗試使用寫入CSV:

var cMyC = "abc"; var doc = this.createDataObject({cName: "test.txt", cValue: cMyC});

,但我得到了以下錯誤:

「語法錯誤:語法錯誤 1:控制檯:執行」

理想情況下,我不想使用在線第三方工具來執行此操作,因爲數據很敏感。但是,如果您有任何建議,請讓我知道。理想的輸出將是一個CSV文件,最終的商業用戶可以在Excel中打開以查看她選擇的電子表格格式。

有沒有人做過這個?開放以聽取任何替代解決方案。提前致謝!

+0

Downvoter你能解釋一下如何改善這個問題嗎?謝謝 – dgp

回答

1

您的代碼應該工作,確保在控制檯上運行時,您選擇的全部代碼。

出於安全考慮,您在有限的東西,你可以從Acrobat輸出而無需用戶交互。有什麼可以爲PDF的here輸出商量好了,如果你還沒有準備好,一定要在reference檢查出什麼是可能與exportDataObject()

一個例子讓你去 - 你可以放置會通過每個表單字段的遍歷窗體上的按鈕,將它們添加到一個數組那麼這可能是一個CSV輸出。

喜歡的東西:

var fieldValues = []; 

for (var i = 0; i < this.numFields; i++) 
    fieldValues.push(this.getField(this.getNthFieldName(i)).value); 

this.createDataObject('output.csv', fieldValues.join()); 
this.exportDataObject({ cName:'output.csv', nLaunch:'2'}); 

在這個例子中的.csv將被打開由計算機上的默認CSV程序的臨時文件。或者,您可以省略nLaunch,併爲用戶提供文件保存對話框。

+0

非常感謝代碼片段。我想我誤解了如何使用createDataObject和exportDataObject。你的回答將幫助我進一步理解我的概念證明。非常感謝! – dgp

+0

@jss如果您使用此代碼段提供了完整的'.tex',則可能對包括我在內的其他人有所幫助。 – alhelal

相關問題