mirror of
https://github.com/fltk/fltk.git
synced 2026-06-07 17:35:39 +08:00
Added Fl_PSfile_Device::start_job() with user-given filename.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7277 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
+15
-9
@@ -66,9 +66,6 @@ public:
|
||||
/**
|
||||
@brief Starts a print job.
|
||||
*
|
||||
Fully implemented for Mac OS X and MSWindows. For other platforms, temporarily
|
||||
implemented as an Fl_PSfile_Device, that is, graphics go to an A4-sized local PostScript file,
|
||||
and frompage/topage arguments are ignored.
|
||||
@param[in] pagecount the total number of pages of the job
|
||||
@param[out] frompage if non-null, *frompage is set to the first page the user wants printed
|
||||
@param[out] topage if non-null, *topage is set to the last page the user wants printed
|
||||
@@ -511,16 +508,26 @@ public:
|
||||
@return 0 iff OK
|
||||
*/
|
||||
int start_job(int pagecount, enum Page_Format format = A4, enum Page_Layout layout = PORTRAIT);
|
||||
|
||||
/**
|
||||
@brief Begins the session where all graphics will go to named PostScript file.
|
||||
*
|
||||
@param fname The name of the output local PostScript file.
|
||||
@param pagecount The total number of pages to be created.
|
||||
@param format Desired page format.
|
||||
@param layout Desired page layout.
|
||||
@return 0 iff OK
|
||||
*/
|
||||
int start_job(const char *fname, int pagecount, enum Page_Format format = A4, enum Page_Layout layout = PORTRAIT);
|
||||
|
||||
};
|
||||
|
||||
#ifndef FL_DOXYGEN
|
||||
|
||||
#ifdef __APPLE__
|
||||
class Fl_Printer : public Fl_Quartz_Printer {
|
||||
};
|
||||
typedef Fl_Quartz_Printer Fl_Printer;
|
||||
#elif defined(WIN32)
|
||||
class Fl_Printer : public Fl_GDI_Printer {
|
||||
};
|
||||
typedef Fl_GDI_Printer Fl_Printer;
|
||||
#else
|
||||
class Fl_PS_Printer : public Fl_PSfile_Device {
|
||||
public:
|
||||
@@ -528,8 +535,7 @@ public:
|
||||
~Fl_PS_Printer(void) {};
|
||||
int start_job(int pages, int *firstpage = NULL, int *lastpage = NULL);
|
||||
};
|
||||
class Fl_Printer : public Fl_PS_Printer {
|
||||
};
|
||||
typedef Fl_PS_Printer Fl_Printer;
|
||||
|
||||
#endif // __APPLE__
|
||||
|
||||
|
||||
+13
-2
@@ -178,8 +178,11 @@ static const char * prolog =
|
||||
// width (string) x y show_pos_width
|
||||
"/show_pos_width {GS moveto dup stringwidth pop 3 2 roll exch div -1 matrix scale concat "
|
||||
"show GR } bind def\n"
|
||||
//"/show_pos_width {GS moveto dup stringwidth pop 3 2 roll exch div dup /sx exch def -1 matrix scale concat "
|
||||
//"show 6 FS sx 10 string cvs show GR } bind def\n" // displays also scaling value
|
||||
|
||||
//"/show_pos_width {GS moveto dup stringwidth pop 3 2 roll exch div "
|
||||
//"dup 0.85 lt {pop 0.85} if "
|
||||
//"dup /sx exch def -1 matrix scale concat "
|
||||
//"show 8 FS sx 10 string cvs 0 4 getinterval 0 -3 rmoveto show GR } bind def\n" // displays also scaling value
|
||||
|
||||
;
|
||||
|
||||
@@ -1186,6 +1189,14 @@ int Fl_PSfile_Device::start_job (int pagecount, enum Page_Format format, enum Pa
|
||||
return start_postscript(pagecount, format, layout);
|
||||
}
|
||||
|
||||
int Fl_PSfile_Device::start_job (const char *fname, int pagecount, enum Page_Format format, enum Page_Layout layout)
|
||||
{
|
||||
output = fopen(fname, "w");
|
||||
if(output == NULL) return 1;
|
||||
ps_filename_ = strdup(fname);
|
||||
return start_postscript(pagecount, format, layout);
|
||||
}
|
||||
|
||||
void Fl_PSfile_Device::end_job (void)
|
||||
// finishes PostScript & closes file
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user