Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Unified Diff: experimental/PdfViewer/SkPdfRenderer.h

Issue 27057003: pdfviewer: more code comments + concat the pdf matrix with the existing matrix in canvas, instead o… (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/PdfViewer/SkPdfGraphicsState.cpp ('k') | experimental/PdfViewer/SkPdfRenderer.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/PdfViewer/SkPdfRenderer.h
===================================================================
--- experimental/PdfViewer/SkPdfRenderer.h (revision 11730)
+++ experimental/PdfViewer/SkPdfRenderer.h (working copy)
@@ -19,50 +19,67 @@
class SkStream;
class SkString;
+// What kind of content to render.
enum SkPdfContent {
kNoForms_SkPdfContent,
kAll_SkPdfContent,
};
-// TODO(edisonn): add options to render forms, checkboxes, ...
-// TODO(edisonn): Add API for Forms viewing and editing
-// e.g. SkBitmap getPage(int page);
-// int formsCount();
-// SkForm getForm(int formID); // SkForm(SkRect, .. other data)
-// TODO (edisonn): Add intend when loading pdf, for example: for viewing, for parsing content, ...
-
+/** \class SkPdfRenderer
+ *
+ * The SkPdfRenderer class is used to render a PDF into canvas.
+ *
+ */
class SkPdfRenderer {
- SkPdfNativeDoc* fPdfDoc;
public:
SkPdfRenderer() : fPdfDoc(NULL) {}
virtual ~SkPdfRenderer() {unload();}
+ // Render a specific page into the canvas, in a specific rectangle.
bool renderPage(int page, SkCanvas* canvas, const SkRect& dst) const;
// TODO(edisonn): deprecated, should be removed!
bool load(const SkString inputFileName);
+ // TODO(edisonn): replace it with a SkSmartStream which would know to to efficiently
+ // deal with a HTTP stream.
bool load(SkStream* stream);
+ // Unloads the pdf document.
void unload();
- bool loaded() const {return fPdfDoc != NULL;}
+ // Returns true if we succesfully loaded a document.
+ bool loaded() const {return fPdfDoc != NULL && pages() > 0;}
+ // Returns the number of pages in the loaded pdf.
int pages() const;
+ // Returns the MediaBox of a page. Can be used by client to crate a canvas.
SkRect MediaBox(int page) const;
// TODO(edisonn): for testing only, probably it should be removed, unless some client wants to
// let users know how much memory the PDF needs.
size_t bytesUsed() const;
+
+private:
+ SkPdfNativeDoc* fPdfDoc;
};
+// For testing only, reports stats about rendering, like how many operations failed, or are NYI, ...
void reportPdfRenderStats();
+// Renders a page of a pdf in a bitmap.
bool SkPDFNativeRenderToBitmap(SkStream* stream,
SkBitmap* output,
int page = 0,
SkPdfContent content = kAll_SkPdfContent,
double dpi = 72.0);
+// TODO(edisonn): add options to render forms, checkboxes, ...
+// TODO(edisonn): Add API for Forms viewing and editing
+// e.g. SkBitmap getPage(int page);
+// int formsCount();
+// SkForm getForm(int formID); // SkForm(SkRect, .. other data)
+// TODO (edisonn): Add intend when loading pdf, for example: for viewing, for parsing content, ...
+
#endif // SkPdfRenderer_DEFINED
« no previous file with comments | « experimental/PdfViewer/SkPdfGraphicsState.cpp ('k') | experimental/PdfViewer/SkPdfRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698