1
#ifndef EXTENSION_INTERNAL_PDF_H_SEEN
2
#define EXTENSION_INTERNAL_PDF_H_SEEN
6
* Lauris Kaplinski <lauris@kaplinski.com>
7
* Ted Gould <ted@gould.cx>
8
* Ulf Erikson <ulferikson@users.sf.net>
10
* Lauris' original code is in the public domain.
11
* Ted's changes are licensed under the GNU GPL.
15
#include "extension/extension.h"
16
#include "extension/implementation/implementation.h"
20
#include "libnr/nr-path.h"
22
#include "svg/stringstream.h"
31
class PrintPDF : public Inkscape::Extension::Implementation::Implementation {
37
PdfObject *page_stream;
40
std::set<std::string> _latin1_encoded_fonts;
41
bool _newlatin1font_proc_defined;
43
void print_bpath(SVGOStringStream &os, NArtBpath const *bp);
45
void print_fill_style(SVGOStringStream &os, SPStyle const *style, NRRect const *pbox);
46
void print_fill_alpha(SVGOStringStream &os, SPStyle const *style, NRRect const *pbox);
47
void print_stroke_style(SVGOStringStream &os, SPStyle const *style);
49
char const *PSFontName(SPStyle const *style);
51
unsigned int print_image(FILE *ofp, guchar *px, unsigned int width, unsigned int height, unsigned int rs,
52
NRMatrix const *transform);
53
void compress_packbits(int nin, guchar *src, int *nout, guchar *dst);
55
/* ASCII 85 variables */
58
int ascii85_linewidth;
59
/* ASCII 85 Functions */
60
void ascii85_init(void);
61
void ascii85_flush(SVGOStringStream &os);
62
inline void ascii85_out(guchar byte, SVGOStringStream &os);
63
void ascii85_nout(int n, guchar *uptr, SVGOStringStream &os);
64
void ascii85_done(SVGOStringStream &os);
69
virtual ~PrintPDF(void);
72
virtual unsigned int setup(Inkscape::Extension::Print *module);
74
virtual unsigned int set_preview(Inkscape::Extension::Print *module);
77
virtual unsigned int begin(Inkscape::Extension::Print *module, SPDocument *doc);
78
virtual unsigned int finish(Inkscape::Extension::Print *module);
80
/* Rendering methods */
81
virtual unsigned int bind(Inkscape::Extension::Print *module, NRMatrix const *transform, float opacity);
82
virtual unsigned int release(Inkscape::Extension::Print *module);
83
virtual unsigned int comment(Inkscape::Extension::Print *module, char const *comment);
84
virtual unsigned int fill(Inkscape::Extension::Print *module, NRBPath const *bpath, NRMatrix const *ctm, SPStyle const *style,
85
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox);
86
virtual unsigned int stroke(Inkscape::Extension::Print *module, NRBPath const *bpath, NRMatrix const *transform, SPStyle const *style,
87
NRRect const *pbox, NRRect const *dbox, NRRect const *bbox);
88
virtual unsigned int image(Inkscape::Extension::Print *module, unsigned char *px, unsigned int w, unsigned int h, unsigned int rs,
89
NRMatrix const *transform, SPStyle const *style);
90
virtual unsigned int text(Inkscape::Extension::Print *module, char const *text,
91
NR::Point p, SPStyle const *style);
93
bool textToPath(Inkscape::Extension::Print *ext);
94
static void init(void);
97
} /* namespace Internal */
98
} /* namespace Extension */
99
} /* namespace Inkscape */
102
#endif /* !EXTENSION_INTERNAL_PDF_H_SEEN */
107
c-file-style:"stroustrup"
108
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
113
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :