I have the same problem, after google and found no solution.
So I think I should share my current findings to all.
After reading USB HID specification and Arduino's USBAPI.h/HID.cpp, I found this maybe work:
#define KEY_PRNT_SCRN 206
In HID spec, F12 key id is 69, PrintScreen is 70.
But in arduino's defines, F12 is 205.
Finally I found there is translate in HID.cpp:
size_t Keyboard_::release(uint8_t k)
{
uint8_t i;
if (k >= 136) { // it's a non-printing key (not a modifier)
** k = k - 136;**
} else if (k >= 128) { // it's a modifier key
_keyReport.modifiers &= ~(1<<(k-128));
k = 0;
} else { // it's a printing key
k = pgm_read_byte(_asciimap + k);
You can see, F12 is 205-136=69, so if you want send 70, try 206
Arduino's API try to compitable with ASCII input, and do some convertion.