Windows底层有这样的函数么?还是跟打印机的驱动有关系?

解决方案 »

  1.   

    need自己开发
      

  2.   

    Hook这个API?EndPage
    The EndPage function informs the device that the application has finished writing to a page. This function is typically used to direct the device driver to advance to a new page. This function replaces the NEWFRAME printer escape. int EndPage(
      HDC hdc   // handle to device context
    );
     
    Parameters
    hdc 
    Handle to the device context for the print job. 
    Return Values
    If the function succeeds, the return value is greater than zero. If the function fails, the return value is less than or equal to zero. Windows NT: To get extended error information, callGetLastError. Res
    Use the ResetDC function to change the device mode, if necessary, after calling the EndPage function. Note that a call to ResetDC resets all device context attributes back to default values.Windows 3.x: EndPage resets the device context attributes back to default values. You must re-select objects and set up the mapping mode again before printing the next page.Windows 95: EndPage does not reset the device context attributes. However, the next StartPage call does reset the device context attributes to default values. At that time, you must re-select objects and set up the mapping mode again before printing the next page.Windows NT: Beginning with Windows NT Version 3.5, neither EndPage or StartPage resets the device context attributes. Device context attributes remain constant across subsequent pages. You do not need to re-select objects and set up the mapping mode again before printing the next page; however, doing so will produce the same results and reduce code differences between Windows 95 and Windows NT.QuickInfo
      Windows NT: Requires version 3.1 or later.
      Windows: Requires Windows 95 or later.
      Windows CE: Requires version 2.0 or later.
      Header: Declared in wingdi.h.
      Import Library: Use gdi32.lib.See Also
    Printing and Print Spooler Overview, Printing and Print Spooler Functions, ResetDC, StartPage  
      

  3.   

    WinAPIOverridehttp://jacquelin.potier.free.fr/winapioverride32/
      

  4.   


    Note  This is a blocking or synchronous function and might not return immediately. How quickly this function returns depends on run-time factors such as network status, print server configuration, and printer driver implementation—factors that are difficult to predict when writing an application. Calling this function from a thread that manages interaction with the user interface could make the application appear to be unresponsive.The sequence for a print job is as follows:1.To begin a print job, call StartDocPrinter. 
    2.To begin each page, call StartPagePrinter. 
    3.To write data to a page, call WritePrinter. 
    4.To end each page, call EndPagePrinter. 
    5.Repeat 2, 3, and 4 for as many pages as necessary. 
    To end the print job, call EndDocPrinter.hook EndPagePrinter()应该是可以的