OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #include "../../include/fpdfdoc/fpdf_doc.h" | 7 #include "../../include/fpdfdoc/fpdf_doc.h" |
8 #include "../../include/fpdfdoc/fpdf_vt.h" | 8 #include "../../include/fpdfdoc/fpdf_vt.h" |
9 #include "pdf_vt.h" | 9 #include "pdf_vt.h" |
10 #include "../../include/fpdfdoc/fpdf_ap.h" | 10 #include "../../include/fpdfdoc/fpdf_ap.h" |
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 subWord = '*'; | 457 subWord = '*'; |
458 vt.SetPasswordChar(subWord); | 458 vt.SetPasswordChar(subWord); |
459 } | 459 } |
460 FX_BOOL bCharArray = (dwFlags >> 24) & 1; | 460 FX_BOOL bCharArray = (dwFlags >> 24) & 1; |
461 if (bCharArray) { | 461 if (bCharArray) { |
462 vt.SetCharArray(dwMaxLen); | 462 vt.SetCharArray(dwMaxLen); |
463 } else { | 463 } else { |
464 vt.SetLimitChar(dwMaxLen); | 464 vt.SetLimitChar(dwMaxLen); |
465 } | 465 } |
466 vt.Initialize(); | 466 vt.Initialize(); |
467 vt.SetText(swValue); | 467 vt.SetText(swValue.c_str()); |
468 vt.RearrangeAll(); | 468 vt.RearrangeAll(); |
469 CPDF_Rect rcContent = vt.GetContentRect(); | 469 CPDF_Rect rcContent = vt.GetContentRect(); |
470 CPDF_Point ptOffset(0.0f, 0.0f); | 470 CPDF_Point ptOffset(0.0f, 0.0f); |
471 if (!bMultiLine) { | 471 if (!bMultiLine) { |
472 ptOffset = CPDF_Point(0.0f, (rcContent.Height() - rcBody.Hei
ght()) / 2.0f); | 472 ptOffset = CPDF_Point(0.0f, (rcContent.Height() - rcBody.Hei
ght()) / 2.0f); |
473 } | 473 } |
474 CFX_ByteString sBody = CPVT_GenerateAP::GenerateEditAP(&map, vt.
GetIterator(), ptOffset, !bCharArray, subWord); | 474 CFX_ByteString sBody = CPVT_GenerateAP::GenerateEditAP(&map, vt.
GetIterator(), ptOffset, !bCharArray, subWord); |
475 if (sBody.GetLength() > 0) { | 475 if (sBody.GetLength() > 0) { |
476 sAppStream << "/Tx BMC\n" << "q\n"; | 476 sAppStream << "/Tx BMC\n" << "q\n"; |
477 if (rcContent.Width() > rcBody.Width() || | 477 if (rcContent.Width() > rcBody.Width() || |
(...skipping 17 matching lines...) Expand all Loading... |
495 CPDF_Rect rcEdit = rcBody; | 495 CPDF_Rect rcEdit = rcBody; |
496 rcEdit.right = rcButton.left; | 496 rcEdit.right = rcButton.left; |
497 rcEdit.Normalize(); | 497 rcEdit.Normalize(); |
498 vt.SetPlateRect(rcEdit); | 498 vt.SetPlateRect(rcEdit); |
499 if (IsFloatZero(fFontSize)) { | 499 if (IsFloatZero(fFontSize)) { |
500 vt.SetAutoFontSize(TRUE); | 500 vt.SetAutoFontSize(TRUE); |
501 } else { | 501 } else { |
502 vt.SetFontSize(fFontSize); | 502 vt.SetFontSize(fFontSize); |
503 } | 503 } |
504 vt.Initialize(); | 504 vt.Initialize(); |
505 vt.SetText(swValue); | 505 vt.SetText(swValue.c_str()); |
506 vt.RearrangeAll(); | 506 vt.RearrangeAll(); |
507 CPDF_Rect rcContent = vt.GetContentRect(); | 507 CPDF_Rect rcContent = vt.GetContentRect(); |
508 CPDF_Point ptOffset = CPDF_Point(0.0f, (rcContent.Height() - rcE
dit.Height()) / 2.0f); | 508 CPDF_Point ptOffset = CPDF_Point(0.0f, (rcContent.Height() - rcE
dit.Height()) / 2.0f); |
509 CFX_ByteString sEdit = CPVT_GenerateAP::GenerateEditAP(&map, vt.
GetIterator(), ptOffset, TRUE, 0); | 509 CFX_ByteString sEdit = CPVT_GenerateAP::GenerateEditAP(&map, vt.
GetIterator(), ptOffset, TRUE, 0); |
510 if (sEdit.GetLength() > 0) { | 510 if (sEdit.GetLength() > 0) { |
511 sAppStream << "/Tx BMC\n" << "q\n"; | 511 sAppStream << "/Tx BMC\n" << "q\n"; |
512 sAppStream << rcEdit.left << " " << rcEdit.bottom << " " | 512 sAppStream << rcEdit.left << " " << rcEdit.bottom << " " |
513 << rcEdit.Width() << " " << rcEdit.Height() << "
re\nW\nn\n"; | 513 << rcEdit.Width() << " " << rcEdit.Height() << "
re\nW\nn\n"; |
514 sAppStream << "BT\n" << CPVT_GenerateAP::GenerateColorAP(crT
ext, TRUE) << sEdit << "ET\n" << "Q\nEMC\n"; | 514 sAppStream << "BT\n" << CPVT_GenerateAP::GenerateColorAP(crT
ext, TRUE) << sEdit << "ET\n" << "Q\nEMC\n"; |
515 } | 515 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 } | 566 } |
567 CPDF_VariableText vt; | 567 CPDF_VariableText vt; |
568 vt.SetProvider(&prd); | 568 vt.SetProvider(&prd); |
569 vt.SetPlateRect(CPDF_Rect(rcBody.left, 0.0f, rcBody.
right, 0.0f)); | 569 vt.SetPlateRect(CPDF_Rect(rcBody.left, 0.0f, rcBody.
right, 0.0f)); |
570 if (IsFloatZero(fFontSize)) { | 570 if (IsFloatZero(fFontSize)) { |
571 vt.SetFontSize(12.0f); | 571 vt.SetFontSize(12.0f); |
572 } else { | 572 } else { |
573 vt.SetFontSize(fFontSize); | 573 vt.SetFontSize(fFontSize); |
574 } | 574 } |
575 vt.Initialize(); | 575 vt.Initialize(); |
576 vt.SetText(swItem); | 576 vt.SetText(swItem.c_str()); |
577 vt.RearrangeAll(); | 577 vt.RearrangeAll(); |
578 FX_FLOAT fItemHeight = vt.GetContentRect().Height(); | 578 FX_FLOAT fItemHeight = vt.GetContentRect().Height(); |
579 if (bSelected) { | 579 if (bSelected) { |
580 CPDF_Rect rcItem = CPDF_Rect(rcBody.left, fy - f
ItemHeight, rcBody.right, fy); | 580 CPDF_Rect rcItem = CPDF_Rect(rcBody.left, fy - f
ItemHeight, rcBody.right, fy); |
581 sBody << "q\n" << CPVT_GenerateAP::GenerateColor
AP(CPVT_Color(CT_RGB, 0, 51.0f / 255.0f, 113.0f / 255.0f), TRUE) | 581 sBody << "q\n" << CPVT_GenerateAP::GenerateColor
AP(CPVT_Color(CT_RGB, 0, 51.0f / 255.0f, 113.0f / 255.0f), TRUE) |
582 << rcItem.left << " " << rcItem.bottom <<
" " << rcItem.Width() << " " << rcItem.Height() << " re f\n" << "Q\n"; | 582 << rcItem.left << " " << rcItem.bottom <<
" " << rcItem.Width() << " " << rcItem.Height() << " re f\n" << "Q\n"; |
583 sBody << "BT\n" << CPVT_GenerateAP::GenerateColo
rAP(CPVT_Color(CT_GRAY, 1), TRUE) << CPVT_GenerateAP::GenerateEditAP(&map, vt.Ge
tIterator(), CPDF_Point(0.0f, fy), TRUE, 0) << "ET\n"; | 583 sBody << "BT\n" << CPVT_GenerateAP::GenerateColo
rAP(CPVT_Color(CT_GRAY, 1), TRUE) << CPVT_GenerateAP::GenerateEditAP(&map, vt.Ge
tIterator(), CPDF_Point(0.0f, fy), TRUE, 0) << "ET\n"; |
584 } else { | 584 } else { |
585 sBody << "BT\n" << CPVT_GenerateAP::GenerateColo
rAP(crText, TRUE) << CPVT_GenerateAP::GenerateEditAP(&map, vt.GetIterator(), CPD
F_Point(0.0f, fy), TRUE, 0) << "ET\n"; | 585 sBody << "BT\n" << CPVT_GenerateAP::GenerateColo
rAP(crText, TRUE) << CPVT_GenerateAP::GenerateEditAP(&map, vt.GetIterator(), CPD
F_Point(0.0f, fy), TRUE, 0) << "ET\n"; |
586 } | 586 } |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
801 case CT_GRAY: | 801 case CT_GRAY: |
802 sColorStream << color.fColor1 << " " << (bFillOrStroke ? "g" : "G")
<< "\n"; | 802 sColorStream << color.fColor1 << " " << (bFillOrStroke ? "g" : "G")
<< "\n"; |
803 break; | 803 break; |
804 case CT_CMYK: | 804 case CT_CMYK: |
805 sColorStream << color.fColor1 << " " << color.fColor2 << " " << colo
r.fColor3 << " " << color.fColor4 << " " | 805 sColorStream << color.fColor1 << " " << color.fColor2 << " " << colo
r.fColor3 << " " << color.fColor4 << " " |
806 << (bFillOrStroke ? "k" : "K") << "\n"; | 806 << (bFillOrStroke ? "k" : "K") << "\n"; |
807 break; | 807 break; |
808 } | 808 } |
809 return sColorStream.GetByteString(); | 809 return sColorStream.GetByteString(); |
810 } | 810 } |
OLD | NEW |