Index: pdf/pdf.cc |
diff --git a/pdf/pdf.cc b/pdf/pdf.cc |
index a4997a582dc35c4ad6dd763ab17dc39e86f05dc5..13ef35585ec134e520e1fee3d3bb7b7e517e92a7 100644 |
--- a/pdf/pdf.cc |
+++ b/pdf/pdf.cc |
@@ -199,6 +199,36 @@ bool GetPDFDocInfo(const void* pdf_buffer, |
return ret; |
} |
+// Gets the dimensions of a specific page in a document. |
+// |pdf_buffer| is the buffer that contains the entire PDF document to be |
+// rendered. |
+// |pdf_buffer_size| is the size of the pdf_buffer in bytes. |
Lei Zhang
2014/07/09 21:59:51
the pdf_buffer -> |pdf_buffer|
ivandavid
2014/07/09 22:53:40
Done.
|
+// |page_number| is the page number that the function will get the dimensions |
+// of. |
+// |width| is the output for the width of the page in points. |
+// |height| is the output for the height of the page in points. |
+// Returns false if the document or the page number are not valid. |
Dan Beam
2014/07/09 22:18:21
^ I'd say put this doc comment on the interface
ivandavid
2014/07/09 22:53:40
OK. I put the comment in pdf_engine.h PDFEngineExp
|
+PDF_USED PP_EXPORT |
+bool GetPDFPageSizeByIndex(const void* pdf_buffer, |
+ int pdf_buffer_size, int page_number, |
+ double* width, double* height) { |
+ if (!g_sdk_initialized_via_pepper) { |
+ void* data = NULL; |
+#if defined(OS_WIN) |
+ data = g_hmodule; |
+#endif |
+ if (!chrome_pdf::InitializeSDK(data)) |
+ return false; |
+ } |
+ scoped_ptr<chrome_pdf::PDFEngineExports> engine_exports( |
+ chrome_pdf::PDFEngineExports::Create()); |
+ bool ret = engine_exports->GetPDFPageSizeByIndex( |
+ pdf_buffer, pdf_buffer_size, page_number, width, height); |
+ if (!g_sdk_initialized_via_pepper) |
+ chrome_pdf::ShutdownSDK(); |
+ return ret; |
+} |
+ |
// Renders PDF page into 4-byte per pixel BGRA color bitmap. |
// |pdf_buffer| is the buffer that contains the entire PDF document to be |
// rendered. |