OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkCanvas.h" | 8 #include "SkCanvas.h" |
9 #include "SkDevice.h" | 9 #include "SkDevice.h" |
10 #include "SkForceLinking.h" | 10 #include "SkForceLinking.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 | 27 |
28 | 28 |
29 __SK_FORCE_IMAGE_DECODER_LINKING; | 29 __SK_FORCE_IMAGE_DECODER_LINKING; |
30 | 30 |
31 // TODO(edisonn): tool, show what objects were read at least, show the ones not
even read | 31 // TODO(edisonn): tool, show what objects were read at least, show the ones not
even read |
32 // keep for each object pos in file | 32 // keep for each object pos in file |
33 // plug in for VS? syntax coloring, show selected object ... from the text, or f
rom rendered x,y | 33 // plug in for VS? syntax coloring, show selected object ... from the text, or f
rom rendered x,y |
34 | 34 |
35 // TODO(edisonn): security - validate all the user input, all pdf! | 35 // TODO(edisonn): security - validate all the user input, all pdf! |
36 | 36 |
| 37 // TODO(edisonn): put drawtext in #ifdefs, so comparations will ignore minor cha
nges in text positioning and font |
| 38 // this way, we look more at other features and layout in diffs |
37 | 39 |
38 #include "SkPdfHeaders_autogen.h" | 40 #include "SkPdfHeaders_autogen.h" |
39 #include "SkPdfPodofoMapper_autogen.h" | 41 #include "SkPdfPodofoMapper_autogen.h" |
40 #include "SkPdfParser.h" | 42 #include "SkPdfParser.h" |
41 | 43 |
42 #include "SkPdfBasics.h" | 44 #include "SkPdfBasics.h" |
43 #include "SkPdfUtils.h" | 45 #include "SkPdfUtils.h" |
44 | 46 |
45 #include "SkPdfFont.h" | 47 #include "SkPdfFont.h" |
46 | 48 |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
379 // TODO(edisonn): post rotate, skew | 381 // TODO(edisonn): post rotate, skew |
380 mirror.postTranslate(0, point1.y()); | 382 mirror.postTranslate(0, point1.y()); |
381 | 383 |
382 matrix.postConcat(mirror); | 384 matrix.postConcat(mirror); |
383 | 385 |
384 canvas->setMatrix(matrix); | 386 canvas->setMatrix(matrix); |
385 | 387 |
386 SkTraceMatrix(matrix, "mirrored"); | 388 SkTraceMatrix(matrix, "mirrored"); |
387 #endif | 389 #endif |
388 | 390 |
389 skfont->drawText(decoded, &paint, pdfContext, canvas, &pdfContext->fGraphics
State.fMatrixTm); | 391 skfont->drawText(decoded, &paint, pdfContext, canvas); |
390 canvas->restore(); | 392 canvas->restore(); |
391 | 393 |
392 return kPartial_PdfResult; | 394 return kPartial_PdfResult; |
393 } | 395 } |
394 | 396 |
395 // TODO(edisonn): create header files with declarations! | 397 // TODO(edisonn): create header files with declarations! |
396 PdfResult PdfOp_q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo
per); | 398 PdfResult PdfOp_q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo
per); |
397 PdfResult PdfOp_Q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo
per); | 399 PdfResult PdfOp_Q(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** loo
per); |
398 PdfResult PdfOp_Tw(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo
oper); | 400 PdfResult PdfOp_Tw(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo
oper); |
399 PdfResult PdfOp_Tc(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo
oper); | 401 PdfResult PdfOp_Tc(PdfContext* pdfContext, SkCanvas* canvas, PdfTokenLooper** lo
oper); |
(...skipping 1927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2327 setup_bitmap(&bitmap, (int)SkScalarToDouble(rect.width()), (int)
SkScalarToDouble(rect.height())); | 2329 setup_bitmap(&bitmap, (int)SkScalarToDouble(rect.width()), (int)
SkScalarToDouble(rect.height())); |
2328 #endif | 2330 #endif |
2329 SkAutoTUnref<SkDevice> device(SkNEW_ARGS(SkDevice, (bitmap))); | 2331 SkAutoTUnref<SkDevice> device(SkNEW_ARGS(SkDevice, (bitmap))); |
2330 SkCanvas canvas(device); | 2332 SkCanvas canvas(device); |
2331 | 2333 |
2332 gDumpBitmap = &bitmap; | 2334 gDumpBitmap = &bitmap; |
2333 | 2335 |
2334 doc.drawPage(pn, &canvas); | 2336 doc.drawPage(pn, &canvas); |
2335 | 2337 |
2336 SkString out; | 2338 SkString out; |
2337 out.appendf("%s-%i.png", inputFileName.c_str(), pn); | 2339 if (doc.pages() > 1) { |
| 2340 out.appendf("%s-%i.png", inputFileName.c_str(), pn); |
| 2341 } else { |
| 2342 out = inputFileName; |
| 2343 // .pdf -> .png |
| 2344 out[out.size() - 2] = 'n'; |
| 2345 out[out.size() - 1] = 'g'; |
| 2346 } |
2338 SkImageEncoder::EncodeFile(out.c_str(), bitmap, SkImageEncoder::
kPNG_Type, 100); | 2347 SkImageEncoder::EncodeFile(out.c_str(), bitmap, SkImageEncoder::
kPNG_Type, 100); |
2339 } | 2348 } |
2340 return true; | 2349 return true; |
2341 } | 2350 } |
2342 } | 2351 } |
2343 catch( PdfError & e ) | 2352 catch( PdfError & e ) |
2344 { | 2353 { |
2345 std::cout << "ERROR: PDF can't be parsed!" << inputFileName.c_str() << s
td::endl; | 2354 std::cout << "ERROR: PDF can't be parsed!" << inputFileName.c_str() << s
td::endl; |
2346 return false; | 2355 return false; |
2347 } | 2356 } |
2348 | 2357 |
2349 return true; | 2358 return true; |
2350 } | 2359 } |
OLD | NEW |