Preheat oven to 400 F.
Wrap the block of tofu in a few layers of paper towels, then set on a dinner plate or cutting board. Weigh it down with a heavy object like a skillet, pot, or large can while the oven preheats. Slice the tofu into blocks once they are pressed.
Meanwhile, place the sweet paprika, cumin, chili powder, garlic powder, smoked paprika and bbq sauce in a medium bowl and stir to combine. Pour in the oil and stir to combine. Add the tofu and gently stir to evenly coat. Place the tofu in a single layer on a prepared baking sheet.
Roast, stirring every 10 minutes so it cooks evenly, until the tofu is crisp all over, 30 to 35 minutes total.
Arrange on bread and top with spinach and onion. Enjoy!