When dvc_choose() has set up the print buffer, you are ready to send information to it. You do this by using the functions form(), which is analogous to map_draw() and perhaps form_beside(), and form_over(). (There is no equiavlent of map_attach() currently).
Data is printed into the form using the prn_x() functions, which work exactly like the show_x() functions do for screen based maps, and use show_flags and showd_flags in the same way. Versions of the functions without an underscore, prnx() also exist. These have an additional parameter that allows field by field specification of format flags. The latter functions are only really retained for compatibility with very old versions of DP4 - normally you won't specify formatting information within the program, but directly in the map.
Programs that print need to manage their own pagination. Your program should monitor the number of lines printed so far by testing the linenr variable. When this is close to the maximum number of lines allowed on a page, as given in the page_depth variable, your program will call prn_print() to print the current contents of the print buffer as described next. Normally you will allow a few blank lines. Programs often print a page header and footer on each page. There are no special routines for this, but you can discover the amount of room your maps take up by calling the map_get_depth() function.
Programs sometimes print to pre-printed stationery, though this is not very common nowadays. If you do need to do this, the form_test() function may be useful to allow the user to line the paper up properly.