Index: pdf/pdf.cc |
diff --git a/pdf/pdf.cc b/pdf/pdf.cc |
index 57d5b0178c87c8db266d97068364c0046884dac7..e60c4bd0aa495e7b8777c87a48cf395b820186ef 100644 |
--- a/pdf/pdf.cc |
+++ b/pdf/pdf.cc |
@@ -82,8 +82,7 @@ const void* PPP_GetInterface(const char* interface_name) { |
} |
#if defined(OS_WIN) |
-bool RenderPDFPageToDC(const void* pdf_buffer, |
- int buffer_size, |
+bool RenderPDFPageToDC(void* pdf_handle, |
int page_number, |
HDC dc, |
int dpi, |
@@ -107,8 +106,8 @@ bool RenderPDFPageToDC(const void* pdf_buffer, |
pp::Rect(bounds_origin_x, bounds_origin_y, bounds_width, bounds_height), |
fit_to_bounds, stretch_to_bounds, keep_aspect_ratio, center_in_bounds, |
autorotate); |
- bool ret = engine_exports->RenderPDFPageToDC(pdf_buffer, buffer_size, |
- page_number, settings, dc); |
+ bool ret = |
+ engine_exports->RenderPDFPageToDC(pdf_handle, page_number, settings, dc); |
if (!g_sdk_initialized_via_pepper) |
ShutdownSDK(); |
@@ -126,39 +125,51 @@ void SetPDFUseGDIPrinting(bool enable) { |
#endif // defined(OS_WIN) |
bool GetPDFDocInfo(const void* pdf_buffer, |
- int buffer_size, int* page_count, |
- double* max_page_width) { |
+ int buffer_size, |
+ int* page_count, |
+ double* max_page_width, |
+ void** pdf_handle) { |
if (!g_sdk_initialized_via_pepper) { |
if (!InitializeSDK()) |
return false; |
} |
PDFEngineExports* engine_exports = PDFEngineExports::Get(); |
- bool ret = engine_exports->GetPDFDocInfo( |
- pdf_buffer, buffer_size, page_count, max_page_width); |
+ bool ret = engine_exports->GetPDFDocInfo(pdf_buffer, buffer_size, page_count, |
+ max_page_width, pdf_handle); |
if (!g_sdk_initialized_via_pepper) |
ShutdownSDK(); |
return ret; |
} |
-bool GetPDFPageSizeByIndex(const void* pdf_buffer, |
- int pdf_buffer_size, int page_number, |
- double* width, double* height) { |
+void ReleasePDFHandle(void* pdf_handle) { |
if (!g_sdk_initialized_via_pepper) { |
- if (!chrome_pdf::InitializeSDK()) |
+ if (!InitializeSDK()) |
+ return; |
+ } |
+ PDFEngineExports* engine_exports = PDFEngineExports::Get(); |
+ engine_exports->ReleasePDFHandle(pdf_handle); |
+ if (!g_sdk_initialized_via_pepper) |
+ ShutdownSDK(); |
+} |
+ |
+bool GetPDFPageSizeByIndex(void* pdf_handle, |
+ int page_number, |
+ double* width, |
+ double* height) { |
+ if (!g_sdk_initialized_via_pepper) { |
+ if (!InitializeSDK()) |
return false; |
} |
- chrome_pdf::PDFEngineExports* engine_exports = |
- chrome_pdf::PDFEngineExports::Get(); |
- bool ret = engine_exports->GetPDFPageSizeByIndex( |
- pdf_buffer, pdf_buffer_size, page_number, width, height); |
+ PDFEngineExports* engine_exports = PDFEngineExports::Get(); |
+ bool ret = engine_exports->GetPDFPageSizeByIndex(pdf_handle, page_number, |
+ width, height); |
if (!g_sdk_initialized_via_pepper) |
- chrome_pdf::ShutdownSDK(); |
+ ShutdownSDK(); |
return ret; |
} |
-bool RenderPDFPageToBitmap(const void* pdf_buffer, |
- int pdf_buffer_size, |
+bool RenderPDFPageToBitmap(void* pdf_handle, |
int page_number, |
void* bitmap_buffer, |
int bitmap_width, |
@@ -173,8 +184,8 @@ bool RenderPDFPageToBitmap(const void* pdf_buffer, |
PDFEngineExports::RenderingSettings settings( |
dpi, dpi, pp::Rect(bitmap_width, bitmap_height), true, false, true, true, |
autorotate); |
- bool ret = engine_exports->RenderPDFPageToBitmap( |
- pdf_buffer, pdf_buffer_size, page_number, settings, bitmap_buffer); |
+ bool ret = engine_exports->RenderPDFPageToBitmap(pdf_handle, page_number, |
+ settings, bitmap_buffer); |
if (!g_sdk_initialized_via_pepper) |
ShutdownSDK(); |