Index: pdf/pdf.cc |
diff --git a/pdf/pdf.cc b/pdf/pdf.cc |
index a4997a582dc35c4ad6dd763ab17dc39e86f05dc5..906a217d4ce0a4b7acbad3ee90140568ea83a30c 100644 |
--- a/pdf/pdf.cc |
+++ b/pdf/pdf.cc |
@@ -112,32 +112,6 @@ extern "C" { |
// Wrapper exports over the PDF engine that can be used by an external module |
// such as Chrome (since Chrome cannot directly pull in PDFium sources). |
#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. |
-// |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. |
-// |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. |
-// |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. |
-// |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. |
-// |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 |
-// the output bound. |
-// Returns false if the document or the page number are not valid. |
PP_EXPORT bool RenderPDFPageToDC(const void* pdf_buffer, |
int buffer_size, |
int page_number, |
@@ -175,8 +149,6 @@ PP_EXPORT bool RenderPDFPageToDC(const void* pdf_buffer, |
#endif // OS_WIN |
-// |page_count| and |max_page_width| are optional and can be NULL. |
-// Returns false if the document is not valid. |
PDF_USED PP_EXPORT |
bool GetPDFDocInfo(const void* pdf_buffer, |
int buffer_size, int* page_count, |
@@ -199,18 +171,27 @@ bool GetPDFDocInfo(const void* pdf_buffer, |
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. |
-// |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. |
-// |bitmap_height| is the height of the output bitmap. |
-// |dpi| is the resolutions. |
-// |autorotate| specifies whether the final image should be rotated to match |
-// the output bound. |
-// Returns false if the document or the page number are not valid. |
+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; |
+} |
+ |
PDF_USED PP_EXPORT |
bool RenderPDFPageToBitmap(const void* pdf_buffer, |
int pdf_buffer_size, |