FreeBSD Manual Pages
XmPrintToFile(3) Library Functions Manual XmPrintToFile(3) NAME XmPrintToFile -- Retrieves and saves data that would normally be printed by the X Print Server. SYNOPSIS #include <Xm/Print.h> XtEnumXmPrintToFile( Display*dpy, Stringfilename, XPFinishProcfinish_proc, XtPointerclient_data); DESCRIPTION XmPrintToFile hides the details of X display connection and XpGetDocu- mentData to the Motif application programmer. This function is a convenience routine that hides the details of the X and Xp internals to the application programmer by calling the XpGetDoc- umentData function with appropriate save and finish callbacks. This is used in the context of X Printing when the user has specified the "print-to-file" option from a regular Print Setup Dialog box. XmPrintToFile first tries to open the given filename for writing and returns False if it can't. Else, it uses XpGetDocumentData, giving it a save proc that writes the data received in the file and a finish proc that closes the file or removes it on an unsuccessful termination. It calls finish_proc at that point, passing it the argument received from the Xp layer (status == XPGetDocFinished means the file is valid and was closed, otherwise the file was removed). XmPrintToFile is non-blocking; if it returns successfully, it just means the file was opened successfully, not that all the data was re- ceived. dpy Print display connection. filename Name of the file to put the print data in. finish_proc Called when all the data has been received. client_data Passed with the finish_proc. RETURN VALUE Returns False if the filename could not be created or opened for writ- ing, True otherwise. ERRORS/WARNINGS Not applicable EXAMPLES A typical OK callback from a DtPrintSetupBox: PrintOKCallback(widget...) /*-------------*/ { int save_data = XPSpool; pshell = XmPrintSetup (widget, pbs->print_screen, "Print", NULL, 0); XtAddCallback(pshell, XmNstartJobCallback, startJobCB, data); if (pbs->destination == DtPRINT_TO_FILE) save_data = XPGetData; /* start job must precede XpGetDocumentData in XmPrintToFile */ XpStartJob(XtDisplay(pshell), save_data); XFlush(XtDisplay(pshell)); /* maintain the sequence between startjob and getdocument */ /* setup print to file */ if (pbs->destination == DtPRINT_TO_FILE) XmPrintToFile(XtDisplay(pshell), pbs->dest_info, FinishPrintToFile, NULL); } } static void startJobCB(Widget, XtPointer call_data, XtPointer client_data) { print(p); /* rendering happens here */ XpEndJob(XtDisplay(p->print_shell)); /* clean up */ XtDestroyWidget(p->print_shell); XtCloseDisplay(XtDisplay(p->print_shell)); } SEE ALSO XmPrintSetup(3), XmPrintShell(3), XmRedisplayWidget(3), XmPrintPopup- PDM(3) XmPrintToFile(3)
NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS/WARNINGS | EXAMPLES | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XmPrintToFile&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>