You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2020/06/01 09:39:49 UTC

svn commit: r1878350 - /pdfbox/branches/issue45/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

Author: tilman
Date: Mon Jun  1 09:39:48 2020
New Revision: 1878350

URL: http://svn.apache.org/viewvc?rev=1878350&view=rev
Log:
PDFBOX-4854: Add test that font can be deleted after usage

Modified:
    pdfbox/branches/issue45/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java

Modified: pdfbox/branches/issue45/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1878350&r1=1878349&r2=1878350&view=diff
==============================================================================
--- pdfbox/branches/issue45/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java (original)
+++ pdfbox/branches/issue45/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java Mon Jun  1 09:39:48 2020
@@ -20,12 +20,16 @@ package org.apache.pdfbox.pdmodel.font;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.URISyntaxException;
 import java.net.URL;
 import org.apache.fontbox.ttf.TTFParser;
 import org.apache.fontbox.ttf.TrueTypeFont;
 import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.io.IOUtils;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
 import org.apache.pdfbox.pdmodel.PDPageContentStream;
@@ -289,4 +293,49 @@ public class PDFontTest
         doc.close();
         return baos.toByteArray();
     }
+
+    /**
+     * Check that font can be deleted after usage.
+     * 
+     * @throws IOException 
+     */
+    @Test
+    public void testDeleteFont() throws IOException
+    {
+        File tempFontFile = new File(OUT_DIR, "LiberationSans-Regular.ttf");
+        File tempPdfFile = new File(OUT_DIR, "testDeleteFont.pdf");
+        String text = "Test PDFBOX-4823";
+
+        InputStream is = PDFont.class.getResourceAsStream(
+                "/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf");
+
+        OutputStream os = new FileOutputStream(tempFontFile);
+        IOUtils.copy(is, os);
+        is.close();
+        os.close();
+
+        PDDocument doc = new PDDocument();
+        PDPage page = new PDPage();
+        doc.addPage(page);
+        PDPageContentStream cs = new PDPageContentStream(doc, page);
+        PDFont font1 = PDType0Font.load(doc, tempFontFile);
+        cs.beginText();
+        cs.setFont(font1, 50);
+        cs.newLineAtOffset(50, 700);
+        cs.showText(text);
+        cs.endText();
+        cs.close();
+        doc.save(tempPdfFile);
+        doc.close();
+
+        Assert.assertTrue(tempFontFile.delete());
+
+        doc = PDDocument.load(tempPdfFile);
+        PDFTextStripper stripper = new PDFTextStripper();
+        String extractedText = stripper.getText(doc);
+        Assert.assertEquals(text, extractedText.trim());
+        doc.close();
+
+        Assert.assertTrue(tempPdfFile.delete());
+    }
 }