As you have found out there is no easy solution. As it is Magento simply does not calculate any totals for the shipment (which the packing slip pdf is based on). For example if you compare on the database level the tables
sales_flat_invoice you will notice that the shipment does not include any currency amounts.
If you wanted to tackle this completely you would need to do a lot of things including
- adding the required database fields to both
write the code that actually runs the total calculation - if you
look into app/code/core/Mage/Sales/etc/config.xml
you will find global/sales/quote/totals
but again nothing for
shipments. You would need to implement the calculation classes for
each new total as well.
- once the above is done you could then pull in the numbers into the
packing slip pdf like you have already done
If, and only if, you are always shipping all ordered items you could use a shortcut. Instead of printing the packing slip based on the shipment object you could print the packing slip based on the order item (this way you have access to the calculated figures).
$this->_drawItem($item, $page, $order);
$this->_drawItem($item->getOrderItem(), $page, $order);
in Mage_Sales_Model_Order_Pdf_Shipment should give you a starting point.