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:40 UTC
svn commit: r1878348 -
/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Author: tilman
Date: Mon Jun 1 09:39:40 2020
New Revision: 1878348
URL: http://svn.apache.org/viewvc?rev=1878348&view=rev
Log:
PDFBOX-4854: Add test that font can be deleted after usage
Modified:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1878348&r1=1878347&r2=1878348&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java Mon Jun 1 09:39:40 2020
@@ -21,8 +21,10 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.file.Files;
import org.apache.fontbox.ttf.TTFParser;
import org.apache.fontbox.ttf.TrueTypeFont;
import org.apache.pdfbox.Loader;
@@ -276,4 +278,50 @@ public class PDFontTest
}
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";
+
+ try (InputStream is = PDFont.class.getResourceAsStream(
+ "/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf"))
+ {
+ Files.copy(is, tempFontFile.toPath());
+ }
+
+ try (PDDocument doc = new PDDocument())
+ {
+ PDPage page = new PDPage();
+ doc.addPage(page);
+ try (PDPageContentStream cs = new PDPageContentStream(doc, page))
+ {
+ PDFont font = PDType0Font.load(doc, tempFontFile);
+ cs.beginText();
+ cs.setFont(font, 50);
+ cs.newLineAtOffset(50, 700);
+ cs.showText(text);
+ cs.endText();
+ }
+ doc.save(tempPdfFile);
+ }
+
+ Files.delete(tempFontFile.toPath());
+
+ try (PDDocument doc = Loader.loadPDF(tempPdfFile))
+ {
+ PDFTextStripper stripper = new PDFTextStripper();
+ String extractedText = stripper.getText(doc);
+ Assert.assertEquals(text, extractedText.trim());
+ }
+
+ Files.delete(tempPdfFile.toPath());
+ }
}