@@ -584,6 +584,55 @@ public void createDocumentWithTrueTypeFont1() throws IOException, InterruptedExc
584
584
Assert .assertNull (new CompareTool ().compareByContent (filename , cmpFilename , destinationFolder , "diff_" ));
585
585
}
586
586
587
+ @ Test
588
+ public void createDocumentWithTrueTypeFont1NotEmbedded () throws IOException , InterruptedException {
589
+ String filename = destinationFolder + "createDocumentWithTrueTypeFont1NotEmbedded.pdf" ;
590
+ String cmpFilename = sourceFolder + "cmp_createDocumentWithTrueTypeFont1NotEmbedded.pdf" ;
591
+ String title = "Empty iText 7 Document" ;
592
+ PdfWriter writer = new PdfWriter (filename );
593
+ writer .setCompressionLevel (CompressionConstants .NO_COMPRESSION );
594
+ PdfDocument pdfDoc = new PdfDocument (writer );
595
+ pdfDoc .getDocumentInfo ().setAuthor (author ).
596
+ setCreator (creator ).
597
+ setTitle (title );
598
+ String font = fontsFolder + "abserif4_5.ttf" ;
599
+ PdfFont pdfTrueTypeFont = PdfFontFactory .createFont (font , false );
600
+ Assert .assertTrue ("PdfTrueTypeFont expected" , pdfTrueTypeFont instanceof PdfTrueTypeFont );
601
+ pdfTrueTypeFont .setSubset (true );
602
+ PdfPage page = pdfDoc .addNewPage ();
603
+ new PdfCanvas (page )
604
+ .saveState ()
605
+ .beginText ()
606
+ .moveText (36 , 700 )
607
+ .setFontAndSize (pdfTrueTypeFont , 72 )
608
+ .showText ("Hello world" )
609
+ .endText ()
610
+ .restoreState ()
611
+ .rectangle (100 , 500 , 100 , 100 ).fill ()
612
+ .release ();
613
+ page .flush ();
614
+
615
+ byte [] ttf = StreamUtil .inputStreamToArray (new FileInputStream (font ));
616
+ pdfTrueTypeFont = PdfFontFactory .createFont (ttf , false );
617
+ Assert .assertTrue ("PdfTrueTypeFont expected" , pdfTrueTypeFont instanceof PdfTrueTypeFont );
618
+ pdfTrueTypeFont .setSubset (true );
619
+ page = pdfDoc .addNewPage ();
620
+ new PdfCanvas (page )
621
+ .saveState ()
622
+ .beginText ()
623
+ .moveText (36 , 700 )
624
+ .setFontAndSize (pdfTrueTypeFont , 72 )
625
+ .showText ("Hello world" )
626
+ .endText ()
627
+ .restoreState ()
628
+ .rectangle (100 , 500 , 100 , 100 ).fill ()
629
+ .release ();
630
+
631
+ pdfDoc .close ();
632
+
633
+ Assert .assertNull (new CompareTool ().compareByContent (filename , cmpFilename , destinationFolder , "diff_" ));
634
+ }
635
+
587
636
@ Test
588
637
public void createDocumentWithTrueTypeOtfFont () throws IOException , InterruptedException {
589
638
String filename = destinationFolder + "DocumentWithTrueTypeOtfFont.pdf" ;
@@ -1310,7 +1359,59 @@ public void testWriteTTC() throws IOException, InterruptedException {
1310
1359
pdfDoc .close ();
1311
1360
1312
1361
Assert .assertNull (new CompareTool ().compareByContent (filename , cmpFilename , destinationFolder , "diff_" ));
1362
+ }
1313
1363
1364
+ @ Test
1365
+ public void testWriteTTCNotEmbedded () throws IOException , InterruptedException {
1366
+ String filename = destinationFolder + "testWriteTTCNotEmbedded.pdf" ;
1367
+ String cmpFilename = sourceFolder + "cmp_testWriteTTCNotEmbedded.pdf" ;
1368
+ String title = "Empty iText 7 Document" ;
1369
+
1370
+ PdfWriter writer = new PdfWriter (filename );
1371
+ writer .setCompressionLevel (CompressionConstants .NO_COMPRESSION );
1372
+ PdfDocument pdfDoc = new PdfDocument (writer );
1373
+ pdfDoc .getDocumentInfo ().setAuthor (author ).
1374
+ setCreator (creator ).
1375
+ setTitle (title );
1376
+
1377
+ String font = fontsFolder + "uming.ttc" ;
1378
+
1379
+ PdfFont pdfTrueTypeFont = PdfFontFactory .createTtcFont (font , 0 , PdfEncodings .WINANSI , false , false );
1380
+
1381
+ pdfTrueTypeFont .setSubset (true );
1382
+ PdfPage page = pdfDoc .addNewPage ();
1383
+ PdfCanvas canvas = new PdfCanvas (page );
1384
+ canvas
1385
+ .saveState ()
1386
+ .beginText ()
1387
+ .moveText (36 , 700 )
1388
+ .setFontAndSize (pdfTrueTypeFont , 72 )
1389
+ .showText ("Hello world" )
1390
+ .endText ()
1391
+ .restoreState ();
1392
+ canvas .rectangle (100 , 500 , 100 , 100 ).fill ();
1393
+ canvas .release ();
1394
+ page .flush ();
1395
+
1396
+ byte [] ttc = StreamUtil .inputStreamToArray (new FileInputStream (font ));
1397
+ pdfTrueTypeFont = PdfFontFactory .createTtcFont (ttc , 1 , PdfEncodings .WINANSI , false , false );
1398
+ pdfTrueTypeFont .setSubset (true );
1399
+ page = pdfDoc .addNewPage ();
1400
+ canvas = new PdfCanvas (page );
1401
+ canvas
1402
+ .saveState ()
1403
+ .beginText ()
1404
+ .moveText (36 , 700 )
1405
+ .setFontAndSize (pdfTrueTypeFont , 72 )
1406
+ .showText ("Hello world" )
1407
+ .endText ()
1408
+ .restoreState ();
1409
+ canvas .rectangle (100 , 500 , 100 , 100 ).fill ();
1410
+ canvas .release ();
1411
+
1412
+ pdfDoc .close ();
1413
+
1414
+ Assert .assertNull (new CompareTool ().compareByContent (filename , cmpFilename , destinationFolder , "diff_" ));
1314
1415
}
1315
1416
1316
1417
@ Test
0 commit comments