| 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();
|
|
|
|
|