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