The print action is usually defined in a configuration file, app_root/dt/appconfig/types/<language>/name.dt.
If your print action starts a program that dereferences the four environment variables indicated in "Desktop Printing Environment Variables", then your data type is fully integrated. The print action must be written to be specific for the application's data type and should accept only a single file.
For example, the following print action is specific for a data type named ThisAppData:
ACTION Print { ARG_TYPE ThisAppData EXEC_STRING print_command -file %(file)Arg_1% }
If your application handles the ToolTalk Media message set Print request, then your print action could send a variant of it with the following actions.
ACTION Print { ARG_TYPE ThisAppData ARG_CLASS FILE ARG_COUNT 1 TYPE TT_MSG TT_CLASS TT_REQUEST TT_SCOPE TT_SESSION TT_OPERATION Print TT_FILE %Arg_1% TT_ARG0_ MODE TT_IN TT_ARG0_ VTYPE %Arg_1% TT_ARG1_ MODE TT_IN TT_ARG1_ VTYPE LPDEST TT_ARG1_VALUE $LPDEST TT_ARG2_MODE TT_IN TT_ARG2_VTYPE DTPRINTUSERFILENAME TT_ARG2_VALUE $DTPRINTUSERFILENAME TT_ARG3_MODE TT_IN TT_ARG3_VTYPE DTPRINTSILENT TT_ARG3_VALUE $DTPRINTSILENT TT_ARG4_MODE TT_IN TT_ARG4_VTYPE DTPRINTFILEREMOVE TT_ARG4_VALUE $DTPRINTFILEREMOVE } ACTION Print { ARG_TYPE ThisAppData ARG_CLASS BUFFER ARG_COUNT 1 TYPE TT_MSG TT_CLASS TT_REQUEST TT_SCOPE TT_SESSION TT_OPERATION Print TT_ARG0_MODE TT_IN TT_ARG0_VTYPE %Arg_1% TT_ARG0_VALUE %Arg_1% TT_ARG1_MODE TT_IN TT_ARG1_VTYPE LPDEST TT_ARG1_VALUE $LPDEST TT_ARG2_MODE TT_IN TT_ARG2_VTYPE DTPRINTUSERFILENAME TT_ARG2_VALUE $DTPRINTUSERFILENAME TT_ARG3_MODE TT_IN TT_ARG3_VTYPE DTPRINTSILENT TT_ARG3_VALUE $DTPRINTSILENT TT_ARG4_MODE TT_IN TT_ARG4_VTYPE DTPRINTFILEREMOVE TT_ARG4_VALUE false }
If any of the four environment variables are not set, the corresponding message argument will be null. When the message argument is null, refer to "Desktop Printing Environment Variables" for the default interpretation.