mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-13 19:29:10 +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")
|
||||
require.NoError(t, err)
|
||||
jsonDataExp, err := fieldDataExp.JSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
// Check templates for equality.
|
||||
require.Equal(t, jsonDataExp, jsonData)
|
||||
@ -184,6 +185,7 @@ func TestJSONExtractAndFill(t *testing.T) {
|
||||
fieldDataExp, err = LoadFromJSON(bytes.NewReader(jsonBytes))
|
||||
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(inputFilePath)
|
||||
@ -212,6 +214,47 @@ func TestJSONExtractAndFill(t *testing.T) {
|
||||
fieldData, err = LoadFromPDF(bytes.NewReader(buf.Bytes()))
|
||||
require.NoError(t, err)
|
||||
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.
|
||||
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