Hello,
Assuming you want a button that directly links to PDF, it cannot be achieved by create_callback_href(). The first argument is the parameter definition for the <a> tag surrounding the button. All you need to do to point to a specific file is change the first argument to something like:
'href="modules/Custom/MyModule/print_something.php?'.http_build_query(array('some_id'=>$id)).'" target="_blank"'
However, modifying RecordBrowser source directly is not advisable. Of course everything will be working just the way it's coded, but once the new version is available, the update process might get complicated, to say at least.
There is a method of adding some actions in the browse mode (be it full-screen browse or addon, it's the same):
$rb->set_additional_actions_method(array($this, 'new_actions'));
This code should be called after RecordBrowser is initiated and before it's displayed.
Of course if you want to add this button to Contacts it may seem that you'd have to modify the Core anyway, however there's a method:
Utils_RecordBrowserCommon::new_browse_mode_details_callback($recordset, 'modules/Custom/MyModule', 'browse_mode_details');
Allowing you to attach some more details to any RecordSet browsing view. An example of using browse-mode callback is in CRM/AccountManager. All you need to do is to have this callback and use the $rb_obj object to call set_additional_actions_method.
Addons are best to be replaced with your version of the addon that contains the adding actions call.
I understand that this method is much more work than simply modifying RecordBrowser code, but in the long run it can save you a lot of work.
Hope this helps,
Arek