Index: pdf/pdf.cc |
diff --git a/pdf/pdf.cc b/pdf/pdf.cc |
index a4997a582dc35c4ad6dd763ab17dc39e86f05dc5..6a4507f4fc35e40bb50ce1c430ecef84006da8fa 100644 |
--- a/pdf/pdf.cc |
+++ b/pdf/pdf.cc |
@@ -114,25 +114,26 @@ extern "C" { |
#if defined(OS_WIN) |
// |pdf_buffer| is the buffer that contains the entire PDF document to be |
// rendered. |
-// |buffer_size| is the size of pdf_buffer in bytes. |
+// |buffer_size| is the size of |pdf_buffer| in bytes. |
// |page_number| is the 0-based index of the page to be rendered. |
// |dc| is the device context to render into. |
-// |dpi_x| and |dpi_y| are the x and y resolutions respectively. If either value |
-// is -1, the dpi from the DC will be used. |
+// |dpi_x| and |dpi_y| are the x and y resolutions respectively. If either |
+// value is -1, the dpi from the DC will be used. |
Dan Beam
2014/07/10 02:19:58
revert
|
// |bounds_origin_x|, |bounds_origin_y|, |bounds_width| and |bounds_height| |
-// specify a bounds rectangle within the DC in which to render the PDF page. |
+// specify a bounds rectangle within the DC in which to render the PDF |
+// page. |
Dan Beam
2014/07/10 02:19:58
revert
|
// |fit_to_bounds| specifies whether the output should be shrunk to fit the |
// supplied bounds if the page size is larger than the bounds in any |
-// dimension. If this is false, parts of the PDF page that lie outside the |
-// bounds will be clipped. |
+// dimension. If this is false, parts of the PDF page that lie outside |
+// the bounds will be clipped. |
Dan Beam
2014/07/10 02:19:58
revert
|
// |stretch_to_bounds| specifies whether the output should be stretched to fit |
// the supplied bounds if the page size is smaller than the bounds in any |
// dimension. |
// If both |fit_to_bounds| and |stretch_to_bounds| are true, then |
// |fit_to_bounds| is honored first. |
-// |keep_aspect_ratio| If any scaling is to be done is true, this flag specifies |
-// whether the original aspect ratio of the page should be preserved while |
-// scaling. |
+// |keep_aspect_ratio| If any scaling is to be done is true, this flag |
+// specifies whether the original aspect ratio of the page should be |
+// preserved while scaling. |
Dan Beam
2014/07/10 02:19:58
revert
|
// |center_in_bounds| specifies whether the final image (after any scaling is |
// done) should be centered within the given bounds. |
// |autorotate| specifies whether the final image should be rotated to match |
@@ -199,10 +200,40 @@ 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 |pdf_buffer| in bytes. |
+// |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/10 02:19:59
this is also a local pattern (i've never seen), wh
|
+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. |
-// |pdf_buffer_size| is the size of pdf_buffer in bytes. |
+// |pdf_buffer_size| is the size of |pdf_buffer| in bytes. |
// |page_number| is the 0-based index of the page to be rendered. |
// |bitmap_buffer| is the output buffer for bitmap. |
// |bitmap_width| is the width of the output bitmap. |