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 2015/02/19 20:47:05 UTC
svn commit: r1660990 - in /pdfbox/trunk/pdfbox/src/test:
java/org/apache/pdfbox/pdmodel/
java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/
resources/org/apache/pdfbox/pdmodel/interactive/pagenavigation/
Author: tilman
Date: Thu Feb 19 19:47:04 2015
New Revision: 1660990
URL: http://svn.apache.org/r1660990
Log:
PDFBOX-2689: implement page transitions, by Andrea Vacondio
Added:
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTransitions.java (with props)
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionDirectionTest.java (with props)
pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionTest.java (with props)
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/interactive/pagenavigation/
pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/interactive/pagenavigation/transitions_test.pdf (with props)
Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTransitions.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTransitions.java?rev=1660990&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTransitions.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTransitions.java Thu Feb 19 19:47:04 2015
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.pdmodel;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.pdmodel.interactive.pagenavigation.PDTransition;
+import org.apache.pdfbox.pdmodel.interactive.pagenavigation.PDTransitionDirection;
+import org.apache.pdfbox.pdmodel.interactive.pagenavigation.PDTransitionStyle;
+import org.junit.Test;
+
+/**
+ * @author Andrea Vacondio
+ *
+ */
+public class TestPDPageTransitions
+{
+
+ @Test
+ public void readTransitions() throws IOException
+ {
+ PDDocument doc = PDDocument.load(this.getClass().getResourceAsStream(
+ "/org/apache/pdfbox/pdmodel/interactive/pagenavigation/transitions_test.pdf"));
+ PDTransition firstTransition = doc.getPages().get(0).getTransition();
+ assertEquals(PDTransitionStyle.Glitter.name(), firstTransition.getStyle());
+ assertEquals(2, firstTransition.getDuration(), 0);
+ assertEquals(PDTransitionDirection.TOP_LEFT_TO_BOTTOM_RIGHT.getCOSBase(),
+ firstTransition.getDirection());
+ doc.close();
+ }
+
+ @Test
+ public void saveAndReadTransitions() throws IOException
+ {
+ // save
+ PDDocument document = new PDDocument();
+ PDPage page = new PDPage();
+ document.addPage(page);
+ PDTransition transition = new PDTransition(PDTransitionStyle.Fly);
+ transition.setDirection(PDTransitionDirection.NONE);
+ transition.setFlyScale(0.5f);
+ page.setTransition(transition, 2);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ document.save(baos);
+ document.close();
+
+ // read
+ byte[] pdf = baos.toByteArray();
+ PDDocument doc = PDDocument.load(new ByteArrayInputStream(pdf));
+ page = doc.getPages().get(0);
+ PDTransition loadedTransition = page.getTransition();
+ assertEquals(PDTransitionStyle.Fly.name(), loadedTransition.getStyle());
+ assertEquals(2, page.getCOSObject().getFloat(COSName.DUR), 0);
+ assertEquals(PDTransitionDirection.NONE.getCOSBase(), loadedTransition.getDirection());
+ doc.close();
+ }
+}
Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/TestPDPageTransitions.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionDirectionTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionDirectionTest.java?rev=1660990&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionDirectionTest.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionDirectionTest.java Thu Feb 19 19:47:04 2015
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.pdmodel.interactive.pagenavigation;
+
+import static org.junit.Assert.assertEquals;
+
+import org.apache.pdfbox.cos.COSInteger;
+import org.apache.pdfbox.cos.COSName;
+import org.junit.Test;
+
+/**
+ * @author Andrea Vacondio
+ *
+ */
+public class PDTransitionDirectionTest
+{
+
+ @Test
+ public void getCOSBase()
+ {
+ assertEquals(COSName.NONE, PDTransitionDirection.NONE.getCOSBase());
+ assertEquals(0, ((COSInteger) PDTransitionDirection.LEFT_TO_RIGHT.getCOSBase()).intValue());
+ assertEquals(90, ((COSInteger) PDTransitionDirection.BOTTOM_TO_TOP.getCOSBase()).intValue());
+ assertEquals(180,
+ ((COSInteger) PDTransitionDirection.RIGHT_TO_LEFT.getCOSBase()).intValue());
+ assertEquals(270,
+ ((COSInteger) PDTransitionDirection.TOP_TO_BOTTOM.getCOSBase()).intValue());
+ assertEquals(315,
+ ((COSInteger) PDTransitionDirection.TOP_LEFT_TO_BOTTOM_RIGHT.getCOSBase())
+ .intValue());
+ }
+
+}
Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionDirectionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionTest.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionTest.java?rev=1660990&view=auto
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionTest.java (added)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionTest.java Thu Feb 19 19:47:04 2015
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.pdmodel.interactive.pagenavigation;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.pdfbox.cos.COSDictionary;
+import org.apache.pdfbox.cos.COSInteger;
+import org.apache.pdfbox.cos.COSName;
+import org.junit.Test;
+
+/**
+ * @author Andrea Vacondio
+ *
+ */
+public class PDTransitionTest
+{
+
+ @Test
+ public void defaultStyle()
+ {
+ PDTransition transition = new PDTransition();
+ assertEquals(COSName.TRANS, transition.getCOSDictionary().getCOSName(COSName.TYPE));
+ assertEquals(PDTransitionStyle.R.name(), transition.getStyle());
+ }
+
+ @Test
+ public void getStyle()
+ {
+ PDTransition transition = new PDTransition(PDTransitionStyle.Fade);
+ assertEquals(COSName.TRANS, transition.getCOSDictionary().getCOSName(COSName.TYPE));
+ assertEquals(PDTransitionStyle.Fade.name(), transition.getStyle());
+ }
+
+ @Test
+ public void defaultValues()
+ {
+ PDTransition transition = new PDTransition(new COSDictionary());
+ assertEquals(PDTransitionStyle.R.name(), transition.getStyle());
+ assertEquals(PDTransitionDimension.H.name(), transition.getDimension());
+ assertEquals(PDTransitionMotion.I.name(), transition.getMotion());
+ assertEquals(COSInteger.ZERO, transition.getDirection());
+ assertEquals(1, transition.getDuration(), 0);
+ assertEquals(1, transition.getFlyScale(), 0);
+ assertFalse(transition.isFlyAreaOpaque());
+ }
+
+ @Test
+ public void dimension()
+ {
+ PDTransition transition = new PDTransition();
+ transition.setDimension(PDTransitionDimension.H);
+ assertEquals(PDTransitionDimension.H.name(), transition.getDimension());
+ }
+
+ @Test
+ public void directionNone()
+ {
+ PDTransition transition = new PDTransition();
+ transition.setDirection(PDTransitionDirection.NONE);
+ assertThat(transition.getDirection(), instanceOf(COSName.class));
+ assertEquals(COSName.NONE, transition.getDirection());
+ }
+
+ @Test
+ public void directionNumber()
+ {
+ PDTransition transition = new PDTransition();
+ transition .setDirection(PDTransitionDirection.LEFT_TO_RIGHT);
+ assertThat(transition .getDirection(), instanceOf(COSInteger.class));
+ assertEquals(COSInteger.ZERO, transition .getDirection());
+ }
+
+ @Test
+ public void motion()
+ {
+ PDTransition transition = new PDTransition();
+ transition.setMotion(PDTransitionMotion.O);
+ assertEquals(PDTransitionMotion.O.name(), transition.getMotion());
+ }
+
+ @Test
+ public void duration()
+ {
+ PDTransition transition = new PDTransition();
+ transition.setDuration(4);
+ assertEquals(4, transition.getDuration(), 0);
+ }
+
+ @Test
+ public void flyScale()
+ {
+ PDTransition transition = new PDTransition();
+ transition.setFlyScale(4);
+ assertEquals(4, transition.getFlyScale(), 0);
+ }
+
+ @Test
+ public void flyArea()
+ {
+ PDTransition transition = new PDTransition();
+ transition.setFlyAreaOpaque(true);
+ assertTrue(transition.isFlyAreaOpaque());
+ }
+}
Propchange: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/interactive/pagenavigation/PDTransitionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/interactive/pagenavigation/transitions_test.pdf
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/interactive/pagenavigation/transitions_test.pdf?rev=1660990&view=auto
==============================================================================
Binary file - no diff available.
Propchange: pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/pdmodel/interactive/pagenavigation/transitions_test.pdf
------------------------------------------------------------------------------
svn:mime-type = application/pdf