TestOptionalContentGroups.java (pdfbox-2.0.23-src) | : | TestOptionalContentGroups.java (pdfbox-2.0.24-src) | ||
---|---|---|---|---|
skipping to change at line 27 | skipping to change at line 27 | |||
package org.apache.pdfbox.pdmodel.graphics.optionalcontent; | package org.apache.pdfbox.pdmodel.graphics.optionalcontent; | |||
import java.awt.Color; | import java.awt.Color; | |||
import java.awt.image.BufferedImage; | import java.awt.image.BufferedImage; | |||
import java.awt.image.DataBufferInt; | import java.awt.image.DataBufferInt; | |||
import java.io.File; | import java.io.File; | |||
import java.io.IOException; | import java.io.IOException; | |||
import java.util.Arrays; | import java.util.Arrays; | |||
import java.util.Collection; | import java.util.Collection; | |||
import java.util.HashSet; | import java.util.HashSet; | |||
import java.util.List; | ||||
import java.util.Set; | import java.util.Set; | |||
import javax.imageio.ImageIO; | import javax.imageio.ImageIO; | |||
import junit.framework.TestCase; | import junit.framework.TestCase; | |||
import static junit.framework.TestCase.assertFalse; | import static junit.framework.TestCase.assertFalse; | |||
import static junit.framework.TestCase.assertTrue; | import static junit.framework.TestCase.assertTrue; | |||
import org.apache.pdfbox.cos.COSName; | import org.apache.pdfbox.cos.COSName; | |||
import org.apache.pdfbox.pdmodel.PDDocument; | import org.apache.pdfbox.pdmodel.PDDocument; | |||
import org.apache.pdfbox.pdmodel.PDDocumentCatalog; | import org.apache.pdfbox.pdmodel.PDDocumentCatalog; | |||
import org.apache.pdfbox.pdmodel.PDPage; | import org.apache.pdfbox.pdmodel.PDPage; | |||
import org.apache.pdfbox.pdmodel.PDResources; | import org.apache.pdfbox.pdmodel.PDResources; | |||
import org.apache.pdfbox.pdmodel.PDPageContentStream; | import org.apache.pdfbox.pdmodel.PDPageContentStream; | |||
import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode; | import org.apache.pdfbox.pdmodel.PDPageContentStream.AppendMode; | |||
import org.apache.pdfbox.pdmodel.PageMode; | import org.apache.pdfbox.pdmodel.PageMode; | |||
import org.apache.pdfbox.pdmodel.documentinterchange.markedcontent.PDMarkedConte nt; | ||||
import org.apache.pdfbox.pdmodel.font.PDFont; | import org.apache.pdfbox.pdmodel.font.PDFont; | |||
import org.apache.pdfbox.pdmodel.font.PDType1Font; | import org.apache.pdfbox.pdmodel.font.PDType1Font; | |||
import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentPrope rties.BaseState; | import org.apache.pdfbox.pdmodel.graphics.optionalcontent.PDOptionalContentPrope rties.BaseState; | |||
import org.apache.pdfbox.rendering.PDFRenderer; | import org.apache.pdfbox.rendering.PDFRenderer; | |||
import org.apache.pdfbox.text.PDFMarkedContentExtractor; | ||||
import org.apache.pdfbox.text.TextPosition; | ||||
import org.junit.Assert; | import org.junit.Assert; | |||
/** | /** | |||
* Tests optional content group functionality (also called layers). | * Tests optional content group functionality (also called layers). | |||
*/ | */ | |||
public class TestOptionalContentGroups extends TestCase | public class TestOptionalContentGroups extends TestCase | |||
{ | { | |||
private final File testResultsDir = new File("target/test-output"); | private final File testResultsDir = new File("target/test-output"); | |||
@Override | @Override | |||
skipping to change at line 210 | skipping to change at line 214 | |||
Collection<PDOptionalContentGroup> coll = ocgs.getOptionalContentGro ups(); | Collection<PDOptionalContentGroup> coll = ocgs.getOptionalContentGro ups(); | |||
assertEquals(3, coll.size()); | assertEquals(3, coll.size()); | |||
Set<String> nameSet = new HashSet<String>(); | Set<String> nameSet = new HashSet<String>(); | |||
for (PDOptionalContentGroup ocg2 : coll) | for (PDOptionalContentGroup ocg2 : coll) | |||
{ | { | |||
nameSet.add(ocg2.getName()); | nameSet.add(ocg2.getName()); | |||
} | } | |||
assertTrue(nameSet.contains("background")); | assertTrue(nameSet.contains("background")); | |||
assertTrue(nameSet.contains("enabled")); | assertTrue(nameSet.contains("enabled")); | |||
assertTrue(nameSet.contains("disabled")); | assertTrue(nameSet.contains("disabled")); | |||
PDFMarkedContentExtractor extractor = new PDFMarkedContentExtractor( | ||||
); | ||||
extractor.processPage(page); | ||||
List<PDMarkedContent> markedContents = extractor.getMarkedContents() | ||||
; | ||||
assertEquals("oc1", markedContents.get(0).getTag()); | ||||
assertEquals("PDF 1.5: Optional Content Groups" | ||||
+ "You should see a green textline, but no red text line.", | ||||
textPositionListToString(markedContents.get(0).getContents() | ||||
)); | ||||
assertEquals("oc2", markedContents.get(1).getTag()); | ||||
assertEquals("This is from an enabled layer. If you see this, that's | ||||
good.", | ||||
textPositionListToString(markedContents.get(1).getContents() | ||||
)); | ||||
assertEquals("oc3", markedContents.get(2).getTag()); | ||||
assertEquals("This is from a disabled layer. If you see this, that's | ||||
NOT good!", | ||||
textPositionListToString(markedContents.get(2).getContents() | ||||
)); | ||||
} | } | |||
finally | finally | |||
{ | { | |||
doc.close(); | doc.close(); | |||
} | } | |||
} | } | |||
/** | ||||
* Convert a list of TextPosition objects to a string. | ||||
* | ||||
* @param contents list of TextPosition objects. | ||||
* @return | ||||
*/ | ||||
private String textPositionListToString(List<Object> contents) | ||||
{ | ||||
StringBuilder sb = new StringBuilder(); | ||||
for (Object o : contents) | ||||
{ | ||||
TextPosition tp = (TextPosition) o; | ||||
sb.append(tp.getUnicode()); | ||||
} | ||||
return sb.toString(); | ||||
} | ||||
public void testOCGsWithSameNameCanHaveDifferentVisibility() throws Exceptio n | public void testOCGsWithSameNameCanHaveDifferentVisibility() throws Exceptio n | |||
{ | { | |||
PDDocument doc = new PDDocument(); | PDDocument doc = new PDDocument(); | |||
try | try | |||
{ | { | |||
//Create new page | //Create new page | |||
PDPage page = new PDPage(); | PDPage page = new PDPage(); | |||
doc.addPage(page); | doc.addPage(page); | |||
PDResources resources = page.getResources(); | PDResources resources = page.getResources(); | |||
if( resources == null ) | if( resources == null ) | |||
End of changes. 5 change blocks. | ||||
0 lines changed or deleted | 42 lines changed or added |