Pangolin
Header-only C++20 plane computational geometry library
Loading...
Searching...
No Matches
pgl::pdfgen Namespace Reference

Namespaces

namespace  detail

Classes

struct  pdf_info
struct  pdf_path_operation
struct  pdf_object
struct  pdf_doc

Functions

constexpr float PDF_INCH_TO_POINT (float inch)
constexpr float PDF_MM_TO_POINT (float mm)
constexpr std::uint32_t PDF_RGB (unsigned int r, unsigned int g, unsigned int b)
constexpr std::uint32_t PDF_ARGB (unsigned int a, unsigned int r, unsigned int g, unsigned int b)
constexpr float PDF_RGB_R (std::uint32_t colour)
constexpr float PDF_RGB_G (std::uint32_t colour)
constexpr float PDF_RGB_B (std::uint32_t colour)
constexpr bool PDF_IS_TRANSPARENT (std::uint32_t colour)
int pdf_set_err (pdf_doc *doc, int errval, const char *buffer,...)
const char * pdf_get_err (const pdf_doc *pdf, int *errval)
void pdf_clear_err (pdf_doc *pdf)
pdf_objectpdf_get_object (const pdf_doc *pdf, int index)
pdf_objectpdf_find_first_object (const pdf_doc *pdf, int type)
pdf_objectpdf_find_last_object (const pdf_doc *pdf, int type)
int pdf_append_object (pdf_doc *pdf, pdf_object *object)
pdf_objectpdf_add_object (pdf_doc *pdf, int type)
float pdf_width (const pdf_doc *pdf)
float pdf_height (const pdf_doc *pdf)
float pdf_page_width (const pdf_object *page)
float pdf_page_height (const pdf_object *page)
int pdf_set_font (pdf_doc *pdf, const char *font)
pdf_docpdf_create (float width, float height, const pdf_info *info)
void pdf_destroy (pdf_doc *pdf)
pdf_objectpdf_append_page (pdf_doc *pdf)
pdf_objectpdf_get_page (pdf_doc *pdf, int page_number)
int pdf_page_set_size (pdf_doc *pdf, pdf_object *page, float width, float height)
int pdf_add_stream (pdf_doc *pdf, pdf_object *page, const std::string &buffer)
std::string pdf_escape_content_string (std::string_view value)
int pdf_add_text (pdf_doc *pdf, pdf_object *page, const char *text, float size, float xoff, float yoff, std::uint32_t colour)
float pdf_clamp_alpha (float alpha)
bool pdf_alpha_equal (float left, float right)
int pdf_find_or_create_ext_gstate (pdf_doc *pdf, pdf_object *page, float fill_alpha, float stroke_alpha)
int pdf_add_line_pattern (pdf_doc *pdf, pdf_object *page, float x1, float y1, float x2, float y2, float width, std::uint32_t colour, const float pattern[], int pattern_len, float phase, float stroke_alpha=1.0f)
int pdf_add_line (pdf_doc *pdf, pdf_object *page, float x1, float y1, float x2, float y2, float width, std::uint32_t colour, float stroke_alpha=1.0f)
int pdf_add_cubic_bezier (pdf_doc *pdf, pdf_object *page, float x1, float y1, float x2, float y2, float xq1, float yq1, float xq2, float yq2, float width, std::uint32_t colour, float stroke_alpha=1.0f)
int pdf_add_quadratic_bezier (pdf_doc *pdf, pdf_object *page, float x1, float y1, float x2, float y2, float xq1, float yq1, float width, std::uint32_t colour, float stroke_alpha=1.0f)
int pdf_add_custom_path (pdf_doc *pdf, pdf_object *page, const pdf_path_operation *operations, int operation_count, float stroke_width, std::uint32_t stroke_colour, std::uint32_t fill_colour, float fill_alpha=1.0f, float stroke_alpha=1.0f)
int pdf_add_ellipse (pdf_doc *pdf, pdf_object *page, float x, float y, float xradius, float yradius, float width, std::uint32_t colour, std::uint32_t fill_colour, float fill_alpha=1.0f, float stroke_alpha=1.0f)
int pdf_add_circle (pdf_doc *pdf, pdf_object *page, float x, float y, float radius, float width, std::uint32_t colour, std::uint32_t fill_colour, float fill_alpha=1.0f, float stroke_alpha=1.0f)
int pdf_add_rectangle (pdf_doc *pdf, pdf_object *page, float x, float y, float width, float height, float border_width, std::uint32_t colour, float stroke_alpha=1.0f)
int pdf_add_filled_rectangle (pdf_doc *pdf, pdf_object *page, float x, float y, float width, float height, float border_width, std::uint32_t colour_fill, std::uint32_t colour_border, float fill_alpha=1.0f, float stroke_alpha=1.0f)
int pdf_add_polygon (pdf_doc *pdf, pdf_object *page, const float x[], const float y[], int count, float border_width, std::uint32_t colour, float stroke_alpha=1.0f)
int pdf_add_filled_polygon (pdf_doc *pdf, pdf_object *page, const float x[], const float y[], int count, float border_width, std::uint32_t colour, float fill_alpha=1.0f, float stroke_alpha=1.0f)
int pdf_save_buffer (pdf_doc *pdf, std::string &out)
int pdf_save_file (pdf_doc *pdf, FILE *fp)
int pdf_save (pdf_doc *pdf, const char *filename)
std::string pdf_to_string (pdf_doc *pdf)

