Showing
3 changed files
with
25 additions
and
6 deletions
| @@ -245,7 +245,12 @@ void print_job::raster_pdf(const uint8_t data[], | @@ -245,7 +245,12 @@ void print_job::raster_pdf(const uint8_t data[], | ||
| 245 | const int32_t pages[], | 245 | const int32_t pages[], |
| 246 | size_t pages_count, | 246 | size_t pages_count, |
| 247 | double scale) { | 247 | double scale) { |
| 248 | - FPDF_InitLibraryWithConfig(nullptr); | 248 | + FPDF_LIBRARY_CONFIG config; |
| 249 | + config.version = 2; | ||
| 250 | + config.m_pUserFontPaths = NULL; | ||
| 251 | + config.m_pIsolate = NULL; | ||
| 252 | + config.m_v8EmbedderSlot = 0; | ||
| 253 | + FPDF_InitLibraryWithConfig(&config); | ||
| 249 | 254 | ||
| 250 | auto doc = FPDF_LoadMemDocument64(data, size, nullptr); | 255 | auto doc = FPDF_LoadMemDocument64(data, size, nullptr); |
| 251 | if (!doc) { | 256 | if (!doc) { |
| @@ -302,6 +307,7 @@ void print_job::raster_pdf(const uint8_t data[], | @@ -302,6 +307,7 @@ void print_job::raster_pdf(const uint8_t data[], | ||
| 302 | on_page_rasterized(this, p, l, bWidth, bHeight); | 307 | on_page_rasterized(this, p, l, bWidth, bHeight); |
| 303 | 308 | ||
| 304 | FPDFBitmap_Destroy(bitmap); | 309 | FPDFBitmap_Destroy(bitmap); |
| 310 | + FPDF_ClosePage(page); | ||
| 305 | } | 311 | } |
| 306 | 312 | ||
| 307 | FPDF_CloseDocument(doc); | 313 | FPDF_CloseDocument(doc); |
| @@ -204,7 +204,12 @@ void PrintJob::writeJob(std::vector<uint8_t> data) { | @@ -204,7 +204,12 @@ void PrintJob::writeJob(std::vector<uint8_t> data) { | ||
| 204 | 204 | ||
| 205 | auto r = StartDoc(hDC, &docInfo); | 205 | auto r = StartDoc(hDC, &docInfo); |
| 206 | 206 | ||
| 207 | - FPDF_InitLibraryWithConfig(nullptr); | 207 | + FPDF_LIBRARY_CONFIG config; |
| 208 | + config.version = 2; | ||
| 209 | + config.m_pUserFontPaths = NULL; | ||
| 210 | + config.m_pIsolate = NULL; | ||
| 211 | + config.m_v8EmbedderSlot = 0; | ||
| 212 | + FPDF_InitLibraryWithConfig(&config); | ||
| 208 | 213 | ||
| 209 | auto doc = FPDF_LoadMemDocument64(data.data(), data.size(), nullptr); | 214 | auto doc = FPDF_LoadMemDocument64(data.data(), data.size(), nullptr); |
| 210 | if (!doc) { | 215 | if (!doc) { |
| @@ -230,7 +235,7 @@ void PrintJob::writeJob(std::vector<uint8_t> data) { | @@ -230,7 +235,7 @@ void PrintJob::writeJob(std::vector<uint8_t> data) { | ||
| 230 | int bHeight = static_cast<int>(pdfHeight * dpiY); | 235 | int bHeight = static_cast<int>(pdfHeight * dpiY); |
| 231 | 236 | ||
| 232 | FPDF_RenderPage(hDC, page, 0, 0, bWidth, bHeight, 0, FPDF_ANNOT); | 237 | FPDF_RenderPage(hDC, page, 0, 0, bWidth, bHeight, 0, FPDF_ANNOT); |
| 233 | - | 238 | + FPDF_ClosePage(page); |
| 234 | r = EndPage(hDC); | 239 | r = EndPage(hDC); |
| 235 | } | 240 | } |
| 236 | 241 | ||
| @@ -284,7 +289,12 @@ void PrintJob::pickPrinter(void* result) {} | @@ -284,7 +289,12 @@ void PrintJob::pickPrinter(void* result) {} | ||
| 284 | void PrintJob::rasterPdf(std::vector<uint8_t> data, | 289 | void PrintJob::rasterPdf(std::vector<uint8_t> data, |
| 285 | std::vector<int> pages, | 290 | std::vector<int> pages, |
| 286 | double scale) { | 291 | double scale) { |
| 287 | - FPDF_InitLibraryWithConfig(nullptr); | 292 | + FPDF_LIBRARY_CONFIG config; |
| 293 | + config.version = 2; | ||
| 294 | + config.m_pUserFontPaths = NULL; | ||
| 295 | + config.m_pIsolate = NULL; | ||
| 296 | + config.m_v8EmbedderSlot = 0; | ||
| 297 | + FPDF_InitLibraryWithConfig(&config); | ||
| 288 | 298 | ||
| 289 | auto doc = FPDF_LoadMemDocument64(data.data(), data.size(), nullptr); | 299 | auto doc = FPDF_LoadMemDocument64(data.data(), data.size(), nullptr); |
| 290 | if (!doc) { | 300 | if (!doc) { |
| @@ -320,7 +330,8 @@ void PrintJob::rasterPdf(std::vector<uint8_t> data, | @@ -320,7 +330,8 @@ void PrintJob::rasterPdf(std::vector<uint8_t> data, | ||
| 320 | auto bitmap = FPDFBitmap_Create(bWidth, bHeight, 0); | 330 | auto bitmap = FPDFBitmap_Create(bWidth, bHeight, 0); |
| 321 | FPDFBitmap_FillRect(bitmap, 0, 0, bWidth, bHeight, 0xffffffff); | 331 | FPDFBitmap_FillRect(bitmap, 0, 0, bWidth, bHeight, 0xffffffff); |
| 322 | 332 | ||
| 323 | - FPDF_RenderPageBitmap(bitmap, page, 0, 0, bWidth, bHeight, 0, FPDF_ANNOT); | 333 | + FPDF_RenderPageBitmap(bitmap, page, 0, 0, bWidth, bHeight, 0, |
| 334 | + FPDF_ANNOT | FPDF_LCD_TEXT); | ||
| 324 | 335 | ||
| 325 | uint8_t* p = static_cast<uint8_t*>(FPDFBitmap_GetBuffer(bitmap)); | 336 | uint8_t* p = static_cast<uint8_t*>(FPDFBitmap_GetBuffer(bitmap)); |
| 326 | auto stride = FPDFBitmap_GetStride(bitmap); | 337 | auto stride = FPDFBitmap_GetStride(bitmap); |
| @@ -341,6 +352,7 @@ void PrintJob::rasterPdf(std::vector<uint8_t> data, | @@ -341,6 +352,7 @@ void PrintJob::rasterPdf(std::vector<uint8_t> data, | ||
| 341 | this); | 352 | this); |
| 342 | 353 | ||
| 343 | FPDFBitmap_Destroy(bitmap); | 354 | FPDFBitmap_Destroy(bitmap); |
| 355 | + FPDF_ClosePage(page); | ||
| 344 | } | 356 | } |
| 345 | 357 | ||
| 346 | FPDF_CloseDocument(doc); | 358 | FPDF_CloseDocument(doc); |
-
Please register or login to post a comment