Files correlati : xvaga.dll Ricompilazione Demo : [ ] Commento : 0001220: Esportazione in PDF Se imposto il foglio in orizzontale, l'esportazione in pdf sembra rigirare il foglio in verticale troncando la stampa. Impostando la stampante come pdf creator la stampa viene corretta. git-svn-id: svn://10.65.10.50/trunk@18609 c028cbd2-c16b-5b4b-a496-9718f37d4682
131 lines
4.4 KiB
C++
Executable File
131 lines
4.4 KiB
C++
Executable File
#ifndef __XVTPDF_H
|
|
#define __XVTPDF_H
|
|
|
|
#ifndef PDFLIB_H
|
|
struct PDF_c {};
|
|
#include "../pdf/pdflib/pdflibdl.h"
|
|
#endif
|
|
|
|
///////////////////////////////////////////////////////////
|
|
// TwxPDFDC
|
|
///////////////////////////////////////////////////////////
|
|
|
|
class TwxPDFDC : public wxDC
|
|
{
|
|
enum { PDF_IMG_CACHE_SIZE = 13 };
|
|
|
|
protected:
|
|
TwxPDFDC(); // Dummy constructor for dynamic construction
|
|
|
|
bool IsValidFontFile(const char* strFontFile) const;
|
|
bool GetFontFamily(const wxFont& font, wxString& file, wxString& family) const;
|
|
|
|
public:
|
|
// Recommended constructor
|
|
TwxPDFDC(const wxPrintData& data, const char* strFilename);
|
|
|
|
~TwxPDFDC();
|
|
|
|
virtual bool Ok() const;
|
|
|
|
bool DoFloodFill(wxCoord x1, wxCoord y1, const wxColour &col, int style=wxFLOOD_SURFACE );
|
|
bool DoGetPixel(wxCoord x1, wxCoord y1, wxColour *col) const;
|
|
|
|
void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
|
|
void DoCrossHair(wxCoord x, wxCoord y) ;
|
|
void DoDrawArc(wxCoord x1,wxCoord y1,wxCoord x2,wxCoord y2,wxCoord xc,wxCoord yc);
|
|
void DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea);
|
|
void DoDrawPoint(wxCoord x, wxCoord y);
|
|
void DoDrawLines(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0);
|
|
void DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle=wxODDEVEN_RULE);
|
|
void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
|
|
void DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius = 20);
|
|
void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
|
|
|
|
void DoDrawSpline(wxList *points);
|
|
|
|
bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
|
|
wxDC *source, wxCoord xsrc, wxCoord ysrc, int rop = wxCOPY, bool useMask = FALSE,
|
|
wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
|
|
bool CanDrawBitmap() const { return TRUE; }
|
|
|
|
void DoDrawIcon( const wxIcon& icon, wxCoord x, wxCoord y );
|
|
void DoDrawBitmap( const wxBitmap& bitmap, wxCoord x, wxCoord y, bool useMask=FALSE );
|
|
void DoDrawImage( const wxString& name, const wxRect& dst );
|
|
void DrawImage( const wxString& name, const wxRect& dst )
|
|
{ DoDrawImage(name, dst); }
|
|
|
|
void DoDrawText(const wxString& text, wxCoord x, wxCoord y );
|
|
void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle);
|
|
|
|
void Clear();
|
|
void SetFont( const wxFont& font );
|
|
void SetPen( const wxPen& pen );
|
|
void SetBrush( const wxBrush& brush );
|
|
void SetLogicalFunction( int function );
|
|
void SetBackground( const wxBrush& brush );
|
|
|
|
void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
|
|
void DestroyClippingRegion();
|
|
|
|
void DoSetClippingRegionAsRegion( const wxRegion &WXUNUSED(clip) ) { }
|
|
|
|
bool StartDoc(const wxString& message);
|
|
void EndDoc();
|
|
void StartPage();
|
|
void EndPage();
|
|
|
|
wxCoord GetCharHeight() const;
|
|
wxCoord GetCharWidth() const;
|
|
bool CanGetTextExtent() const { return TRUE; }
|
|
void DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y,
|
|
wxCoord *descent = (wxCoord *) NULL,
|
|
wxCoord *externalLeading = (wxCoord *) NULL,
|
|
wxFont *theFont = (wxFont *) NULL ) const;
|
|
|
|
void DoGetSize(int* width, int* height) const;
|
|
void DoGetSizeMM(int *width, int *height) const;
|
|
|
|
// Resolution in pixels per logical inch
|
|
wxSize GetPPI() const;
|
|
|
|
void SetAxisOrientation( bool xLeftRight, bool yBottomUp );
|
|
void SetDeviceOrigin( wxCoord x, wxCoord y );
|
|
|
|
void SetBackgroundMode(int WXUNUSED(mode)) { }
|
|
void SetPalette(const wxPalette& WXUNUSED(palette)) { }
|
|
|
|
const wxPrintData& GetPrintData() const { return m_printData; }
|
|
void SetPrintData(const wxPrintData& data) { m_printData = data; }
|
|
|
|
virtual int GetDepth() const { return 24; }
|
|
|
|
protected:
|
|
|
|
void SetFontColor(const wxColor& color) const;
|
|
int GetBitmapHandle(const wxBitmap& bitmap) const;
|
|
int GetImageHandle(const wxString& name);
|
|
|
|
PDF *m_p;
|
|
PDFlib_api *m_PDFlib;
|
|
|
|
wxPrintData m_printData;
|
|
wxString m_fileName;
|
|
wxColor m_color;
|
|
|
|
int m_pageNumber;
|
|
int m_fontnr;
|
|
bool m_clipping;
|
|
bool m_topDown;
|
|
bool m_pageopen;
|
|
double m_fontsize;
|
|
|
|
wxString m_filenames[PDF_IMG_CACHE_SIZE];
|
|
int m_handles[PDF_IMG_CACHE_SIZE];
|
|
int m_cacheidx;
|
|
|
|
DECLARE_DYNAMIC_CLASS(TwxPDFDC)
|
|
};
|
|
|
|
#endif
|