Variables

constexpr float PDF_LETTER_WIDTH = PDF_INCH_TO_POINT(8.5f)
constexpr float PDF_LETTER_HEIGHT = PDF_INCH_TO_POINT(11.0f)
constexpr float PDF_A4_WIDTH = PDF_MM_TO_POINT(210.0f)
constexpr float PDF_A4_HEIGHT = PDF_MM_TO_POINT(297.0f)
constexpr float PDF_A3_WIDTH = PDF_MM_TO_POINT(297.0f)
constexpr float PDF_A3_HEIGHT = PDF_MM_TO_POINT(420.0f)
constexpr std::uint32_t PDF_RED = PDF_RGB(0xffu, 0u, 0u)
constexpr std::uint32_t PDF_GREEN = PDF_RGB(0u, 0xffu, 0u)
constexpr std::uint32_t PDF_BLUE = PDF_RGB(0u, 0u, 0xffu)
constexpr std::uint32_t PDF_BLACK = PDF_RGB(0u, 0u, 0u)
constexpr std::uint32_t PDF_WHITE = PDF_RGB(0xffu, 0xffu, 0xffu)
constexpr std::uint32_t PDF_TRANSPARENT = (0xffu << 24)

Function Documentation

◆ pdf_add_circle()

int pgl::pdfgen::pdf_add_circle ( pdf_doc * pdf,
pdf_object * page,
float x,
float y,
float radius,
float width,
std::uint32_t colour,
std::uint32_t fill_colour,
float fill_alpha = 1.0f,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_cubic_bezier()

int pgl::pdfgen::pdf_add_cubic_bezier ( pdf_doc * pdf,
pdf_object * page,
float x1,
float y1,
float x2,
float y2,
float xq1,
float yq1,
float xq2,
float yq2,
float width,
std::uint32_t colour,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_custom_path()

int pgl::pdfgen::pdf_add_custom_path ( pdf_doc * pdf,
pdf_object * page,
const pdf_path_operation * operations,
int operation_count,
float stroke_width,
std::uint32_t stroke_colour,
std::uint32_t fill_colour,
float fill_alpha = 1.0f,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_ellipse()

int pgl::pdfgen::pdf_add_ellipse ( pdf_doc * pdf,
pdf_object * page,
float x,
float y,
float xradius,
float yradius,
float width,
std::uint32_t colour,
std::uint32_t fill_colour,
float fill_alpha = 1.0f,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_filled_polygon()

int pgl::pdfgen::pdf_add_filled_polygon ( pdf_doc * pdf,
pdf_object * page,
const float x[],
const float y[],
int count,
float border_width,
std::uint32_t colour,
float fill_alpha = 1.0f,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_filled_rectangle()

int pgl::pdfgen::pdf_add_filled_rectangle ( pdf_doc * pdf,
pdf_object * page,
float x,
float y,
float width,
float height,
float border_width,
std::uint32_t colour_fill,
std::uint32_t colour_border,
float fill_alpha = 1.0f,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_line()

int pgl::pdfgen::pdf_add_line ( pdf_doc * pdf,
pdf_object * page,
float x1,
float y1,
float x2,
float y2,
float width,
std::uint32_t colour,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_line_pattern()

int pgl::pdfgen::pdf_add_line_pattern ( pdf_doc * pdf,
pdf_object * page,
float x1,
float y1,
float x2,
float y2,
float width,
std::uint32_t colour,
const float pattern[],
int pattern_len,
float phase,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_object()

pdf_object * pgl::pdfgen::pdf_add_object ( pdf_doc * pdf,
int type )
inline

◆ pdf_add_polygon()

int pgl::pdfgen::pdf_add_polygon ( pdf_doc * pdf,
pdf_object * page,
const float x[],
const float y[],
int count,
float border_width,
std::uint32_t colour,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_quadratic_bezier()

int pgl::pdfgen::pdf_add_quadratic_bezier ( pdf_doc * pdf,
pdf_object * page,
float x1,
float y1,
float x2,
float y2,
float xq1,
float yq1,
float width,
std::uint32_t colour,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_rectangle()

int pgl::pdfgen::pdf_add_rectangle ( pdf_doc * pdf,
pdf_object * page,
float x,
float y,
float width,
float height,
float border_width,
std::uint32_t colour,
float stroke_alpha = 1.0f )
inline

◆ pdf_add_stream()

int pgl::pdfgen::pdf_add_stream ( pdf_doc * pdf,
pdf_object * page,
const std::string & buffer )
inline

◆ pdf_add_text()

int pgl::pdfgen::pdf_add_text ( pdf_doc * pdf,
pdf_object * page,
const char * text,
float size,
float xoff,
float yoff,
std::uint32_t colour )
inline

◆ pdf_alpha_equal()

bool pgl::pdfgen::pdf_alpha_equal ( float left,
float right )
inline

◆ pdf_append_object()

int pgl::pdfgen::pdf_append_object ( pdf_doc * pdf,
pdf_object * object )
inline

◆ pdf_append_page()

pdf_object * pgl::pdfgen::pdf_append_page ( pdf_doc * pdf)
inline

◆ PDF_ARGB()

std::uint32_t pgl::pdfgen::PDF_ARGB ( unsigned int a,
unsigned int r,
unsigned int g,
unsigned int b )
inlineconstexpr

◆ pdf_clamp_alpha()

float pgl::pdfgen::pdf_clamp_alpha ( float alpha)
inline

◆ pdf_clear_err()

void pgl::pdfgen::pdf_clear_err ( pdf_doc * pdf)
inline

◆ pdf_create()

pdf_doc * pgl::pdfgen::pdf_create ( float width,
float height,
const pdf_info * info )
inline

◆ pdf_destroy()

void pgl::pdfgen::pdf_destroy ( pdf_doc * pdf)
inline

◆ pdf_escape_content_string()

std::string pgl::pdfgen::pdf_escape_content_string ( std::string_view value)
inline

◆ pdf_find_first_object()

pdf_object * pgl::pdfgen::pdf_find_first_object ( const pdf_doc * pdf,
int type )
inline

◆ pdf_find_last_object()

pdf_object * pgl::pdfgen::pdf_find_last_object ( const pdf_doc * pdf,
int type )
inline

◆ pdf_find_or_create_ext_gstate()

int pgl::pdfgen::pdf_find_or_create_ext_gstate ( pdf_doc * pdf,
pdf_object * page,
float fill_alpha,
float stroke_alpha )
inline

◆ pdf_get_err()

const char * pgl::pdfgen::pdf_get_err ( const pdf_doc * pdf,
int * errval )
inline

◆ pdf_get_object()

pdf_object * pgl::pdfgen::pdf_get_object ( const pdf_doc * pdf,
int index )
inline

◆ pdf_get_page()

pdf_object * pgl::pdfgen::pdf_get_page ( pdf_doc * pdf,
int page_number )
inline

◆ pdf_height()

float pgl::pdfgen::pdf_height ( const pdf_doc * pdf)
inline

◆ PDF_INCH_TO_POINT()

float pgl::pdfgen::PDF_INCH_TO_POINT ( float inch)
inlineconstexpr

◆ PDF_IS_TRANSPARENT()

bool pgl::pdfgen::PDF_IS_TRANSPARENT ( std::uint32_t colour)
inlineconstexpr

◆ PDF_MM_TO_POINT()

float pgl::pdfgen::PDF_MM_TO_POINT ( float mm)
inlineconstexpr

◆ pdf_page_height()

float pgl::pdfgen::pdf_page_height ( const pdf_object * page)
inline

◆ pdf_page_set_size()

int pgl::pdfgen::pdf_page_set_size ( pdf_doc * pdf,
pdf_object * page,
float width,
float height )
inline

◆ pdf_page_width()

float pgl::pdfgen::pdf_page_width ( const pdf_object * page)
inline

◆ PDF_RGB()

std::uint32_t pgl::pdfgen::PDF_RGB ( unsigned int r,
unsigned int g,
unsigned int b )
inlineconstexpr

◆ PDF_RGB_B()

float pgl::pdfgen::PDF_RGB_B ( std::uint32_t colour)
inlineconstexpr

◆ PDF_RGB_G()

float pgl::pdfgen::PDF_RGB_G ( std::uint32_t colour)
inlineconstexpr

◆ PDF_RGB_R()

float pgl::pdfgen::PDF_RGB_R ( std::uint32_t colour)
inlineconstexpr

◆ pdf_save()

int pgl::pdfgen::pdf_save ( pdf_doc * pdf,
const char * filename )
inline

◆ pdf_save_buffer()

int pgl::pdfgen::pdf_save_buffer ( pdf_doc * pdf,
std::string & out )
inline

◆ pdf_save_file()

int pgl::pdfgen::pdf_save_file ( pdf_doc * pdf,
FILE * fp )
inline

◆ pdf_set_err()

int pgl::pdfgen::pdf_set_err ( pdf_doc * doc,
int errval,
const char * buffer,
... )
inline

◆ pdf_set_font()

int pgl::pdfgen::pdf_set_font ( pdf_doc * pdf,
const char * font )
inline

◆ pdf_to_string()

std::string pgl::pdfgen::pdf_to_string ( pdf_doc * pdf)
inline

◆ pdf_width()

float pgl::pdfgen::pdf_width ( const pdf_doc * pdf)
inline

Variable Documentation

◆ PDF_A3_HEIGHT

float pgl::pdfgen::PDF_A3_HEIGHT = PDF_MM_TO_POINT(420.0f)
inlineconstexpr

◆ PDF_A3_WIDTH

float pgl::pdfgen::PDF_A3_WIDTH = PDF_MM_TO_POINT(297.0f)
inlineconstexpr

◆ PDF_A4_HEIGHT

float pgl::pdfgen::PDF_A4_HEIGHT = PDF_MM_TO_POINT(297.0f)
inlineconstexpr

◆ PDF_A4_WIDTH

float pgl::pdfgen::PDF_A4_WIDTH = PDF_MM_TO_POINT(210.0f)
inlineconstexpr

◆ PDF_BLACK

std::uint32_t pgl::pdfgen::PDF_BLACK = PDF_RGB(0u, 0u, 0u)
inlineconstexpr

◆ PDF_BLUE

std::uint32_t pgl::pdfgen::PDF_BLUE = PDF_RGB(0u, 0u, 0xffu)
inlineconstexpr

◆ PDF_GREEN

std::uint32_t pgl::pdfgen::PDF_GREEN = PDF_RGB(0u, 0xffu, 0u)
inlineconstexpr

◆ PDF_LETTER_HEIGHT

float pgl::pdfgen::PDF_LETTER_HEIGHT = PDF_INCH_TO_POINT(11.0f)
inlineconstexpr

◆ PDF_LETTER_WIDTH

float pgl::pdfgen::PDF_LETTER_WIDTH = PDF_INCH_TO_POINT(8.5f)
inlineconstexpr

◆ PDF_RED

std::uint32_t pgl::pdfgen::PDF_RED = PDF_RGB(0xffu, 0u, 0u)
inlineconstexpr

◆ PDF_TRANSPARENT

std::uint32_t pgl::pdfgen::PDF_TRANSPARENT = (0xffu << 24)
inlineconstexpr

◆ PDF_WHITE

std::uint32_t pgl::pdfgen::PDF_WHITE = PDF_RGB(0xffu, 0xffu, 0xffu)
inlineconstexpr