Ipelib: ipe::PdfWriter Class Reference

Ipelib

Classes | Public Member Functions | List of all members
ipe::PdfWriter Class Reference

`#include <ipepdfwriter.h>`

## Public Member Functions
| PdfWriter (TellStream &stream, const Document *doc, const PdfResources *resources, uint32_t flags, int fromPage, int toPage, int compression)
| ~PdfWriter ()
void | createPages ()
void | createPageView (int page, int view)
void | createBookmarks ()
void | createNamedDests ()
void | createXmlStream (String xmldata, bool preCompressed)
void | createTrailer ()

## Detailed Description

Create PDF file.

This class is responsible for the creation of a PDF file from the Ipe data. You have to create a PdfWriter first, providing a file that has been opened for (binary) writing and is empty. Then call createPages() to embed the pages. Optionally, call `createXmlStream` to embed a stream with the XML representation of the document. Finally, call `createTrailer` to complete the PDF document, and close the file.

Some reserved PDF object numbers:

- 0: Must be left empty (a PDF restriction).
- 1: XML stream.
- 2: Parent of all pages objects.
- 3: ExtGState resource from pdflatex
- 4: Shading resource from pdflatex
- 5: Pattern resource from pdflatex
- 6: ColorSpace resource from pdflatex

## Constructor & Destructor Documentation

## ◆ PdfWriter()

PdfWriter::PdfWriter | ( | TellStream & | stream,
|  | const Document * | doc,
|  | const PdfResources * | resources,
|  | uint32_t | flags,
|  | int | fromPage,
|  | int | toPage,
|  | int | compression
| ) |  |

Create a PDF writer operating on this (open and empty) file.

Referenced by ipe::PdfPainter::doDrawSymbol().

## ◆ ~PdfWriter()

PdfWriter::~PdfWriter | ( |  | ) |

Destructor.

References ipe::Attribute::BACKGROUND(), ipe::Bitmap::colorKey(), ipe::Page::count(), ipe::PdfDict::count(), ipe::Buffer::data(), ipe::DeflateStream::deflate(), ipe::PdfDict::deflated(), ipe::PdfObj::dict(), ipe::Text::draw(), ipe::Object::draw(), ipe::Bitmap::embed(), ipe::Page::findLayer(), ipe::PdfDict::getNumberArray(), ipe::Bitmap::hasAlpha(), ipe::Bitmap::height(), ipe::BitmapFinder::iBitmaps, ipe::TextPadding::iBottom, ipe::TextPadding::iLeft, ipe::PdfDict::inflate(), ipe::TextPadding::iRight, ipe::Bitmap::isGray(), ipe::Bitmap::isJpeg(), ipe::PdfPainter::iStream, ipe::TextPadding::iTop, ipe::PdfDict::key(), ipe::Page::layerMatrices(), ipe::Page::layerOf(), ipe::String::left(), ipe::Page::object(), ipe::Page::objectVisible(), ipe::Stream::putChar(), ipe::Stream::putRaw(), ipe::PdfObj::ref(), ipe::Painter::setAttributeMap(), ipe::Bitmap::setObjNum(), ipe::size(), ipe::Buffer::size(), ipe::PdfDict::stream(), ipe::Page::titleText(), ipe::PdfRef::value(), ipe::PdfDict::value(), ipe::Page::viewMap(), ipe::Bitmap::width(), and ipe::PdfObj::write().

## Member Function Documentation

## ◆ createPages()

void PdfWriter::createPages | ( |  | ) |

Create all PDF pages.

References ipe::SaveFlag::MarkedView.

Referenced by ipe::Document::exportPages(), and ipe::Document::save().

## ◆ createPageView()

void PdfWriter::createPageView | ( | int | page,
|  | int | view
| ) |  |

create contents and page stream for this page view.

References ipe::Object::accept(), ipe::Object::asGroup(), ipe::Attribute::BACKGROUND(), ipe::Page::bbox(), ipe::DeflateStream::close(), ipe::Page::count(), ipe::String::data(), ipe::Page::effect(), ipe::String::empty(), ipe::SaveFlag::Export, ipe::Page::findLayer(), ipe::Layout::iCrop, ipe::Symbol::iObject, ipe::Rect::isEmpty(), ipe::Attribute::isNormal(), ipe::PdfPainter::iStream, ipe::SaveFlag::KeepNotes, ipe::String::left(), ipe::Page::notes(), ipe::Page::object(), ipe::Page::objectVisible(), ipe::Page::pageBBox(), ipe::Effect::pageDictionary(), ipe::Layout::paper(), ipe::BitmapFinder::scanPage(), ipe::String::size(), ipe::String::substr(), ipe::Group::url(), ipe::Page::viewBBox(), and ipe::Page::visible().

Referenced by ipe::Document::exportView().

## ◆ createBookmarks()

void PdfWriter::createBookmarks | ( |  | ) |

Create the bookmarks (PDF outline).

References ipe::String::empty(), ipe::PdfPainter::iStream, ipe::SaveFlag::MarkedView, and ipe::size().

Referenced by ipe::Document::save().

## ◆ createNamedDests()

void PdfWriter::createNamedDests | ( |  | ) |

Create the named destinations.

References ipe::String::empty(), ipe::PdfPainter::iStream, and ipe::SaveFlag::MarkedView.

Referenced by ipe::Document::save().

## ◆ createXmlStream()

void PdfWriter::createXmlStream | ( | String | xmldata,
|  | bool | preCompressed
| ) |  |

Create a stream containing the XML data.

References ipe::String::data(), ipe::PdfPainter::iStream, ipe::String::size(), and ipe::String::unicode().

Referenced by ipe::Document::save().

## ◆ createTrailer()

void PdfWriter::createTrailer | ( |  | ) |

Create the root objects and trailer of the PDF file.

References ipe::String::empty(), ipe::String::find(), ipe::Document::SProperties::iAuthor, ipe::Document::SProperties::iCreated, ipe::Document::SProperties::iCreator, ipe::Document::SProperties::iFullScreen, ipe::Document::SProperties::iKeywords, ipe::Document::SProperties::iModified, ipe::PdfPainter::iStream, ipe::Document::SProperties::iSubject, ipe::Document::SProperties::iTitle, and ipe::SaveFlag::MarkedView.

Referenced by ipe::Document::exportPages(), ipe::Document::exportView(), and ipe::Document::save().

The documentation for this class was generated from the following files:

- ipepdfwriter.h
- ipepdfwriter.cpp