mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-14 19:29:50 +08:00
Add fill test case for text, combo and checkbox fields
This commit is contained in:
parent
39d00eabaf
commit
705b191318
@ -148,6 +148,7 @@ func TestJSONExtractAndFill(t *testing.T) {
|
|||||||
fieldDataExp, err := LoadFromJSONFile("./testdata/advancedform.json")
|
fieldDataExp, err := LoadFromJSONFile("./testdata/advancedform.json")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
jsonDataExp, err := fieldDataExp.JSON()
|
jsonDataExp, err := fieldDataExp.JSON()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Check templates for equality.
|
// Check templates for equality.
|
||||||
require.Equal(t, jsonDataExp, jsonData)
|
require.Equal(t, jsonDataExp, jsonData)
|
||||||
@ -184,6 +185,7 @@ func TestJSONExtractAndFill(t *testing.T) {
|
|||||||
fieldDataExp, err = LoadFromJSON(bytes.NewReader(jsonBytes))
|
fieldDataExp, err = LoadFromJSON(bytes.NewReader(jsonBytes))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
jsonDataExp, err = fieldDataExp.JSON()
|
jsonDataExp, err = fieldDataExp.JSON()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Fill test PDF form fields and write to buffer.
|
// Fill test PDF form fields and write to buffer.
|
||||||
f, err := os.Open(inputFilePath)
|
f, err := os.Open(inputFilePath)
|
||||||
@ -212,6 +214,47 @@ func TestJSONExtractAndFill(t *testing.T) {
|
|||||||
fieldData, err = LoadFromPDF(bytes.NewReader(buf.Bytes()))
|
fieldData, err = LoadFromPDF(bytes.NewReader(buf.Bytes()))
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
jsonData, err = fieldData.JSON()
|
jsonData, err = fieldData.JSON()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// Check field data for equality.
|
||||||
|
require.Equal(t, jsonDataExp, jsonData)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestJSONFillAndExtract(t *testing.T) {
|
||||||
|
// Read JSON fill data.
|
||||||
|
fieldDataExp, err := LoadFromJSONFile("./testdata/mixedfields.json")
|
||||||
|
require.NoError(t, err)
|
||||||
|
jsonDataExp, err := fieldDataExp.JSON()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// Fill test PDF form fields and write to buffer.
|
||||||
|
f, err := os.Open("./testdata/mixedfields.pdf")
|
||||||
|
require.NoError(t, err)
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
reader, err := model.NewPdfReader(f)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
err = reader.AcroForm.Fill(fieldDataExp)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
var buf bytes.Buffer
|
||||||
|
writer := model.NewPdfWriter()
|
||||||
|
for i := range reader.PageList {
|
||||||
|
err := writer.AddPage(reader.PageList[i])
|
||||||
|
require.NoError(t, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = writer.SetForms(reader.AcroForm)
|
||||||
|
require.NoError(t, err)
|
||||||
|
err = writer.Write(&buf)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
// Load field data from buffer.
|
||||||
|
fieldData, err := LoadFromPDF(bytes.NewReader(buf.Bytes()))
|
||||||
|
require.NoError(t, err)
|
||||||
|
jsonData, err := fieldData.JSON()
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Check field data for equality.
|
// Check field data for equality.
|
||||||
require.Equal(t, jsonDataExp, jsonData)
|
require.Equal(t, jsonDataExp, jsonData)
|
||||||
|
94
fjson/testdata/mixedfields.json
vendored
Normal file
94
fjson/testdata/mixedfields.json
vendored
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "Given Name Text Box",
|
||||||
|
"value": "Jane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Family Name Text Box",
|
||||||
|
"value": "Doe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "House nr Text Box",
|
||||||
|
"value": "100"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Address 2 Text Box",
|
||||||
|
"value": "Generic Avenue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Postcode Text Box",
|
||||||
|
"value": "11122"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Country Combo Box",
|
||||||
|
"value": "France"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Height Formatted Field",
|
||||||
|
"value": "175"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "City Text Box",
|
||||||
|
"value": "Paris"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Driving License Check Box",
|
||||||
|
"value": "Yes",
|
||||||
|
"options": [
|
||||||
|
"Yes",
|
||||||
|
"Off"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Favourite Colour List Box",
|
||||||
|
"value": "Yellow"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Language 1 Check Box",
|
||||||
|
"value": "Yes",
|
||||||
|
"options": [
|
||||||
|
"Yes",
|
||||||
|
"Off"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Language 2 Check Box",
|
||||||
|
"value": "Off",
|
||||||
|
"options": [
|
||||||
|
"Yes",
|
||||||
|
"Off"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Language 3 Check Box",
|
||||||
|
"value": "Yes",
|
||||||
|
"options": [
|
||||||
|
"Yes",
|
||||||
|
"Off"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Language 4 Check Box",
|
||||||
|
"value": "Off",
|
||||||
|
"options": [
|
||||||
|
"Yes",
|
||||||
|
"Off"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Language 5 Check Box",
|
||||||
|
"value": "Yes",
|
||||||
|
"options": [
|
||||||
|
"Yes",
|
||||||
|
"Off"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Gender List Box",
|
||||||
|
"value": "Woman"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Address 1 Text Box",
|
||||||
|
"value": "Generic Street"
|
||||||
|
}
|
||||||
|
]
|
BIN
fjson/testdata/mixedfields.pdf
vendored
Normal file
BIN
fjson/testdata/mixedfields.pdf
vendored
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user