@@ -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 ;
@@ -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" ;
@@ -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