/* * Copyright 2013 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkPdfRenderer_DEFINED #define SkPdfRenderer_DEFINED class SkBitmap; class SkCanvas; class SkPdfNativeDoc; struct SkRect; class SkStream; enum SkPdfContent { kNoForms_SkPdfContent, kAll_SkPdfContent, }; // TODO(edisonn): move in another file class SkPdfRenderer : public SkRefCnt { SkPdfNativeDoc* fPdfDoc; public: SkPdfRenderer() : fPdfDoc(NULL) {} virtual ~SkPdfRenderer() {unload();} // TODO(edisonn): add options to render forms, or not bool renderPage(int page, SkCanvas* canvas, const SkRect& dst) const; bool load(const SkString inputFileName); bool load(SkStream* stream); bool loaded() const {return fPdfDoc != NULL;} int pages() const; void unload(); SkRect MediaBox(int page) const; size_t bytesUsed() const; }; void reportPdfRenderStats(); bool SkPDFNativeRenderToBitmap(SkStream* stream, SkBitmap* output, int page = 0, SkPdfContent content = kAll_SkPdfContent, double dpi = 72.0); #endif // SkPdfRenderer_DEFINED