In order to reduce complexity, you can probably start by supporting a subset of the key features of Obsidain (excluding embedding dynamic content, since it might lead to more complexity). As for where to start, it’s a fair point, I would imagine a dialog asking for the starting point. From there you can build a tree through the links and pull in those specific documents/pages. For embedded content, you can cut support for types of content by choosing file types that are fairly static (pdf/images). That might help mitigate the embedded loop altogether.
Obsidian isn’t open sourced, so I cannot look and make suggestions. Therefore, I am not sure how hard it would be to design an export to PDF function that builds a tree of links/documents based on a “start” page.
Although, I think that carefully crafting a subset of features that is supported and types of content that is supported for pdf export would probably help make the task relatively more possible vs not.
I found a similar request as mines already floating in the #feature-requests section so I will piggyback there.
Thanks for the information.