It is possible to generate a PDF through the use of automations.
I recommend taking a look at the following Template. This app shows how to use the ‘Extract’ AI task to analyze information provided in a PDF document.
In regard to Appsheet I have found that the simplest approach for report generation is based on a column value change or by creating a separate table entry. This is because of the inherent nature that the functionality for this is engrained in bot functionality. So if you are looking at simple button click functionality I would rely on an additional column in your table “GenerateReport” as a datetime column. Create an action that shows up as a button in your row record that sets the column value to NOW(). Then create a bot on the datasource that only triggers on update and set the condition to [_THISROW_BEFORE].[GenerateReport] <> [_THISROW_AFTER].[GenerateReport].