Excel API Library for Java - Sample Browser | Document Solutions | Use case: Simulate UI with PDF form fields
[
フレーム]
src="bundle.js">
The following code attempts to map supported form controls and control properties to PDF form fields.
This example simulates a skirmish game options UI.
// Create a pdf file stream
FileOutputStream outputStream = null;
try {
outputStream = new FileOutputStream("FormControlMapPdfFormField.pdf");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// Create a new workbook
Workbook workbook = new Workbook();
IWorksheet ws = workbook.getWorksheets().get("Sheet1");
ws.getRange("$A1ドル").setValue("Skirmish: Game Settings");
ws.getRange("$D3ドル:$E7ドル").setValue("Initial funds");
ws.getRange("$G3ドル:$H7ドル").setValue("Map preview");
ws.getRange("$A9ドル:$A11ドル").setValue(new Object[][]
{
{"Player"},
{"You"},
{"AI Player 1"}
});
ws.getRange("$B9ドル:$C10ドル").setValue(new Object[][]
{
{"AI Level", null},
{"-", null}
});
ws.getRange("$D9ドル:$E9ドル").setValue(new Object[][]
{
{"Side", "Color"}
});
ws.getRange("$F9ドル:$G11ドル").setValue(new Object[][]
{
{"Team", null},
{"-", null},
{"-", null}
});
ws.getRange("$H9ドル").setValue("Ready");
IFont a1Fnt = ws.getRange("$A1ドル").getFont();
a1Fnt.setThemeColor(ThemeColor.Accent4);
a1Fnt.setName("游ゴシック");
a1Fnt.setSize(16d);
IFont a2Fnt = ws.getRange("$A2ドル:$F2ドル").getFont();
a2Fnt.setName("游ゴシック");
a2Fnt.setSize(16d);
IFont b1Fnt = ws.getRange("$B1ドル:$H1,ドル$A9ドル:$A11,ドル$B9ドル:$H9ドル").getFont();
b1Fnt.setThemeColor(ThemeColor.Accent4);
b1Fnt.setName("游ゴシック");
IInterior a1Back = ws.getRange("$A1ドル:$H1,ドル$A9ドル:$A11,ドル$B9ドル:$H9ドル").getInterior();
a1Back.setThemeColor(ThemeColor.Dark1);
a1Back.setPattern(Pattern.Solid);
a1Back.setPatternColor(Color.GetBlack());
a1Back.setPatternColorIndex(-4105);
IInterior a3Back = ws.getRange("$A3ドル:$B7,ドル$D3ドル:$E7,ドル$G3ドル:$H7ドル").getInterior();
a3Back.setColor(Color.FromArgb(0xFFDDEBF7));
IBorders a1Border = ws.getRange("$A1ドル:$G1,ドル$A3,ドル$D3,ドル$G3,ドル$A9ドル").getBorders();
a1Border.get(BordersIndex.EdgeLeft).setColorIndex(57);
a1Border.get(BordersIndex.EdgeLeft).setLineStyle(BorderLineStyle.Thin);
a1Border.get(BordersIndex.EdgeTop).setColorIndex(57);
a1Border.get(BordersIndex.EdgeTop).setLineStyle(BorderLineStyle.Thin);
IBorders a4Border = ws.getRange("$A4ドル:$A6,ドル$D4ドル:$D6,ドル$G4ドル:$G6ドル").getBorders();
a4Border.get(BordersIndex.EdgeLeft).setColorIndex(57);
a4Border.get(BordersIndex.EdgeLeft).setLineStyle(BorderLineStyle.Thin);
IBorders a7Border = ws.getRange("$A7,ドル$D7,ドル$G7,ドル$A11ドル").getBorders();
a7Border.get(BordersIndex.EdgeBottom).setColorIndex(57);
a7Border.get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Thin);
a7Border.get(BordersIndex.EdgeLeft).setColorIndex(57);
a7Border.get(BordersIndex.EdgeLeft).setLineStyle(BorderLineStyle.Thin);
IBorders a10Border = ws.getRange("$A10ドル").getBorders();
a10Border.get(BordersIndex.EdgeBottom).setThemeColor(ThemeColor.Accent4);
a10Border.get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Thin);
a10Border.get(BordersIndex.EdgeLeft).setColorIndex(57);
a10Border.get(BordersIndex.EdgeLeft).setLineStyle(BorderLineStyle.Thin);
a10Border.get(BordersIndex.EdgeTop).setThemeColor(ThemeColor.Accent4);
a10Border.get(BordersIndex.EdgeTop).setLineStyle(BorderLineStyle.Thin);
IBorders b3Border = ws.getRange("$B3,ドル$E3,ドル$H3,ドル$H9ドル").getBorders();
b3Border.get(BordersIndex.EdgeRight).setColorIndex(57);
b3Border.get(BordersIndex.EdgeRight).setLineStyle(BorderLineStyle.Thin);
b3Border.get(BordersIndex.EdgeTop).setColorIndex(57);
b3Border.get(BordersIndex.EdgeTop).setLineStyle(BorderLineStyle.Thin);
IBorders b4Border = ws.getRange("$B4ドル:$B6,ドル$E4ドル:$E6,ドル$H4ドル:$H6,ドル$H10ドル").getBorders();
b4Border.get(BordersIndex.EdgeRight).setColorIndex(57);
b4Border.get(BordersIndex.EdgeRight).setLineStyle(BorderLineStyle.Thin);
IBorders b7Border = ws.getRange("$B7,ドル$E7,ドル$H7,ドル$H11ドル").getBorders();
b7Border.get(BordersIndex.EdgeBottom).setColorIndex(57);
b7Border.get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Thin);
b7Border.get(BordersIndex.EdgeRight).setColorIndex(57);
b7Border.get(BordersIndex.EdgeRight).setLineStyle(BorderLineStyle.Thin);
IBorders h1Border = ws.getRange("$H1,ドル$B9ドル:$G9ドル").getBorders();
h1Border.get(BordersIndex.EdgeTop).setColorIndex(57);
h1Border.get(BordersIndex.EdgeTop).setLineStyle(BorderLineStyle.Thin);
IBorders b11Border = ws.getRange("$B11ドル:$G11ドル").getBorders();
b11Border.get(BordersIndex.EdgeBottom).setColorIndex(57);
b11Border.get(BordersIndex.EdgeBottom).setLineStyle(BorderLineStyle.Thin);
IRange a1 = ws.getRange("$A1ドル");
a1.setHorizontalAlignment(HorizontalAlignment.Left);
a1.setAddIndent(false);
IRange a2 = ws.getRange("$A2ドル:$F2ドル");
a2.setVerticalAlignment(VerticalAlignment.Center);
a2.setAddIndent(false);
IRange b1 = ws.getRange("$B1ドル:$F1,ドル$G1ドル:$H2,ドル$A3ドル:$B7,ドル$A9,ドル$B9ドル:$C11,ドル$D9ドル:$E9,ドル$F9ドル:$G11,ドル$H9ドル");
b1.setHorizontalAlignment(HorizontalAlignment.Center);
b1.setAddIndent(false);
IRange a10 = ws.getRange("$A10ドル:$A11ドル");
a10.setHorizontalAlignment(HorizontalAlignment.Center);
a10.setVerticalAlignment(VerticalAlignment.Center);
a10.setAddIndent(false);
IRange d3 = ws.getRange("$D3ドル:$E7,ドル$G3ドル:$H7ドル");
d3.setHorizontalAlignment(HorizontalAlignment.Center);
d3.setVerticalAlignment(VerticalAlignment.Top);
d3.setAddIndent(false);
ws.getRange("$D3ドル:$E7ドル").merge();
ws.getRange("$A3ドル:$B7ドル").merge();
ws.getRange("$F10ドル:$G10ドル").merge();
ws.getRange("$F11ドル:$G11ドル").merge();
ws.getRange("$B10ドル:$C10ドル").merge();
ws.getRange("$B11ドル:$C11ドル").merge();
ws.getRange("$B9ドル:$C9ドル").merge();
ws.getRange("$G3ドル:$H7ドル").merge();
ws.getRange("$G1ドル:$H1ドル").merge();
ws.getRange("$F9ドル:$G9ドル").merge();
ws.getRange("1ドル:1ドル").setRowHeight(24.6d);
ws.getRange("2ドル:2ドル").setRowHeight(6d);
ws.getRange("10ドル:10ドル").setRowHeight(19.8d);
ws.getRange("11ドル:11ドル").setRowHeight(22.8d);
ws.getRange("$A:$A").setColumnWidthInPixel(111d);
ws.getRange("$B:$B").setColumnWidthInPixel(95d);
ws.getRange("$C:$C,$F:$F").setColumnWidthInPixel(11d);
ws.getRange("$D:$D").setColumnWidthInPixel(105d);
ws.getRange("$E:$E").setColumnWidthInPixel(83d);
IDropDown ctl1 = ws.getControls().addDropDown(179.55, 46.80, 102.63, 21.00);
ctl1.getItems().add(new DropDownItem("10000"));
ctl1.getItems().add(new DropDownItem("15000"));
ctl1.getItems().add(new DropDownItem("20000"));
ctl1.getItems().add(new DropDownItem("30000"));
ctl1.setSelectedIndex(0);
ICheckBox ctl2 = ws.getControls().addCheckBox(175.95, 70.20, 99.15, 17.40);
ctl2.setIsChecked(true);
ctl2.setText("Generate crates");
IDropDown ctl3 = ws.getControls().addDropDown(85.65, 157.80, 72.45, 16.80);
ctl3.getItems().add(new DropDownItem("Easy"));
ctl3.getItems().add(new DropDownItem("Normal"));
ctl3.getItems().add(new DropDownItem("Hard"));
ctl3.getItems().add(new DropDownItem("Brutal"));
ctl3.setSelectedIndex(2);
ICheckBox ctl4 = ws.getControls().addCheckBox(175.95, 87.60, 99.15, 16.80);
ctl4.setIsChecked(true);
ctl4.setText("Tiberium grows");
IDropDown ctl5 = ws.getControls().addDropDown(165.75, 138.00, 66.60, 15.60);
ctl5.getItems().add(new DropDownItem("GDI"));
ctl5.getItems().add(new DropDownItem("Nod"));
ctl5.getItems().add(new DropDownItem("Scrin"));
ctl5.setSelectedIndex(0);
IDropDown ctl6 = ws.getControls().addDropDown(165.75, 157.80, 66.00, 16.80);
ctl6.getItems().add(new DropDownItem("GDI"));
ctl6.getItems().add(new DropDownItem("Nod"));
ctl6.getItems().add(new DropDownItem("Scrin"));
ctl6.setSelectedIndex(1);
ICheckBox ctl7 = ws.getControls().addCheckBox(380.40, 136.80, 19.20, 18.00);
ctl7.setText("");
ICheckBox ctl8 = ws.getControls().addCheckBox(380.40, 157.80, 19.20, 18.00);
ctl8.setIsChecked(true);
ctl8.setText("");
;
IDropDown ctl9 = ws.getControls().addDropDown(243.90, 138.60, 51.00, 14.40);
ctl9.getItems().add(new DropDownItem("Random"));
ctl9.getItems().add(new DropDownItem("Red"));
ctl9.getItems().add(new DropDownItem("Green"));
ctl9.getItems().add(new DropDownItem("Blue"));
ctl9.getItems().add(new DropDownItem("Yellow"));
ctl9.getItems().add(new DropDownItem("Purple"));
ctl9.setSelectedIndex(0);
IDropDown ctl10 = ws.getControls().addDropDown(243.90, 159.00, 51.00, 15.60);
ctl10.getItems().add(new DropDownItem("Random"));
ctl10.getItems().add(new DropDownItem("Red"));
ctl10.getItems().add(new DropDownItem("Green"));
ctl10.getItems().add(new DropDownItem("Blue"));
ctl10.getItems().add(new DropDownItem("Yellow"));
ctl10.getItems().add(new DropDownItem("Purple"));
ctl10.setSelectedIndex(0);
IListBox ctl11 = ws.getControls().addListBox(3.60, 34.20, 140.25, 67.80);
ctl11.getItems().add(new ListBoxItem("Infinite Isle (2)"));
ctl11.getItems().add(new ListBoxItem("Temple Prime (2)"));
ctl11.getItems().add(new ListBoxItem("Industrial Strength (2)"));
ctl11.getItems().add(new ListBoxItem("Hot Spring (2-4)"));
ctl11.getItems().add(new ListBoxItem("Motherland (2-6)"));
ctl11.setSelectedIndex(0);
IShape shp1 = ws.getShapes().addShape(AutoShapeType.Oval, 371.56, 49.40, 24.57, 31.17);
shp1.getFill().getColor().setRGB(Color.FromArgb(0xFFFFDB96));
shp1.getLine().getColor().setRGB(Color.FromArgb(0xFFFFC000));
shp1.getLine().setWeight(0.5);
IShape shp2 = ws.getShapes().addShape(AutoShapeType.Oval, 330.44, 68.04, 26.36, 31.81);
shp2.getFill().getColor().setRGB(Color.FromArgb(0xFFFFDB96));
shp2.getLine().getColor().setRGB(Color.FromArgb(0xFFFFC000));
shp2.getLine().setWeight(0.5);
IShape shp3 = ws.getShapes().addShape(AutoShapeType.Rectangle, 338.40, 67.06, 54.75, 15.07);
shp3.getFill().getColor().setRGB(Color.FromArgb(0xFFFFC000));
shp3.getLine().getColor().setRGB(Color.GetWhite());
shp3.getLine().setWeight(1.5);
shp3.setRotation(36.5);
IOptionButton ctl12 = ws.getControls().addOptionButton(334.42, 79.07, 14.92, 17.15);
ctl12.setIsChecked(true);
ctl12.setText("1");
IOptionButton ctl13 = ws.getControls().addOptionButton(378.22, 51.41, 14.92, 17.15);
ctl13.setText("2");
PdfSaveOptions tempVar = new PdfSaveOptions();
tempVar.setFormFields(true);
workbook.save(outputStream, tempVar);
// Close the file stream
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// Create a pdf file stream
FileOutputStream("FormControlMapPdfFormField.pdf").use { outputStream ->
// Create a new workbook
var workbook = Workbook()
val ws = workbook.worksheets["Sheet1"]
ws.getRange("\$A1ドル").value = "Skirmish: Game Settings"
ws.getRange("\$D3ドル:\$E7ドル").value = "Initial funds"
ws.getRange("\$G3ドル:\$H7ドル").value = "Map preview"
ws.getRange("\$A9ドル:\$A11ドル").value =
arrayOf(arrayOf
("Player"), arrayOf("You"), arrayOf("AI Player 1"))
ws.getRange("\$B9ドル:\$C10ドル").value =
arrayOf(arrayOf("AI Level", null), arrayOf("-", null))
ws.getRange("\$D9ドル:\$E9ドル").value = arrayOf(arrayOf("Side", "Color"))
ws.getRange("\$F9ドル:\$G11ドル").value =
arrayOf(arrayOf("Team", null), arrayOf("-", null), arrayOf("-", null))
ws.getRange("\$H9ドル").value = "Ready"
val a1Fnt = ws.getRange("\$A1ドル").font
a1Fnt.themeColor = ThemeColor.Accent4
a1Fnt.name = "游ゴシック"
a1Fnt.size = 16.0
val a2Fnt = ws.getRange("\$A2ドル:\$F2ドル").font
a2Fnt.name = "游ゴシック"
a2Fnt.size = 16.0
val b1Fnt = ws.getRange("\$B1ドル:\$H1,ドル\$A9ドル:\$A11,ドル\$B9ドル:\$H9ドル").font
b1Fnt.themeColor = ThemeColor.Accent4
b1Fnt.name = "游ゴシック"
val a1Back = ws.getRange("\$A1ドル:\$H1,ドル\$A9ドル:\$A11,ドル\$B9ドル:\$H9ドル").interior
a1Back.themeColor = ThemeColor.Dark1
a1Back.pattern = Pattern.Solid
a1Back.patternColor = Color.GetBlack()
a1Back.patternColorIndex = -4105
val a3Back = ws.getRange("\$A3ドル:\$B7,ドル\$D3ドル:\$E7,ドル\$G3ドル:\$H7ドル").interior
a3Back.color = Color.FromArgb(-0x221409)
val a1Border = ws.getRange("\$A1ドル:\$G1,ドル\$A3,ドル\$D3,ドル\$G3,ドル\$A9ドル").borders
a1Border[BordersIndex.EdgeLeft].colorIndex = 57
a1Border[BordersIndex.EdgeLeft].lineStyle = BorderLineStyle.Thin
a1Border[BordersIndex.EdgeTop].colorIndex = 57
a1Border[BordersIndex.EdgeTop].lineStyle = BorderLineStyle.Thin
val a4Border = ws.getRange("\$A4ドル:\$A6,ドル\$D4ドル:\$D6,ドル\$G4ドル:\$G6ドル").borders
a4Border[BordersIndex.EdgeLeft].colorIndex = 57
a4Border[BordersIndex.EdgeLeft].lineStyle = BorderLineStyle.Thin
val a7Border = ws.getRange("\$A7,ドル\$D7,ドル\$G7,ドル\$A11ドル").borders
a7Border[BordersIndex.EdgeBottom].colorIndex = 57
a7Border[BordersIndex.EdgeBottom].lineStyle = BorderLineStyle.Thin
a7Border[BordersIndex.EdgeLeft].colorIndex = 57
a7Border[BordersIndex.EdgeLeft].lineStyle = BorderLineStyle.Thin
val a10Border = ws.getRange("\$A10ドル").borders
a10Border[BordersIndex.EdgeBottom].themeColor = ThemeColor.Accent4
a10Border[BordersIndex.EdgeBottom].lineStyle = BorderLineStyle.Thin
a10Border[BordersIndex.EdgeLeft].colorIndex = 57
a10Border[BordersIndex.EdgeLeft].lineStyle = BorderLineStyle.Thin
a10Border[BordersIndex.EdgeTop].themeColor = ThemeColor.Accent4
a10Border[BordersIndex.EdgeTop].lineStyle = BorderLineStyle.Thin
val b3Border = ws.getRange("\$B3,ドル\$E3,ドル\$H3,ドル\$H9ドル").borders
b3Border[BordersIndex.EdgeRight].colorIndex = 57
b3Border[BordersIndex.EdgeRight].lineStyle = BorderLineStyle.Thin
b3Border[BordersIndex.EdgeTop].colorIndex = 57
b3Border[BordersIndex.EdgeTop].lineStyle = BorderLineStyle.Thin
val b4Border = ws.getRange("\$B4ドル:\$B6,ドル\$E4ドル:\$E6,ドル\$H4ドル:\$H6,ドル\$H10ドル").borders
b4Border[BordersIndex.EdgeRight].colorIndex = 57
b4Border[BordersIndex.EdgeRight].lineStyle = BorderLineStyle.Thin
val b7Border = ws.getRange("\$B7,ドル\$E7,ドル\$H7,ドル\$H11ドル").borders
b7Border[BordersIndex.EdgeBottom].colorIndex = 57
b7Border[BordersIndex.EdgeBottom].lineStyle = BorderLineStyle.Thin
b7Border[BordersIndex.EdgeRight].colorIndex = 57
b7Border[BordersIndex.EdgeRight].lineStyle = BorderLineStyle.Thin
val h1Border = ws.getRange("\$H1,ドル\$B9ドル:\$G9ドル").borders
h1Border[BordersIndex.EdgeTop].colorIndex = 57
h1Border[BordersIndex.EdgeTop].lineStyle = BorderLineStyle.Thin
val b11Border = ws.getRange("\$B11ドル:\$G11ドル").borders
b11Border[BordersIndex.EdgeBottom].colorIndex = 57
b11Border[BordersIndex.EdgeBottom].lineStyle = BorderLineStyle.Thin
val a1 = ws.getRange("\$A1ドル")
a1.horizontalAlignment = HorizontalAlignment.Left
a1.addIndent = false
val a2 = ws.getRange("\$A2ドル:\$F2ドル")
a2.verticalAlignment = VerticalAlignment.Center
a2.addIndent = false
val b1 = ws.getRange("\$B1ドル:\$F1,ドル\$G1ドル:\$H2,ドル\$A3ドル:\$B7,ドル\$A9,ドル\$B9ドル:\$C11,ドル\$D9ドル:\$E9,ドル\$F9ドル:\$G11,ドル\$H9ドル")
b1.horizontalAlignment = HorizontalAlignment.Center
b1.addIndent = false
val a10 = ws.getRange("\$A10ドル:\$A11ドル")
a10.horizontalAlignment = HorizontalAlignment.Center
a10.verticalAlignment = VerticalAlignment.Center
a10.addIndent = false
val d3 = ws.getRange("\$D3ドル:\$E7,ドル\$G3ドル:\$H7ドル")
d3.horizontalAlignment = HorizontalAlignment.Center
d3.verticalAlignment = VerticalAlignment.Top
d3.addIndent = false
ws.getRange("\$D3ドル:\$E7ドル").merge()
ws.getRange("\$A3ドル:\$B7ドル").merge()
ws.getRange("\$F10ドル:\$G10ドル").merge()
ws.getRange("\$F11ドル:\$G11ドル").merge()
ws.getRange("\$B10ドル:\$C10ドル").merge()
ws.getRange("\$B11ドル:\$C11ドル").merge()
ws.getRange("\$B9ドル:\$C9ドル").merge()
ws.getRange("\$G3ドル:\$H7ドル").merge()
ws.getRange("\$G1ドル:\$H1ドル").merge()
ws.getRange("\$F9ドル:\$G9ドル").merge()
ws.getRange("1ドル:1ドル").rowHeight = 24.6
ws.getRange("2ドル:2ドル").rowHeight = 6.0
ws.getRange("10ドル:10ドル").rowHeight = 19.8
ws.getRange("11ドル:11ドル").rowHeight = 22.8
ws.getRange("\$A:\$A").columnWidthInPixel = 111.0
ws.getRange("\$B:\$B").columnWidthInPixel = 95.0
ws.getRange("\$C:\$C,\$F:\$F").columnWidthInPixel = 11.0
ws.getRange("\$D:\$D").columnWidthInPixel = 105.0
ws.getRange("\$E:\$E").columnWidthInPixel = 83.0
val ctl1 = ws.controls.addDropDown(179.55, 46.80, 102.63, 21.00)
ctl1.items.apply {
add(DropDownItem("10000"))
add(DropDownItem("15000"))
add(DropDownItem("20000"))
add(DropDownItem("30000"))
}
ctl1.selectedIndex = 0
val ctl2 = ws.controls.addCheckBox(175.95, 70.20, 99.15, 17.40)
ctl2.isChecked = true
ctl2.text = "Generate crates"
val ctl3 = ws.controls.addDropDown(85.65, 157.80, 72.45, 16.80)
ctl3.items.apply {
add(DropDownItem("Easy"))
add(DropDownItem("Normal"))
add(DropDownItem("Hard"))
add(DropDownItem("Brutal"))
}
ctl3.selectedIndex = 2
val ctl4 = ws.controls.addCheckBox(175.95, 87.60, 99.15, 16.80)
ctl4.isChecked = true
ctl4.text = "Tiberium grows"
val ctl5 = ws.controls.addDropDown(165.75, 138.00, 66.60, 15.60)
ctl5.items.apply {
add(DropDownItem("GDI"))
add(DropDownItem("Nod"))
add(DropDownItem("Scrin"))
}
ctl5.selectedIndex = 0
val ctl6 = ws.controls.addDropDown(165.75, 157.80, 66.00, 16.80)
ctl6.items.apply {
add(DropDownItem("GDI"))
add(DropDownItem("Nod"))
add(DropDownItem("Scrin"))
}
ctl6.selectedIndex = 1
val ctl7 = ws.controls.addCheckBox(380.40, 136.80, 19.20, 18.00)
ctl7.text = ""
val ctl8 = ws.controls.addCheckBox(380.40, 157.80, 19.20, 18.00)
ctl8.isChecked = true
ctl8.text = ""
val ctl9 = ws.controls.addDropDown(243.90, 138.60, 51.00, 14.40)
ctl9.items.apply {
add(DropDownItem("Random"))
add(DropDownItem("Red"))
add(DropDownItem("Green"))
add(DropDownItem("Blue"))
add(DropDownItem("Yellow"))
add(DropDownItem("Purple"))
}
ctl9.selectedIndex = 0
val ctl10 = ws.controls.addDropDown(243.90, 159.00, 51.00, 15.60)
ctl10.items.apply {
add(DropDownItem("Random"))
add(DropDownItem("Red"))
add(DropDownItem("Green"))
add(DropDownItem("Blue"))
add(DropDownItem("Yellow"))
add(DropDownItem("Purple"))
}
ctl10.selectedIndex = 0
val ctl11 = ws.controls.addListBox(3.60, 34.20, 140.25, 67.80)
ctl11.items.apply {
add(ListBoxItem("Infinite Isle (2)"))
add(ListBoxItem("Temple Prime (2)"))
add(ListBoxItem("Industrial Strength (2)"))
add(ListBoxItem("Hot Spring (2-4)"))
add(ListBoxItem("Motherland (2-6)"))
}
ctl11.selectedIndex = 0
val shp1 = ws.shapes.addShape(AutoShapeType.Oval, 371.56, 49.40, 24.57, 31.17)
shp1.fill.color.rgb = Color.FromArgb(-0x246a)
shp1.line.color.rgb = Color.FromArgb(-0x4000)
shp1.line.weight = 0.5
val shp2 = ws.shapes.addShape(AutoShapeType.Oval, 330.44, 68.04, 26.36, 31.81)
shp2.fill.color.rgb = Color.FromArgb(-0x246a)
shp2.line.color.rgb = Color.FromArgb(-0x4000)
shp2.line.weight = 0.5
val shp3 = ws.shapes.addShape(AutoShapeType.Rectangle, 338.40, 67.06, 54.75, 15.07)
shp3.fill.color.rgb = Color.FromArgb(-0x4000)
shp3.line.color.rgb = Color.GetWhite()
shp3.line.weight = 1.5
shp3.rotation = 36.5
val ctl12 = ws.controls.addOptionButton(334.42, 79.07, 14.92, 17.15)
ctl12.isChecked = true
ctl12.text = "1"
val ctl13 = ws.controls.addOptionButton(378.22, 51.41, 14.92, 17.15)
ctl13.text = "2"
workbook.save(outputStream, PdfSaveOptions().apply { formFields = true })
// End using the file stream
}