]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/html/htmprint.h
   1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        html/htmprint.h 
   3 // Purpose:     interface of wxHtmlDCRenderer 
   4 // Author:      wxWidgets team 
   6 // Licence:     wxWindows licence 
   7 ///////////////////////////////////////////////////////////////////////////// 
  10     @class wxHtmlDCRenderer 
  12     This class can render HTML document into a specified area of a DC. 
  13     You can use it in your own printing code, although use of wxHtmlEasyPrinting 
  14     or wxHtmlPrintout is strongly recommended. 
  19 class wxHtmlDCRenderer 
: public wxObject
 
  28         Returns the width of the HTML text in pixels. 
  30         This can be compared with the width parameter of SetSize() to check if 
  31         the document being printed fits into the page boundary. 
  37     int GetTotalWidth() const; 
  40         Returns the height of the HTML text in pixels. 
  42         This is important if area height (see wxHtmlDCRenderer::SetSize) is 
  43         smaller that total height and thus the page cannot fit into it. In that 
  44         case you're supposed to call Render() as long as its return value is 
  45         smaller than GetTotalHeight()'s. 
  49     int GetTotalHeight() const; 
  52         Renders HTML text to the DC. 
  55             position of upper-left corner of printing rectangle (see SetSize()). 
  56         @param known_pagebreaks 
  59             y-coordinate of the very first visible cell. 
  61             if @true then this method only returns y coordinate of the next page 
  62             and does not output anything. 
  64             y-coordinate of the last visible cell. 
  66         Returned value is y coordinate of first cell than didn't fit onto page. 
  67         Use this value as from in next call to Render() in order to print 
  71         The following three methods @b must always be called before any call to 
  72         Render(), in this order: 
  77         @note Render() changes the DC's user scale and does NOT restore it. 
  79     int Render(int x
, int y
, wxArrayInt
& known_pagebreaks
, int from 
= 0, 
  80                int dont_render 
= false, int to 
= INT_MAX
); 
  83         Assign DC instance to the renderer. 
  85         @a pixel_scale can be used when rendering to high-resolution DCs (e.g. printer) 
  86         to adjust size of pixel metrics. 
  87         (Many dimensions in HTML are given in pixels -- e.g. image sizes. 300x300 
  88         image would be only one inch wide on typical printer. With pixel_scale = 3.0 
  89         it would be 3 inches.) 
  91     void SetDC(wxDC
* dc
, double pixel_scale 
= 1.0); 
  94         This function sets font sizes and faces. 
  97             This is face name for normal (i.e. non-fixed) font. 
  98             It can be either empty string (then the default face is chosen) or 
  99             platform-specific face name. Examples are "helvetica" under Unix or 
 100             "Times New Roman" under Windows. 
 102             The same thing for fixed face ( \<TT\>..\</TT\> ) 
 104             This is an array of 7 items of int type. 
 105             The values represent size of font with HTML size from -2 to +4 
 106             ( \<FONT SIZE=-2\> to \<FONT SIZE=+4\> ). 
 107             Default sizes are used if sizes is @NULL. 
 109         Default font sizes are defined by constants wxHTML_FONT_SIZE_1, 
 110         wxHTML_FONT_SIZE_2, ..., wxHTML_FONT_SIZE_7. 
 111         Note that they differ among platforms. Default face names are empty strings. 
 115     void SetFonts(const wxString
& normal_face
, const wxString
& fixed_face
, 
 116                   const int* sizes 
= NULL
); 
 119         Sets font sizes to be relative to the given size or the system 
 120         default size; use either specified or default font 
 123             Point size of the default HTML text 
 125             This is face name for normal (i.e. non-fixed) font. It can be  
 126             either empty string (then the default face is chosen) or  
 127             platform-specific face name. Examples are "helvetica" under  
 128             Unix or "Times New Roman" under Windows. 
 130             The same thing for fixed face ( \<TT\>..\</TT\> )  
 134     void SetStandardFonts(int size 
= -1, 
 135                           const wxString
& normal_face 
= wxEmptyString
, 
 136                           const wxString
& fixed_face 
= wxEmptyString
); 
 139         Assign text to the renderer. Render() then draws the text onto DC. 
 142             HTML text. This is not a filename. 
 144             base directory (html string would be stored there if it was in file). 
 145             It is used to determine path for loading images, for example. 
 147             @false if basepath is filename, @true if it is directory name 
 148             (see wxFileSystem for detailed explanation). 
 150     void SetHtmlText(const wxString
& html
, 
 151                      const wxString
& basepath 
= wxEmptyString
, 
 155         Set size of output rectangle, in pixels. Note that you @b can't change 
 156         width of the rectangle between calls to Render() ! 
 157         (You can freely change height.) 
 159     void SetSize(int width
, int height
); 
 165     @class wxHtmlEasyPrinting 
 167     This class provides very simple interface to printing architecture. 
 168     It allows you to print HTML documents using only a few commands. 
 171     Do not create this class on the stack only. You should create an instance 
 172     on app startup and use this instance for all printing operations. 
 173     The reason is that this class stores various settings in it. 
 176     @category{html,printing} 
 178 class wxHtmlEasyPrinting 
: public wxObject
 
 185             Name of the printing object. Used by preview frames and setup dialogs. 
 187             pointer to the window that will own the preview frame and setup dialogs. 
 190     wxHtmlEasyPrinting(const wxString
& name 
= "Printing", 
 191                        wxWindow
* parentWindow 
= NULL
); 
 194         Returns the current name being used for preview frames and setup 
 197         @since 2.8.11 / 2.9.1 
 199     const wxString
& GetName() const; 
 202         Returns a pointer to wxPageSetupDialogData instance used by this class. 
 203         You can set its parameters (via SetXXXX methods). 
 205     wxPageSetupDialogData
* GetPageSetupData(); 
 208         Gets the parent window for dialogs. 
 210     wxWindow
* GetParentWindow() const; 
 213         Returns pointer to wxPrintData instance used by this class. 
 214         You can set its parameters (via SetXXXX methods). 
 216     wxPrintData
* GetPrintData(); 
 219         Display page setup dialog and allows the user to modify settings. 
 226         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed 
 227         information about the kind of the error. 
 229     bool PreviewFile(const wxString
& htmlfile
); 
 232         Preview HTML text (not file!). 
 234         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed 
 235         information about the kind of the error. 
 240             base directory (html string would be stored there if it was in file). 
 241             It is used to determine path for loading images, for example. 
 243     bool PreviewText(const wxString
& htmltext
, 
 244                      const wxString
& basepath 
= wxEmptyString
); 
 249         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed 
 250         information about the kind of the error. 
 252     bool PrintFile(const wxString
& htmlfile
); 
 255         Print HTML text (not file!). 
 257         Returns @false in case of error -- call wxPrinter::GetLastError to get detailed 
 258         information about the kind of the error. 
 263             base directory (html string would be stored there if it was in file). 
 264             It is used to determine path for loading images, for example. 
 266     bool PrintText(const wxString
& htmltext
, 
 267                    const wxString
& basepath 
= wxEmptyString
); 
 270         Sets fonts. See wxHtmlDCRenderer::SetFonts for detailed description. 
 272     void SetFonts(const wxString
& normal_face
, const wxString
& fixed_face
, 
 273                   const int* sizes 
= NULL
); 
 276         Sets the name used for preview frames and setup dialogs. 
 278         @since 2.8.11 / 2.9.1 
 280     void SetName(const wxString
& name
); 
 283         Sets default font sizes and/or default font size.  
 284         See wxHtmlDCRenderer::SetStandardFonts for detailed description. 
 287     void SetStandardFonts(int size 
= -1, 
 288                           const wxString
& normal_face 
= wxEmptyString
, 
 289                           const wxString
& fixed_face 
= wxEmptyString
); 
 292         Set page footer. The following macros can be used inside it: 
 293          @@DATE@ is replaced by the current date in default format 
 294          @@PAGENUM@ is replaced by page number 
 295          @@PAGESCNT@ is replaced by total number of pages 
 296          @@TIME@ is replaced by the current time in default format 
 297          @@TITLE@ is replaced with the title of the document 
 300             HTML text to be used as footer. 
 302             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants. 
 304     void SetFooter(const wxString
& footer
, int pg 
= wxPAGE_ALL
); 
 307         Set page header. The following macros can be used inside it: 
 308         - @@DATE@ is replaced by the current date in default format 
 309         - @@PAGENUM@ is replaced by page number 
 310         - @@PAGESCNT@ is replaced by total number of pages 
 311         - @@TIME@ is replaced by the current time in default format 
 312         - @@TITLE@ is replaced with the title of the document 
 315             HTML text to be used as header. 
 317             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants. 
 319     void SetHeader(const wxString
& header
, int pg 
= wxPAGE_ALL
); 
 322         Sets the parent window for dialogs. 
 324     void SetParentWindow(wxWindow
* window
); 
 328         Check whether the document fits into the page area. 
 330         This function is called by the base class OnPreparePrinting() 
 331         implementation and by default checks whether the document fits into 
 332         @a pageArea horizontally and warns the user if it does not, giving him 
 333         the possibility to cancel printing in this case (presumably in order to 
 334         change some layout options and retry it again). 
 336         You may override it to either suppress this check if truncation of the 
 337         HTML being printed is acceptable or, on the contrary, add more checks to 
 338         it, e.g. for the fit in the vertical direction if the document should 
 339         always appear on a single page. 
 342             @true if wxHtmlPrintout should continue or @false to cancel 
 347     virtual bool CheckFit(const wxSize
& pageArea
, const wxSize
& docArea
) const; 
 353     @class wxHtmlPrintout 
 355     This class serves as printout class for HTML documents. 
 358     @category{html,printing} 
 360 class wxHtmlPrintout 
: public wxPrintout
 
 366     wxHtmlPrintout(const wxString
& title 
= "Printout"); 
 369         Adds a filter to the static list of filters for wxHtmlPrintout. 
 370         See wxHtmlFilter for further information. 
 372     static void AddFilter(wxHtmlFilter
* filter
); 
 375         This function sets font sizes and faces. See wxHtmlWindow::SetFonts 
 376         for detailed description. 
 378     void SetFonts(const wxString
& normal_face
, const wxString
& fixed_face
, 
 379                   const int* sizes 
= NULL
); 
 382         Set page footer. The following macros can be used inside it: 
 383         - @@DATE@ is replaced by the current date in default format 
 384         - @@PAGENUM@ is replaced by page number 
 385         - @@PAGESCNT@ is replaced by total number of pages 
 386         - @@TIME@ is replaced by the current time in default format 
 387         - @@TITLE@ is replaced with the title of the document 
 390             HTML text to be used as footer. 
 392             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants. 
 394     void SetFooter(const wxString
& footer
, int pg 
= wxPAGE_ALL
); 
 397         Set page header. The following macros can be used inside it: 
 398         - @@DATE@ is replaced by the current date in default format 
 399         - @@PAGENUM@ is replaced by page number 
 400         - @@PAGESCNT@ is replaced by total number of pages 
 401         - @@TIME@ is replaced by the current time in default format 
 402         - @@TITLE@ is replaced with the title of the document 
 405             HTML text to be used as header. 
 407             one of wxPAGE_ODD, wxPAGE_EVEN and wxPAGE_ALL constants. 
 409     void SetHeader(const wxString
& header
, int pg 
= wxPAGE_ALL
); 
 412         Prepare the class for printing this HTML @b file. 
 413         The file may be located on any virtual file system or it may be normal file. 
 415     void SetHtmlFile(const wxString
& htmlfile
); 
 418         Prepare the class for printing this HTML text. 
 421             HTML text. (NOT file!) 
 423             base directory (html string would be stored there if it was in file). 
 424             It is used to determine path for loading images, for example. 
 426             @false if basepath is filename, @true if it is directory name 
 427             (see wxFileSystem for detailed explanation). 
 429     void SetHtmlText(const wxString
& html
, 
 430                      const wxString
& basepath 
= wxEmptyString
, 
 434         Sets margins in millimeters. 
 435         Defaults to 1 inch for margins and 0.5cm for space between text and header 
 438     void SetMargins(float top 
= 25.2, float bottom 
= 25.2,