I\'m trying to add a custom printing button (like print invoice) on the Sales Order View page (Sales > Orders > Order #... view).
I\'ve do
In Magento, any class function starting with an underscore is defined as private or protected -- it's the naming convention the core team uses -- so you cannot call it from outside the class. This is why $block->_addButton() does not work.
The good news is you can call $block->addButton() (no underscore). This is the public method that Mage_Adminhtml_Block_Widget_Container provides you.
Also, you can't call addButton() from $this, because $this is pointing to your observer class, which doesn't have an addButton() method defined (which is what your error is saying).