2012-04-29 18:52:25 +00:00
|
|
|
|
//
|
|
|
|
|
// Page.h
|
|
|
|
|
//
|
|
|
|
|
// Library: PDF
|
|
|
|
|
// Package: PDFCore
|
|
|
|
|
// Module: Page
|
|
|
|
|
//
|
|
|
|
|
// Definition of the Page class.
|
|
|
|
|
//
|
|
|
|
|
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
|
|
|
|
|
// and Contributors.
|
|
|
|
|
//
|
2014-05-04 21:02:42 +02:00
|
|
|
|
// SPDX-License-Identifier: BSL-1.0
|
2012-04-29 18:52:25 +00:00
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef PDF_Page_INCLUDED
|
|
|
|
|
#define PDF_Page_INCLUDED
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "Poco/PDF/PDF.h"
|
|
|
|
|
#include "Poco/PDF/Resource.h"
|
|
|
|
|
#include "Poco/PDF/Font.h"
|
|
|
|
|
#include "Poco/PDF/Image.h"
|
|
|
|
|
#include "Poco/PDF/Encoder.h"
|
|
|
|
|
#include "Poco/PDF/Destination.h"
|
|
|
|
|
#include "Poco/PDF/TextAnnotation.h"
|
|
|
|
|
#include "Poco/PDF/LinkAnnotation.h"
|
|
|
|
|
#include "Poco/Exception.h"
|
|
|
|
|
#include <map>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Poco {
|
|
|
|
|
namespace PDF {
|
|
|
|
|
|
|
|
|
|
|
2017-11-21 20:42:14 -06:00
|
|
|
|
class Document;
|
|
|
|
|
|
|
|
|
|
|
2012-04-29 18:52:25 +00:00
|
|
|
|
class PDF_API Page
|
|
|
|
|
/// A Page represents a PDF page object.
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
typedef HPDF_Page Type;
|
|
|
|
|
typedef std::map<std::string, Destination> DestinationContainer;
|
|
|
|
|
typedef std::map<std::string, TextAnnotation> TextAnnotationContainer;
|
|
|
|
|
typedef std::map<std::string, LinkAnnotation> LinkAnnotationContainer;
|
|
|
|
|
|
|
|
|
|
enum Size
|
|
|
|
|
{
|
|
|
|
|
PAGE_SIZE_LETTER = HPDF_PAGE_SIZE_LETTER,
|
|
|
|
|
/// 8<> x 11 (Inches), 612 x 792 px
|
|
|
|
|
PAGE_SIZE_LEGAL = HPDF_PAGE_SIZE_LEGAL,
|
|
|
|
|
/// 8<> x 14 (Inches), 612 x 1008 px
|
|
|
|
|
PAGE_SIZE_A3 = HPDF_PAGE_SIZE_A3,
|
|
|
|
|
/// 297 <20> 420 (mm), 841.89 x 1199.551 px
|
|
|
|
|
PAGE_SIZE_A4 = HPDF_PAGE_SIZE_A4,
|
|
|
|
|
/// 210 <20> 297 (mm), 595.276 x 841.89 px
|
|
|
|
|
PAGE_SIZE_A5 = HPDF_PAGE_SIZE_A5,
|
|
|
|
|
/// 148 <20> 210 (mm), 419.528 x 595.276 px
|
|
|
|
|
PAGE_SIZE_B4 = HPDF_PAGE_SIZE_B4,
|
|
|
|
|
/// 250 <20> 353 (mm), 708.661 x 1000.63 px
|
|
|
|
|
PAGE_SIZE_B5 = HPDF_PAGE_SIZE_B5,
|
|
|
|
|
/// 176 <20> 250 (mm), 498.898 x 708.661 px
|
|
|
|
|
PAGE_SIZE_EXECUTIVE = HPDF_PAGE_SIZE_EXECUTIVE,
|
|
|
|
|
/// 7<> x 10<31> (Inches), 522 x 756 px
|
|
|
|
|
PAGE_SIZE_US4x6 = HPDF_PAGE_SIZE_US4x6,
|
|
|
|
|
/// 4 x 6 (Inches), 288 x 432 px
|
|
|
|
|
PAGE_SIZE_US4x8 = HPDF_PAGE_SIZE_US4x8,
|
|
|
|
|
/// 4 x 8 (Inches), 288 x 576 px
|
|
|
|
|
PAGE_SIZE_US5x7 = HPDF_PAGE_SIZE_US5x7,
|
|
|
|
|
/// 5 x 7 (Inches), 360 x 504 px
|
|
|
|
|
PAGE_SIZE_COMM10 = HPDF_PAGE_SIZE_COMM10
|
|
|
|
|
/// 4.125 x 9.5 (Inches) 297x 684 px
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum Orientation
|
|
|
|
|
{
|
|
|
|
|
ORIENTATION_PORTRAIT = HPDF_PAGE_PORTRAIT,
|
2017-11-21 20:42:14 -06:00
|
|
|
|
// Portrait orientation.
|
2012-04-29 18:52:25 +00:00
|
|
|
|
ORIENTATION_LANDSCAPE = HPDF_PAGE_LANDSCAPE
|
2017-11-21 20:42:14 -06:00
|
|
|
|
// Landscape orientation.
|
2012-04-29 18:52:25 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum RenderMode
|
|
|
|
|
{
|
|
|
|
|
RENDER_FILL = HPDF_FILL,
|
|
|
|
|
RENDER_STROKE = HPDF_STROKE,
|
|
|
|
|
RENDER_FILL_THEN_STROKE = HPDF_FILL_THEN_STROKE,
|
|
|
|
|
RENDER_INVISIBLE = HPDF_INVISIBLE,
|
|
|
|
|
RENDER_FILL_CLIPPING = HPDF_FILL_CLIPPING,
|
|
|
|
|
RENDER_STROKE_CLIPPING = HPDF_STROKE_CLIPPING,
|
|
|
|
|
RENDER_FILL_STROKE_CLIPPING = HPDF_FILL_STROKE_CLIPPING,
|
|
|
|
|
RENDER_CLIPPING = HPDF_CLIPPING,
|
|
|
|
|
RENDER_RENDERING_MODE_EOF = HPDF_RENDERING_MODE_EOF
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum ColorSpace
|
|
|
|
|
{
|
|
|
|
|
CS_DEVICE_GRAY = HPDF_CS_DEVICE_GRAY,
|
|
|
|
|
CS_DEVICE_RGB = HPDF_CS_DEVICE_RGB,
|
|
|
|
|
CS_DEVICE_CMYK = HPDF_CS_DEVICE_CMYK,
|
|
|
|
|
CS_CAL_GRAY = HPDF_CS_CAL_GRAY,
|
|
|
|
|
CS_CAL_RGB = HPDF_CS_CAL_RGB,
|
|
|
|
|
CS_LAB = HPDF_CS_LAB,
|
|
|
|
|
CS_ICC_BASED = HPDF_CS_ICC_BASED,
|
|
|
|
|
CS_SEPARATION = HPDF_CS_SEPARATION,
|
|
|
|
|
CS_DEVICE_N = HPDF_CS_DEVICE_N,
|
|
|
|
|
CS_INDEXED = HPDF_CS_INDEXED,
|
|
|
|
|
CS_PATTERN = HPDF_CS_PATTERN,
|
|
|
|
|
CS_EOF = HPDF_CS_EOF
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum TransitionStyle
|
|
|
|
|
{
|
|
|
|
|
TS_WIPE_RIGHT = HPDF_TS_WIPE_RIGHT,
|
|
|
|
|
TS_WIPE_UP = HPDF_TS_WIPE_UP,
|
|
|
|
|
TS_WIPE_LEFT = HPDF_TS_WIPE_LEFT,
|
|
|
|
|
TS_WIPE_DOWN = HPDF_TS_WIPE_DOWN,
|
|
|
|
|
TS_BARN_DOORS_HORIZONTAL_OUT = HPDF_TS_BARN_DOORS_HORIZONTAL_OUT,
|
|
|
|
|
TS_BARN_DOORS_HORIZONTAL_IN = HPDF_TS_BARN_DOORS_HORIZONTAL_IN,
|
|
|
|
|
TS_BARN_DOORS_VERTICAL_OUT = HPDF_TS_BARN_DOORS_VERTICAL_OUT,
|
|
|
|
|
TS_BARN_DOORS_VERTICAL_IN = HPDF_TS_BARN_DOORS_VERTICAL_IN,
|
|
|
|
|
TS_BOX_OUT = HPDF_TS_BOX_OUT,
|
|
|
|
|
TS_BOX_IN = HPDF_TS_BOX_IN,
|
|
|
|
|
TS_BLINDS_HORIZONTAL = HPDF_TS_BLINDS_HORIZONTAL,
|
|
|
|
|
TS_BLINDS_VERTICAL = HPDF_TS_BLINDS_VERTICAL,
|
|
|
|
|
TS_DISSOLVE = HPDF_TS_DISSOLVE,
|
|
|
|
|
TS_GLITTER_RIGHT = HPDF_TS_GLITTER_RIGHT,
|
|
|
|
|
TS_GLITTER_DOWN = HPDF_TS_GLITTER_DOWN,
|
|
|
|
|
TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT = HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT,
|
|
|
|
|
TS_REPLACE = HPDF_TS_REPLACE
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum TextAlignment
|
|
|
|
|
{
|
|
|
|
|
TEXT_ALIGN_LEFT = HPDF_TALIGN_LEFT,
|
|
|
|
|
/// The text is aligned to left.
|
|
|
|
|
TEXT_ALIGN_RIGHT = HPDF_TALIGN_RIGHT,
|
|
|
|
|
/// The text is aligned to right.
|
|
|
|
|
TEXT_ALIGN_CENTER = HPDF_TALIGN_CENTER,
|
|
|
|
|
/// The text is aligned to center.
|
|
|
|
|
TEXT_ALIGN_JUSTIFY = HPDF_TALIGN_JUSTIFY
|
|
|
|
|
/// Add spaces between the words to justify both left and right side.
|
|
|
|
|
};
|
|
|
|
|
|
2017-11-21 20:42:14 -06:00
|
|
|
|
Page(Document* pDocument,
|
2012-04-29 18:52:25 +00:00
|
|
|
|
const HPDF_Page& page,
|
|
|
|
|
Size pageSize = PAGE_SIZE_LETTER,
|
|
|
|
|
Orientation orientation = ORIENTATION_PORTRAIT);
|
|
|
|
|
/// Creates the page
|
|
|
|
|
|
|
|
|
|
Page(const Page& other);
|
|
|
|
|
/// Copy creates the page.
|
|
|
|
|
|
|
|
|
|
virtual ~Page();
|
|
|
|
|
/// Destroys the page.
|
|
|
|
|
|
|
|
|
|
Page& operator = (const Page& page);
|
|
|
|
|
/// Assignment operator.
|
|
|
|
|
|
|
|
|
|
operator const Type& () const;
|
|
|
|
|
/// Const conversion operator into reference to native type.
|
|
|
|
|
|
|
|
|
|
bool operator == (const Page& other) const;
|
|
|
|
|
/// Equality operator.
|
|
|
|
|
|
|
|
|
|
void swap(Page& other);
|
|
|
|
|
/// Swaps this page with another.
|
|
|
|
|
|
|
|
|
|
void setWidth(float value);
|
|
|
|
|
/// Sets the page width.
|
|
|
|
|
|
|
|
|
|
float getWidth() const;
|
|
|
|
|
/// Gets the page width.
|
|
|
|
|
|
|
|
|
|
void setHeight(float value);
|
|
|
|
|
/// Sets the page height.
|
|
|
|
|
|
|
|
|
|
float getHeight() const;
|
|
|
|
|
/// Gets the page height.
|
|
|
|
|
|
|
|
|
|
void setSize(Size size);
|
|
|
|
|
/// Sets the page size.
|
|
|
|
|
|
|
|
|
|
Size getSize() const;
|
|
|
|
|
/// Returns the page size.
|
|
|
|
|
|
|
|
|
|
void setOrientation(Orientation orientation);
|
|
|
|
|
/// Sets the page orientation.
|
|
|
|
|
|
|
|
|
|
Orientation getOrientation() const;
|
|
|
|
|
/// Returns the page orientation.
|
|
|
|
|
|
|
|
|
|
void setSizeAndOrientation(Size size, Orientation orientation);
|
|
|
|
|
/// Sets the page size and orientation.
|
|
|
|
|
|
|
|
|
|
void setRotation(int angle);
|
|
|
|
|
/// Sets the rotation for the page.
|
|
|
|
|
/// Angle must be multiple of 90.
|
|
|
|
|
|
|
|
|
|
void setFont(const Font& font, float size);
|
|
|
|
|
/// Sets the font.
|
|
|
|
|
|
2017-11-21 20:42:14 -06:00
|
|
|
|
void setFont(const std::string& fontName, float size, const std::string& encoding = "");
|
2017-11-26 21:46:30 -06:00
|
|
|
|
/// Sets the font. The name must be a valid Base14 PDF internal font.
|
|
|
|
|
|
|
|
|
|
void setTTFont(const std::string& name, float size, const std::string& encoding = "UTF-8", bool embed = true);
|
|
|
|
|
/// Sets the external true type font. Name must be a valid path to .ttf file.
|
|
|
|
|
/// If embed is tru, font will be embedded int othe document.
|
2017-11-21 20:42:14 -06:00
|
|
|
|
|
2012-04-29 18:52:25 +00:00
|
|
|
|
float textWidth(const std::string& text);
|
|
|
|
|
/// Returns the width of the supplied text.
|
|
|
|
|
|
|
|
|
|
void beginText();
|
|
|
|
|
/// Begins a text object and sets the current text position to the point (0,0).
|
|
|
|
|
|
|
|
|
|
void endText();
|
|
|
|
|
/// Ends a text object.
|
|
|
|
|
|
|
|
|
|
void write(float xPos, float yPos, const std::string& text);
|
|
|
|
|
/// Write text at specified position.
|
|
|
|
|
|
|
|
|
|
void writeOnce(float xPos, float yPos, const std::string& text);
|
|
|
|
|
/// Begins, writes and ends text object.
|
|
|
|
|
|
|
|
|
|
void write(const std::string& text);
|
|
|
|
|
/// Writes the text at the current position on the page.
|
|
|
|
|
|
|
|
|
|
void writeNextLine(const std::string& text);
|
|
|
|
|
/// Moves the current text position to the start of the next line and
|
|
|
|
|
/// prints the text at the current position on the page.
|
|
|
|
|
|
|
|
|
|
void writeNextLineEx(float wordSpace, float charSpace, const std::string& text);
|
|
|
|
|
/// Moves the current text position to the start of the next line, sets the word spacing,
|
|
|
|
|
/// character spacing and prints the text at the current position on the page.
|
|
|
|
|
|
|
|
|
|
int writeOnceInRectangle(float left,
|
|
|
|
|
float top,
|
|
|
|
|
float right,
|
|
|
|
|
float bottom,
|
|
|
|
|
const std::string& text,
|
|
|
|
|
TextAlignment align = TEXT_ALIGN_LEFT);
|
|
|
|
|
/// Begins, writes and ends text objectinside the specified region.
|
|
|
|
|
/// Returns the number of characters written.
|
|
|
|
|
|
|
|
|
|
int writeInRectangle(float left,
|
|
|
|
|
float top,
|
|
|
|
|
float right,
|
|
|
|
|
float bottom,
|
|
|
|
|
const std::string& text,
|
|
|
|
|
TextAlignment align);
|
|
|
|
|
/// Writes the text inside the specified region.
|
|
|
|
|
/// Returns the number of characters written.
|
|
|
|
|
|
|
|
|
|
void drawImage(Image image, float x, float y, float width, float height);
|
|
|
|
|
/// Draws an image in one operation.
|
|
|
|
|
|
|
|
|
|
const Destination& createDestination(const std::string& name);
|
|
|
|
|
/// Creates ad returns reference to destination.
|
|
|
|
|
|
|
|
|
|
const TextAnnotation& createTextAnnotation(const std::string& name,
|
|
|
|
|
const Rectangle& rect,
|
|
|
|
|
const std::string& text,
|
|
|
|
|
const Encoder& encoder);
|
|
|
|
|
/// Creates ad returns reference to text annotation.
|
|
|
|
|
|
|
|
|
|
const LinkAnnotation& createLinkAnnotation(const std::string& name,
|
|
|
|
|
const Rectangle& rect,
|
|
|
|
|
const Destination& dest);
|
|
|
|
|
/// Creates ad returns reference to destination link annotation.
|
|
|
|
|
|
|
|
|
|
const LinkAnnotation& createURILinkAnnotation(const std::string& name,
|
|
|
|
|
const Rectangle& rect,
|
|
|
|
|
const std::string& uri);
|
|
|
|
|
/// Creates ad returns reference to URI annotation.
|
|
|
|
|
|
|
|
|
|
int getGraphicsMode() const;
|
|
|
|
|
/// Returns current graphics mode.
|
|
|
|
|
|
|
|
|
|
int getGraphicStateDepth() const;
|
|
|
|
|
/// Returns current graphics mode.
|
|
|
|
|
|
|
|
|
|
void setExtGraphicsState(ExtGraphicsState state);
|
|
|
|
|
/// Sets the graphic state.
|
|
|
|
|
|
|
|
|
|
void saveGraphics();
|
|
|
|
|
/// Pushes graphics parameters on the stack.
|
|
|
|
|
|
|
|
|
|
void restoreGraphics();
|
|
|
|
|
/// Restores graphics parameters from the stack.
|
|
|
|
|
|
|
|
|
|
void concatenate(const std::vector<float>& values);
|
|
|
|
|
/// Concatenates the page's current transformation matrix and specified matrix.
|
|
|
|
|
|
|
|
|
|
void moveTo(float x, float y);
|
|
|
|
|
/// Starts a new subpath and move the current point for drawing path.
|
|
|
|
|
/// Sets the start point for the path to the point (x, y).
|
|
|
|
|
|
|
|
|
|
void lineTo(float x, float y);
|
|
|
|
|
/// Appends a path from the current point to the specified point..
|
|
|
|
|
|
|
|
|
|
void curveTo(const std::vector<float>& values);
|
|
|
|
|
/// Appends a B<>zier curve to the current path using two specified points.
|
|
|
|
|
/// The point (x1, y1) and the point (x2, y2) are used as the control points
|
|
|
|
|
/// for a B<>zier curve and current point is moved to the point (x3, y3)
|
|
|
|
|
|
|
|
|
|
void curveToRight(float x2, float y2, float x3, float y3);
|
|
|
|
|
/// Appends a B<>zier curve to the right of the current point using two specified points.
|
|
|
|
|
/// The current point and the point (x2, y2) are used as the control points
|
|
|
|
|
/// for a B<>zier curve and current point is moved to the point (x3, y3)
|
|
|
|
|
|
|
|
|
|
void curveToLeft(float x2, float y2, float x3, float y3);
|
|
|
|
|
/// Appends a B<>zier curve to the left of the current point using two specified points.
|
|
|
|
|
/// The current point and the point (x2, y2) are used as the control points
|
|
|
|
|
/// for a B<>zier curve and current point is moved to the point (x3, y3)
|
|
|
|
|
|
|
|
|
|
void closePath();
|
|
|
|
|
/// Appends a straight line from the current point to the start point of sub path.
|
|
|
|
|
/// The current point is moved to the start point of sub path.
|
|
|
|
|
|
|
|
|
|
void rectangle(float x, float y, float width, float height);
|
|
|
|
|
/// Draws a rectangle.
|
|
|
|
|
|
|
|
|
|
void circle(float x, float y, float radius);
|
|
|
|
|
/// Draws a circle.
|
|
|
|
|
|
|
|
|
|
void arc(float x, float y, float radius, float beginAngle, float endAngle);
|
|
|
|
|
/// Draws an arc.
|
|
|
|
|
|
|
|
|
|
void ellipse(float x, float y, float xRadius, float yRadius);
|
|
|
|
|
/// Draws an ellips.
|
|
|
|
|
|
|
|
|
|
void stroke();
|
|
|
|
|
/// Paints the current path.
|
|
|
|
|
|
|
|
|
|
void closeAndStroke();
|
|
|
|
|
/// Closes the current path and paints it.
|
|
|
|
|
|
|
|
|
|
void fill();
|
|
|
|
|
/// Fills the current path using the nonzero winding number rule.
|
|
|
|
|
|
|
|
|
|
void EOFill();
|
|
|
|
|
/// Fills the current path using the even-odd rule.
|
|
|
|
|
|
|
|
|
|
void fillStroke();
|
|
|
|
|
/// Fills the current path using the nonzero winding number rule and then paints it.
|
|
|
|
|
|
|
|
|
|
void EOFillStroke();
|
|
|
|
|
/// Fills the current path using the even-odd rule and then paints it.
|
|
|
|
|
|
|
|
|
|
void closeFillAndStroke();
|
|
|
|
|
/// Closes the current path, fills the current path using the nonzero winding number
|
|
|
|
|
/// rule and then paints it.
|
|
|
|
|
|
|
|
|
|
void closeFillAndEOStroke();
|
|
|
|
|
/// Closes the current path, fills the current path using the even-odd rule and then paints it.
|
|
|
|
|
|
|
|
|
|
void endPath();
|
|
|
|
|
/// Ends the path object without filling and painting operation.
|
|
|
|
|
|
|
|
|
|
void clip();
|
|
|
|
|
///
|
|
|
|
|
|
|
|
|
|
void eoClip();
|
|
|
|
|
///
|
|
|
|
|
|
|
|
|
|
Point getPos() const;
|
|
|
|
|
/// Returns the current position.
|
|
|
|
|
|
|
|
|
|
Point getTextPos() const;
|
|
|
|
|
/// Returns the current position for text showing.
|
|
|
|
|
|
|
|
|
|
void moveTextPos(float x, float y);
|
|
|
|
|
/// Moves the current text position to the start of the next line
|
|
|
|
|
/// using specified offset values. If the start position of the current
|
|
|
|
|
/// line is (x1, y1), the start of the next line is (x1 + x, y1 + y).
|
|
|
|
|
|
|
|
|
|
void moveTextNextLine(float x, float y);
|
|
|
|
|
/// Moves the current text position to the start of the next line
|
|
|
|
|
/// using specified offset values, and sets the text leading to -y.
|
|
|
|
|
/// If the start position of the current line is (x1, y1), the start
|
|
|
|
|
/// of the next line is (x1 + x, y1 + y).
|
|
|
|
|
|
|
|
|
|
void moveTextNextLine();
|
|
|
|
|
/// Moves the current text position to the start of the next line.
|
|
|
|
|
/// If the start position of the current line is (x1, y1), the start of
|
|
|
|
|
/// the next line is (x1, y1 - text leading).
|
|
|
|
|
///
|
|
|
|
|
/// NOTE:
|
|
|
|
|
/// Since the default value of Text Leading is 0, an application has to
|
|
|
|
|
/// invoke HPDF_Page_SetTextLeading() before HPDF_Page_MoveTextPos2() to set
|
|
|
|
|
/// text leading.
|
|
|
|
|
|
|
|
|
|
const Font& getFont() const;
|
|
|
|
|
/// Returns the current font.
|
|
|
|
|
|
|
|
|
|
float getFontSize() const;
|
|
|
|
|
/// Returns the current Font size.
|
|
|
|
|
|
|
|
|
|
TransMatrix getTransMatrix() const;
|
|
|
|
|
/// Returns the current transformation matrix.
|
|
|
|
|
|
|
|
|
|
TransMatrix getTextMatrix() const;
|
|
|
|
|
/// Returns the current text transformation matrix.
|
|
|
|
|
|
|
|
|
|
float getLineWidth() const;
|
|
|
|
|
/// Returns the current line width.
|
|
|
|
|
|
|
|
|
|
void setLineWidth(float width);
|
|
|
|
|
/// Sets the line width.
|
|
|
|
|
|
|
|
|
|
LineCap getLineCap() const;
|
|
|
|
|
/// Returns the current line cap.
|
|
|
|
|
|
|
|
|
|
void setLineCap(LineCap cap) const;
|
|
|
|
|
/// Sets the line cap.
|
|
|
|
|
|
|
|
|
|
LineJoin getLineJoin() const;
|
|
|
|
|
/// Returns the current line join.
|
|
|
|
|
|
|
|
|
|
void setLineJoin(LineJoin join) const;
|
|
|
|
|
/// Returns the current line join.
|
|
|
|
|
|
|
|
|
|
float getMiterLimit() const;
|
|
|
|
|
/// Returns the current miter limit.
|
|
|
|
|
|
|
|
|
|
void setMiterLimit(float limit) const;
|
|
|
|
|
/// Sets the miter limit.
|
|
|
|
|
|
|
|
|
|
DashMode getDashMode() const;
|
|
|
|
|
/// Returns current dash mode.
|
|
|
|
|
|
|
|
|
|
void setDashMode(const PatternVec& pattern, int paramNo, int phase) const;
|
|
|
|
|
/// Sets teh dash mode.
|
|
|
|
|
|
|
|
|
|
float getFlatness() const;
|
|
|
|
|
/// Returns the current flatness.
|
|
|
|
|
|
|
|
|
|
float getCharSpace() const;
|
|
|
|
|
/// Returns the current character space.
|
|
|
|
|
|
|
|
|
|
void setCharSpace(float value);
|
|
|
|
|
/// Sets the current character space.
|
|
|
|
|
|
|
|
|
|
float getWordSpace() const;
|
|
|
|
|
/// Returns the current word space.
|
|
|
|
|
|
|
|
|
|
void setWordSpace(float value);
|
|
|
|
|
/// Sets the current word space.
|
|
|
|
|
|
|
|
|
|
float getHorizontalScale() const;
|
|
|
|
|
/// Returns the current horizontal scaling.
|
|
|
|
|
|
|
|
|
|
void setHorizontalScale(float value);
|
|
|
|
|
/// Sets the current horizontal scaling.
|
|
|
|
|
|
|
|
|
|
float getTextLead() const;
|
|
|
|
|
/// Returns the current text leading.
|
|
|
|
|
|
|
|
|
|
void setTextLead(float value);
|
|
|
|
|
/// Sets the current text leading.
|
|
|
|
|
|
|
|
|
|
RenderMode getTextRenderMode() const;
|
|
|
|
|
/// Returns the current text rendering mode.
|
|
|
|
|
|
|
|
|
|
void setTextRenderMode(RenderMode value);
|
|
|
|
|
/// Sets the current text rendering mode.
|
|
|
|
|
|
|
|
|
|
float getTextRise() const;
|
|
|
|
|
/// Returns the current text leading.
|
|
|
|
|
|
|
|
|
|
void setTextRise(float value);
|
|
|
|
|
/// Sets the current text leading.
|
|
|
|
|
|
|
|
|
|
RGBColor getRGBFill() const;
|
|
|
|
|
/// Returns current RGB fill.
|
|
|
|
|
|
|
|
|
|
void setRGBFill(RGBColor value);
|
|
|
|
|
/// Sets current RGB fill.
|
|
|
|
|
|
|
|
|
|
RGBColor getRGBStroke() const;
|
|
|
|
|
/// Returns current RGB stroke.
|
|
|
|
|
|
|
|
|
|
void setRGBStroke(RGBColor value);
|
|
|
|
|
/// Sets current RGB stroke.
|
|
|
|
|
|
|
|
|
|
CMYKColor getCMYKFill() const;
|
|
|
|
|
/// Returns current CMYK fill.
|
|
|
|
|
|
|
|
|
|
void setCMYKFill(CMYKColor value);
|
|
|
|
|
/// Sets current CMYK fill.
|
|
|
|
|
|
|
|
|
|
CMYKColor getCMYKStroke() const;
|
|
|
|
|
/// Returns current CMYK stroke.
|
|
|
|
|
|
|
|
|
|
void setCMYKStroke(CMYKColor value);
|
|
|
|
|
/// Returns current CMYK stroke.
|
|
|
|
|
|
|
|
|
|
float getGreyFill() const;
|
|
|
|
|
/// Returns current grey fill.
|
|
|
|
|
|
|
|
|
|
void setGreyFill(float value);
|
|
|
|
|
/// Sets current grey fill.
|
|
|
|
|
|
|
|
|
|
float getGreyStroke() const;
|
|
|
|
|
/// Returns current grey stroke.
|
|
|
|
|
|
|
|
|
|
void setGreyStroke(float value);
|
|
|
|
|
/// Sets current grey stroke.
|
|
|
|
|
|
|
|
|
|
ColorSpace getStrokeColorSpace() const;
|
|
|
|
|
/// Returns current stroking color space.
|
|
|
|
|
|
|
|
|
|
ColorSpace getFillColorSpace() const;
|
|
|
|
|
/// Returns current filling color space.
|
|
|
|
|
|
|
|
|
|
void setSlideShow(TransitionStyle type, float displayTime, float transitionTime);
|
|
|
|
|
/// Configures the setting for slide transition of the page
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
Page();
|
|
|
|
|
|
2017-11-21 20:42:14 -06:00
|
|
|
|
Document* _pDocument;
|
2012-04-29 18:52:25 +00:00
|
|
|
|
HPDF_Page _page;
|
|
|
|
|
Size _size;
|
|
|
|
|
Orientation _orientation;
|
|
|
|
|
DestinationContainer _destinations;
|
|
|
|
|
TextAnnotationContainer _textAnnotations;
|
|
|
|
|
LinkAnnotationContainer _linkAnnotations;
|
|
|
|
|
mutable Font* _pCurrentFont;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// inlines
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Page::operator const Page::Type& () const
|
|
|
|
|
{
|
|
|
|
|
return _page;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setWidth(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetWidth(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getWidth() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetWidth(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setHeight(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetHeight(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getHeight() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetHeight(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setSizeAndOrientation(Size size, Orientation orientation)
|
|
|
|
|
{
|
|
|
|
|
_size = size;
|
|
|
|
|
_orientation = orientation;
|
|
|
|
|
HPDF_Page_SetSize(_page, static_cast<HPDF_PageSizes>(size), static_cast<HPDF_PageDirection>(orientation));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setSize(Size size)
|
|
|
|
|
{
|
|
|
|
|
_size = size;
|
|
|
|
|
HPDF_Page_SetSize(_page, static_cast<HPDF_PageSizes>(size), static_cast<HPDF_PageDirection>(_orientation));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setOrientation(Orientation orientation)
|
|
|
|
|
{
|
|
|
|
|
_orientation = orientation;
|
|
|
|
|
HPDF_Page_SetSize(_page, static_cast<HPDF_PageSizes>(_size), static_cast<HPDF_PageDirection>(orientation));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Page::Size Page::getSize() const
|
|
|
|
|
{
|
|
|
|
|
return _size;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Page::Orientation Page::getOrientation() const
|
|
|
|
|
{
|
|
|
|
|
return _orientation;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setFont(const Font& font, float size)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetFontAndSize(_page, font, size);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline int Page::getGraphicsMode() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetGMode(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline int Page::getGraphicStateDepth() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetGStateDepth(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setExtGraphicsState(ExtGraphicsState state)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetExtGState(_page, state);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::saveGraphics()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_GSave(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::restoreGraphics()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_GRestore(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::concatenate(const std::vector<float>& values)
|
|
|
|
|
{
|
|
|
|
|
if (values.size() < 6)
|
|
|
|
|
throw InvalidArgumentException("Needs six values");
|
|
|
|
|
|
|
|
|
|
HPDF_Page_Concat(_page,
|
|
|
|
|
values[0],
|
|
|
|
|
values[1],
|
|
|
|
|
values[2],
|
|
|
|
|
values[3],
|
|
|
|
|
values[4],
|
|
|
|
|
values[5]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::moveTo(float x, float y)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_MoveTo(_page, x, y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::lineTo(float x, float y)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_LineTo(_page, x, y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::curveTo(const std::vector<float>& values)
|
|
|
|
|
{
|
|
|
|
|
if (values.size() < 6)
|
|
|
|
|
throw InvalidArgumentException("Needs six values");
|
|
|
|
|
|
|
|
|
|
HPDF_Page_CurveTo(_page,
|
|
|
|
|
values[0],
|
|
|
|
|
values[1],
|
|
|
|
|
values[2],
|
|
|
|
|
values[3],
|
|
|
|
|
values[4],
|
|
|
|
|
values[5]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::curveToRight(float x2, float y2, float x3, float y3)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_CurveTo2(_page, x2, y2, x3, y3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::curveToLeft(float x2, float y2, float x3, float y3)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_CurveTo3(_page, x2, y2, x3, y3);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::closePath()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ClosePath(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::rectangle(float x, float y, float width, float height)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Rectangle(_page, x, y, width, height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::stroke()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Stroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::closeAndStroke()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ClosePathStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::fill()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Fill(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::EOFill()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Eofill(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::fillStroke()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_FillStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::EOFillStroke()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_EofillStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::closeFillAndStroke()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ClosePathFillStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::closeFillAndEOStroke()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ClosePathEofillStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::endPath()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_EndPath(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::clip()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Clip(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::eoClip()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Eoclip(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Point Page::getPos() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetCurrentPos(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Point Page::getTextPos() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetCurrentTextPos(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::moveTextPos(float x, float y)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_MoveTextPos(_page, x, y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::moveTextNextLine(float x, float y)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_MoveTextPos2(_page, x, y);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::moveTextNextLine()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_MoveToNextLine(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getFontSize() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetCurrentFontSize(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline TransMatrix Page::getTransMatrix() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetTransMatrix(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline TransMatrix Page::getTextMatrix() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetTextMatrix(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getLineWidth() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetLineWidth(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setLineWidth(float width)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetLineWidth(_page, width);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline LineCap Page::getLineCap() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetLineCap(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setLineCap(LineCap cap) const
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetLineCap(_page, cap);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline LineJoin Page::getLineJoin() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetLineJoin(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setLineJoin(LineJoin join) const
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetLineJoin(_page, join);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getMiterLimit() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetMiterLimit(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setMiterLimit(float limit) const
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetMiterLimit(_page, limit);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline DashMode Page::getDashMode() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetDash(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setDashMode(const PatternVec& pattern, int paramNo, int phase) const
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetDash(_page, &pattern[0],
|
|
|
|
|
static_cast<HPDF_UINT>(paramNo),
|
|
|
|
|
static_cast<HPDF_UINT>(phase));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getFlatness() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetFlat(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getCharSpace() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetCharSpace(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setCharSpace(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetCharSpace(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getWordSpace() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetWordSpace(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setWordSpace(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetWordSpace(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getHorizontalScale() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetHorizontalScalling(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setHorizontalScale(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetHorizontalScalling(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getTextLead() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetTextLeading(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setTextLead(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetTextLeading(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Page::RenderMode Page::getTextRenderMode() const
|
|
|
|
|
{
|
|
|
|
|
return static_cast<RenderMode>(HPDF_Page_GetTextRenderingMode(_page));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setTextRenderMode(RenderMode value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetTextRenderingMode(_page, static_cast<HPDF_TextRenderingMode>(value));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getTextRise() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetTextRise(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setTextRise(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetTextRise(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline RGBColor Page::getRGBFill() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetRGBFill(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setRGBFill(RGBColor value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetRGBFill(_page, value.r, value.g, value.b);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline RGBColor Page::getRGBStroke() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetRGBStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setRGBStroke(RGBColor value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetRGBStroke(_page, value.r, value.g, value.b);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline CMYKColor Page::getCMYKFill() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetCMYKFill(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setCMYKFill(CMYKColor value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetCMYKFill(_page, value.c, value.m, value.y, value.k);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline CMYKColor Page::getCMYKStroke() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetCMYKStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setCMYKStroke(CMYKColor value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetCMYKStroke(_page, value.c, value.m, value.y, value.k);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getGreyFill() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetGrayFill(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setGreyFill(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetGrayFill(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline float Page::getGreyStroke() const
|
|
|
|
|
{
|
|
|
|
|
return HPDF_Page_GetGrayStroke(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setGreyStroke(float value)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetGrayStroke(_page, value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Page::ColorSpace Page::getStrokeColorSpace() const
|
|
|
|
|
{
|
|
|
|
|
return static_cast<ColorSpace>(HPDF_Page_GetStrokingColorSpace(_page));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline Page::ColorSpace Page::getFillColorSpace() const
|
|
|
|
|
{
|
|
|
|
|
return static_cast<ColorSpace>(HPDF_Page_GetFillingColorSpace(_page));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::setSlideShow(TransitionStyle type, float displayTime, float transitionTime)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_SetSlideShow(_page,
|
|
|
|
|
static_cast<HPDF_TransitionStyle>(type),
|
|
|
|
|
displayTime,
|
|
|
|
|
transitionTime);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::beginText()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_BeginText(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline void Page::endText()
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_EndText(_page);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::write(float xPos, float yPos, const std::string& text)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_TextOut(_page, xPos, yPos, text.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::write(const std::string& text)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ShowText(_page, text.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::writeNextLine(const std::string& text)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ShowTextNextLine(_page, text.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::writeNextLineEx(float wordSpace, float charSpace, const std::string& text)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_ShowTextNextLineEx(_page, wordSpace, charSpace, text.c_str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline int Page::writeInRectangle(float left,
|
|
|
|
|
float top,
|
|
|
|
|
float right,
|
|
|
|
|
float bottom,
|
|
|
|
|
const std::string& text,
|
|
|
|
|
TextAlignment align)
|
|
|
|
|
{
|
|
|
|
|
HPDF_UINT ret = 0;
|
|
|
|
|
HPDF_Page_TextRect(_page,
|
|
|
|
|
left,
|
|
|
|
|
top,
|
|
|
|
|
right,
|
|
|
|
|
bottom,
|
|
|
|
|
text.c_str(),
|
|
|
|
|
static_cast<HPDF_TextAlignment>(align),
|
|
|
|
|
&ret);
|
|
|
|
|
|
|
|
|
|
return static_cast<int>(ret);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::drawImage(Image image, float x, float y, float width, float height)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_DrawImage(_page, image, x, y, width, height);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::circle(float x, float y, float radius)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Circle(_page, x, y, radius);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::arc(float x, float y, float radius, float beginAngle, float endAngle)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Arc(_page, x, y, radius, beginAngle, endAngle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline void Page::ellipse(float x, float y, float xRadius, float yRadius)
|
|
|
|
|
{
|
|
|
|
|
HPDF_Page_Ellipse(_page, x, y, xRadius, yRadius);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} } // namespace Poco::PDF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif // PDF_Page_INCLUDED
|