#ifndef __PS_H
#define __PS_H
#include "GraphicsDriver.h"
class FilterIO;
class Halftone;
class PSDriver : public GraphicsDriver {
public:
PSDriver(BMessage* message, PrinterData* printerData,
const PrinterCap* printerCap);
protected:
virtual bool StartDocument();
virtual bool StartPage(int page);
virtual bool NextBand(BBitmap* bitmap, BPoint* offset);
virtual bool EndPage(int page);
virtual bool EndDocument(bool success);
private:
void _SetupCTM();
void _JobStart();
void _StartRasterGraphics(int x, int y, int width,
int height, int widthByte);
void _EndRasterGraphics();
void _RasterGraphics(int compression_method,
const uchar* buffer, int size);
void _JobEnd();
void _StartFilterIfNeeded();
void _FlushFilterIfNeeded();
void _WritePSString(const char* format, ...);
void _WritePSData(const void* data, size_t size);
int fPrintedPages;
int fCompressionMethod;
Halftone* fHalftone;
FilterIO* fFilterIO;
};
#endif