What PDF is
PDF describes a page: glyphs at coordinates, not rows and columns. A table in a PDF is a visual arrangement, not a data structure.
Reports, invoices, statements and anything sent to be read rather than processed.
What Avro Schema is
An Avro schema describes a record: its name and its typed fields. It is the contract, not the data.
Kafka pipelines and anything in the Hadoop family.
What changes when you convert PDF to Avro Schema
Every character in a text-based PDF carries its position on the page. Characters sharing a baseline are one row. Columns are found from the vertical strips no character ever occupies, which is why extraction works cleanly on a document laid out with spacing and badly on one laid out with ruled lines. A header repeated at the top of each page is detected and dropped rather than landing in the middle of the data.
Types are inferred per column from the values present. Any column with a gap in it becomes a union with null, because a reader rejects a record whose non-nullable field is missing.
What carries over from PDF to Avro Schema
One property of the PDF has no home in Avro, and it is worth knowing which before you convert.
Avro wants a type for each column, and PDF does not record one, so each column is typed from what its values look like. A column of digits that should stay text - a zip code, a phone number, a leading-zero id - is the usual thing to check afterwards.
Anything visual in the PDF - weight, alignment, colour, column widths - has no counterpart in Avro and is dropped. The values are what survives.
The result can be read a record at a time, and appended to by adding to the end of it. That is worth having for a table too large to hold in memory, and it means a Avro file that is cut off part way through still gives you every record before the cut.
This is the direction that recovers structure: PDF has no table in it to read, only an arrangement that looks like one, so the rows and columns are inferred rather than read.