@@ -53,6 +53,7 @@ This file is part of the iText (R) project.
53
53
import com .itextpdf .test .annotations .LogMessage ;
54
54
import com .itextpdf .test .annotations .LogMessages ;
55
55
import com .itextpdf .test .annotations .type .IntegrationTest ;
56
+
56
57
import org .junit .Assert ;
57
58
import org .junit .BeforeClass ;
58
59
import org .junit .Test ;
@@ -63,8 +64,8 @@ This file is part of the iText (R) project.
63
64
@ Category (IntegrationTest .class )
64
65
public class PdfFormCopyTest extends ExtendedITextTest {
65
66
66
- public static final String sourceFolder = "./src/test/resources/com/itextpdf/forms/PdfFormFieldsCopyTest /" ;
67
- public static final String destinationFolder = "./target/test/com/itextpdf/forms/PdfFormFieldsCopyTest /" ;
67
+ public static final String sourceFolder = "./src/test/resources/com/itextpdf/forms/PdfFormCopyTest /" ;
68
+ public static final String destinationFolder = "./target/test/com/itextpdf/forms/PdfFormCopyTest /" ;
68
69
69
70
@ BeforeClass
70
71
public static void beforeClass () {
@@ -73,7 +74,7 @@ public static void beforeClass() {
73
74
74
75
@ Test
75
76
@ LogMessages (messages = {
76
- @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 13 )
77
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 32 )
77
78
})
78
79
public void copyFieldsTest01 () throws IOException , InterruptedException {
79
80
String srcFilename1 = sourceFolder + "appearances1.pdf" ;
@@ -328,7 +329,7 @@ public void copyFieldsTest06() throws IOException, InterruptedException {
328
329
329
330
@ Test
330
331
@ LogMessages (messages = {
331
- @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 13 )
332
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 32 )
332
333
})
333
334
public void copyFieldsTest07 () throws IOException , InterruptedException {
334
335
String srcFilename = sourceFolder + "datasheet.pdf" ;
@@ -350,7 +351,7 @@ public void copyFieldsTest07() throws IOException, InterruptedException {
350
351
351
352
@ Test
352
353
@ LogMessages (messages = {
353
- @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 13 )
354
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 32 )
354
355
})
355
356
public void copyFieldsTest08 () throws IOException , InterruptedException {
356
357
String srcFilename1 = sourceFolder + "appearances1.pdf" ;
@@ -378,7 +379,7 @@ public void copyFieldsTest08() throws IOException, InterruptedException {
378
379
379
380
@ Test
380
381
@ LogMessages (messages = {
381
- @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 26 )
382
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 64 )
382
383
})
383
384
public void copyFieldsTest09 () throws IOException , InterruptedException {
384
385
String srcFilename = sourceFolder + "datasheet.pdf" ;
@@ -516,9 +517,9 @@ public void unnamedFieldsHierarchyTest() throws IOException, InterruptedExceptio
516
517
})
517
518
public void copyAndEditTextFields () throws IOException , InterruptedException {
518
519
//TODO: update after DEVSIX-2354
519
- String srcFileName = sourceFolder + "/ checkPdfFormCopy_Source.pdf" ;
520
+ String srcFileName = sourceFolder + "checkPdfFormCopy_Source.pdf" ;
520
521
String destFilename = destinationFolder + "copyAndEditTextFields.pdf" ;
521
- String cmpFileName = sourceFolder + "/ cmp_copyAndEditTextFields.pdf" ;
522
+ String cmpFileName = sourceFolder + "cmp_copyAndEditTextFields.pdf" ;
522
523
523
524
PdfDocument srcDoc = new PdfDocument (new PdfReader (srcFileName ));
524
525
PdfDocument destDoc = new PdfDocument (new PdfWriter (destFilename ));
@@ -547,9 +548,9 @@ public void copyAndEditTextFields() throws IOException, InterruptedException {
547
548
})
548
549
public void copyAndEditCheckboxes () throws IOException , InterruptedException {
549
550
//TODO: update after DEVSIX-2354
550
- String srcFileName = sourceFolder + "/ checkPdfFormCopy_Source.pdf" ;
551
+ String srcFileName = sourceFolder + "checkPdfFormCopy_Source.pdf" ;
551
552
String destFilename = destinationFolder + "copyAndEditCheckboxes.pdf" ;
552
- String cmpFileName = sourceFolder + "/ cmp_copyAndEditCheckboxes.pdf" ;
553
+ String cmpFileName = sourceFolder + "cmp_copyAndEditCheckboxes.pdf" ;
553
554
554
555
PdfDocument srcDoc = new PdfDocument (new PdfReader (srcFileName ));
555
556
PdfDocument destDoc = new PdfDocument (new PdfWriter (destFilename ));
@@ -576,9 +577,9 @@ public void copyAndEditCheckboxes() throws IOException, InterruptedException {
576
577
})
577
578
public void copyAndEditRadioButtons () throws IOException , InterruptedException {
578
579
//TODO: update after DEVSIX-2354
579
- String srcFileName = sourceFolder + "/ checkPdfFormCopy_Source.pdf" ;
580
+ String srcFileName = sourceFolder + "checkPdfFormCopy_Source.pdf" ;
580
581
String destFilename = destinationFolder + "copyAndEditRadioButtons.pdf" ;
581
- String cmpFileName = sourceFolder + "/ cmp_copyAndEditRadioButtons.pdf" ;
582
+ String cmpFileName = sourceFolder + "cmp_copyAndEditRadioButtons.pdf" ;
582
583
583
584
PdfDocument srcDoc = new PdfDocument (new PdfReader (srcFileName ));
584
585
PdfDocument destDoc = new PdfDocument (new PdfWriter (destFilename ));
@@ -596,4 +597,103 @@ public void copyAndEditRadioButtons() throws IOException, InterruptedException {
596
597
597
598
Assert .assertNull (new CompareTool ().compareByContent (destFilename , cmpFileName , destinationFolder , "diff_" ));
598
599
}
600
+
601
+ @ Test
602
+ @ LogMessages (messages = {
603
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD )
604
+ })
605
+ public void mergeMergedFieldAndMergedFieldTest () throws IOException , InterruptedException {
606
+ String srcFileName1 = sourceFolder + "fieldMergedWithWidget.pdf" ;
607
+ String destFilename = destinationFolder + "mergeMergedFieldAndMergedFieldTest.pdf" ;
608
+ String cmpFileName = sourceFolder + "cmp_mergeMergedFieldAndMergedFieldTest.pdf" ;
609
+
610
+ try (
611
+ PdfWriter writer = new PdfWriter (destFilename );
612
+ PdfDocument resultPdfDocument = new PdfDocument (writer );
613
+ PdfReader reader1 = new PdfReader (srcFileName1 );
614
+ PdfDocument sourceDoc1 = new PdfDocument (reader1 );) {
615
+ PdfAcroForm .getAcroForm (resultPdfDocument , true );
616
+ PdfPageFormCopier formCopier = new PdfPageFormCopier ();
617
+
618
+ sourceDoc1 .copyPagesTo (1 , sourceDoc1 .getNumberOfPages (), resultPdfDocument , formCopier );
619
+ sourceDoc1 .copyPagesTo (1 , sourceDoc1 .getNumberOfPages (), resultPdfDocument , formCopier );
620
+ }
621
+
622
+ Assert .assertNull (new CompareTool ().compareByContent (destFilename , cmpFileName , destinationFolder , "diff_" ));
623
+ }
624
+
625
+ @ Test
626
+ @ LogMessages (messages = {
627
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD , count = 2 )
628
+ })
629
+ public void mergeMergedFieldAndTwoWidgetsTest () throws IOException , InterruptedException {
630
+ String srcFileName1 = sourceFolder + "fieldMergedWithWidget.pdf" ;
631
+ String srcFileName2 = sourceFolder + "fieldTwoWidgets.pdf" ;
632
+ String destFilename = destinationFolder + "mergeMergedFieldAndTwoWidgetsTest.pdf" ;
633
+ String cmpFileName = sourceFolder + "cmp_mergeMergedFieldAndTwoWidgetsTest.pdf" ;
634
+
635
+ try (
636
+ PdfWriter writer = new PdfWriter (destFilename );
637
+ PdfDocument resultPdfDocument = new PdfDocument (writer );
638
+ PdfReader reader1 = new PdfReader (srcFileName1 );
639
+ PdfDocument sourceDoc1 = new PdfDocument (reader1 );
640
+ PdfReader reader2 = new PdfReader (srcFileName2 );
641
+ PdfDocument sourceDoc2 = new PdfDocument (reader2 );) {
642
+ PdfAcroForm .getAcroForm (resultPdfDocument , true );
643
+ PdfPageFormCopier formCopier = new PdfPageFormCopier ();
644
+
645
+ sourceDoc1 .copyPagesTo (1 , sourceDoc1 .getNumberOfPages (), resultPdfDocument , formCopier );
646
+ sourceDoc2 .copyPagesTo (1 , sourceDoc2 .getNumberOfPages (), resultPdfDocument , formCopier );
647
+ }
648
+
649
+ Assert .assertNull (new CompareTool ().compareByContent (destFilename , cmpFileName , destinationFolder , "diff_" ));
650
+ }
651
+
652
+ @ Test
653
+ @ LogMessages (messages = {
654
+ @ LogMessage (messageTemplate = LogMessageConstant .DOCUMENT_ALREADY_HAS_FIELD )
655
+ })
656
+ public void mergeTwoWidgetsAndMergedFieldTest () throws IOException , InterruptedException {
657
+ String srcFileName1 = sourceFolder + "fieldMergedWithWidget.pdf" ;
658
+ String srcFileName2 = sourceFolder + "fieldTwoWidgets.pdf" ;
659
+ String destFilename = destinationFolder + "mergeTwoWidgetsAndMergedFieldTest.pdf" ;
660
+ String cmpFileName = sourceFolder + "cmp_mergeTwoWidgetsAndMergedFieldTest.pdf" ;
661
+
662
+ try (
663
+ PdfWriter writer = new PdfWriter (destFilename );
664
+ PdfDocument resultPdfDocument = new PdfDocument (writer );
665
+ PdfReader reader1 = new PdfReader (srcFileName1 );
666
+ PdfDocument sourceDoc1 = new PdfDocument (reader1 );
667
+ PdfReader reader2 = new PdfReader (srcFileName2 );
668
+ PdfDocument sourceDoc2 = new PdfDocument (reader2 );) {
669
+ PdfAcroForm .getAcroForm (resultPdfDocument , true );
670
+ PdfPageFormCopier formCopier = new PdfPageFormCopier ();
671
+
672
+ sourceDoc2 .copyPagesTo (1 , sourceDoc2 .getNumberOfPages (), resultPdfDocument , formCopier );
673
+ sourceDoc1 .copyPagesTo (1 , sourceDoc1 .getNumberOfPages (), resultPdfDocument , formCopier );
674
+ }
675
+
676
+ Assert .assertNull (new CompareTool ().compareByContent (destFilename , cmpFileName , destinationFolder , "diff_" ));
677
+ }
678
+
679
+ @ Test
680
+ public void mergeTwoWidgetsAndTwoWidgetsTest () throws IOException , InterruptedException {
681
+ String srcFileName2 = sourceFolder + "fieldTwoWidgets.pdf" ;
682
+ String destFilename = destinationFolder + "mergeTwoWidgetsAndTwoWidgetsTest.pdf" ;
683
+ String cmpFileName = sourceFolder + "cmp_mergeTwoWidgetsAndTwoWidgetsTest.pdf" ;
684
+
685
+ try (
686
+ PdfWriter writer = new PdfWriter (destFilename );
687
+ PdfDocument resultPdfDocument = new PdfDocument (writer );
688
+ PdfReader reader2 = new PdfReader (srcFileName2 );
689
+ PdfDocument sourceDoc2 = new PdfDocument (reader2 );) {
690
+ PdfAcroForm .getAcroForm (resultPdfDocument , true );
691
+ PdfPageFormCopier formCopier = new PdfPageFormCopier ();
692
+
693
+ sourceDoc2 .copyPagesTo (1 , sourceDoc2 .getNumberOfPages (), resultPdfDocument , formCopier );
694
+ sourceDoc2 .copyPagesTo (1 , sourceDoc2 .getNumberOfPages (), resultPdfDocument , formCopier );
695
+ }
696
+
697
+ Assert .assertNull (new CompareTool ().compareByContent (destFilename , cmpFileName , destinationFolder , "diff_" ));
698
+ }
599
699
}
0 commit comments