Radio buttons that use the same title are considered to be part of a radio button group. Each radio button that belongs to the group is a child or sub-radio button.
This means that you can use the http://www.quickpdflibrary.com/help/quickpdf/GetFormFieldTitle.php - GetFormFieldTitle and http://www.quickpdflibrary.com/help/quickpdf/GetFormFieldValue.php - GetFormFieldValue functions to find out the title and selected value of a radio button group.
So for example, if you have a radio button group which has the title Nationality and this group has sub-radio buttons with the export values of Australian, French, German, American and Chinese, but the Australian sub-radio button is the radio button which is selected in the PDF form, then the GetFormFieldValue function will return a value of Australian for the Nationality radio button group.
The code for this would look something like the below:
// Loop through all of the form fields in the PDF
for i := 1 to QP.FormFieldCount do
begin
// Only process radio buttons
if QP.GetFormFieldType(i) = 4 then
begin
// Get radio button group title and selected value
WriteLn(IntToStr(i) + '. Group');
WriteLn;
WriteLn('Radio Button Group: ' + QP.GetFormFieldTitle(i));
WriteLn('Selected Radio Button Value: ' + QP.GetFormFieldValue(i));
Writeln;
end;
ReadLn;
end;
If you wanted to get the radio button group title, selected value and a full list of all the sub-radio buttons that belong to the radio button group, then you could do it like this:
// Loop through all of the form fields in the PDF
for i := 1 to QP.FormFieldCount do
begin
// Only process radio buttons
if QP.GetFormFieldType(i) = 4 then
begin
// Get radio button group title and selected value
WriteLn(IntToStr(i) + '. Group');
WriteLn;
WriteLn('Radio Button Group: ' + QP.GetFormFieldTitle(i));
WriteLn('Selected Radio Button Value: ' + QP.GetFormFieldValue(i));
Writeln;
end;
ReadLn;
end;
// Get all of the sub-radio buttons from the radio button group
WriteLn('Child Radio Buttons In This Group:');
WriteLn;
if QP.GetFormFieldKidCount(i) <> 0 then
for j := 2 to QP.GetFormFieldSubCount(i) do
begin
s := QP.GetFormFieldSubTempIndex(i, j);
WriteLn(QP.GetFormFieldSubName(i, j));
end;
Writeln;
end;
ReadLn;
end;
These examples are written in Delphi and use a console application, however, they should be fairly easy to understand for any programmer and can easily be adjusted to work with a GUI application. If you experience any problems, please leave a comment.