You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2013/05/04 18:44:31 UTC
svn commit: r1479136 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: ./ cos/ pdfparser/
pdmodel/ pdmodel/common/ pdmodel/interactive/form/ util/
Author: lehmi
Date: Sat May 4 16:44:30 2013
New Revision: 1479136
URL: http://svn.apache.org/r1479136
Log:
PDFBOX-1568: removed most of the direct accesses to the scratch file of a COSDocument
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Overlay.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSStreamArray.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAppearance.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/LayerUtility.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Overlay.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Overlay.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Overlay.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/Overlay.java Sat May 4 16:44:30 2013
@@ -224,12 +224,12 @@ public class Overlay
collectLayoutPages( overlayCatalog.getAllPages() );
COSDictionary saveGraphicsStateDic = new COSDictionary();
- saveGraphicsStateStream = new COSStream( saveGraphicsStateDic, pdfDocument.getDocument().getScratchFile() );
+ saveGraphicsStateStream = pdfDocument.getDocument().createCOSStream(saveGraphicsStateDic);
OutputStream saveStream = saveGraphicsStateStream.createUnfilteredStream();
saveStream.write( " q\n".getBytes("ISO-8859-1") );
saveStream.flush();
- restoreGraphicsStateStream = new COSStream( saveGraphicsStateDic, pdfDocument.getDocument().getScratchFile() );
+ restoreGraphicsStateStream = pdfDocument.getDocument().createCOSStream(saveGraphicsStateDic);
OutputStream restoreStream = restoreGraphicsStateStream.createUnfilteredStream();
restoreStream.write( " Q\n".getBytes("ISO-8859-1") );
restoreStream.flush();
@@ -353,7 +353,7 @@ public class Overlay
COSDictionary streamDict = new COSDictionary();
streamDict.setInt(COSName.LENGTH, baos.size());
- COSStream output = new COSStream(streamDict, pdfDocument.getDocument().getScratchFile());
+ COSStream output = pdfDocument.getDocument().createCOSStream(streamDict);
output.setFilters(stream.getFilters());
OutputStream os = output.createUnfilteredStream();
baos.writeTo(os);
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSDocument.java Sat May 4 16:44:30 2013
@@ -71,11 +71,6 @@ public class COSDocument extends COSBase
private COSDictionary trailer;
/**
- * Document signature dictionary.
- */
- private COSDictionary signDictionary = null;
-
- /**
* Signature interface.
*/
private SignatureInterface signatureInterface;
@@ -178,10 +173,43 @@ public class COSDocument extends COSBase
* This will get the scratch file for this document.
*
* @return The scratch file.
+ *
+ *
*/
public RandomAccess getScratchFile()
{
- return scratchFile;
+ // TODO the direct access to the scratch file should be removed.
+ if (!closed)
+ {
+ return scratchFile;
+ }
+ else
+ {
+ LOG.error("Can't access the scratch file as it is already closed!");
+ return null;
+ }
+ }
+
+ /**
+ * Create a new COSStream using the underlying scratch file.
+ *
+ * @return the new COSStream
+ */
+ public COSStream createCOSStream()
+ {
+ return new COSStream( getScratchFile() );
+ }
+
+ /**
+ * Create a new COSStream using the underlying scratch file.
+ *
+ * @param dictionary the corresponding dictionary
+ *
+ * @return the new COSStream
+ */
+ public COSStream createCOSStream(COSDictionary dictionary)
+ {
+ return new COSStream( dictionary, getScratchFile() );
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/cos/COSName.java Sat May 4 16:44:30 2013
@@ -605,6 +605,10 @@ public final class COSName extends COSBa
/**
* A common COSName value.
*/
+ public static final COSName FIRST = new COSName( "First" );
+ /**
+ * A common COSName value.
+ */
public static final COSName FIRST_CHAR = new COSName( "FirstChar" );
/**
* A common COSName value.
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java Sat May 4 16:44:30 2013
@@ -688,6 +688,7 @@ public class NonSequentialPDFParser exte
try
{
document.close();
+ document = null;
}
catch (IOException ioe)
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/PDFParser.java Sat May 4 16:44:30 2013
@@ -234,6 +234,7 @@ public class PDFParser extends BaseParse
if( document != null )
{
document.close();
+ document = null;
}
if( t instanceof IOException )
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/PDDocument.java Sat May 4 16:44:30 2013
@@ -420,7 +420,7 @@ public class PDDocument implements Pagea
acroFormDict.setItem(COSName.DR, null);
// Set empty Appearance-Dictionary
PDAppearanceDictionary ap = new PDAppearanceDictionary();
- COSStream apsStream = new COSStream(getDocument().getScratchFile());
+ COSStream apsStream = getDocument().createCOSStream();
apsStream.createUnfilteredStream();
PDAppearanceStream aps = new PDAppearanceStream(apsStream);
COSDictionary cosObject = (COSDictionary)aps.getCOSObject();
@@ -644,7 +644,7 @@ public class PDDocument implements Pagea
PDStream src = page.getContents();
if(src != null)
{
- PDStream dest = new PDStream( new COSStream( src.getStream(), document.getScratchFile() ) );
+ PDStream dest = new PDStream( document.createCOSStream(src.getStream()));
importedPage.setContents( dest );
os = dest.createOutputStream();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSStreamArray.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSStreamArray.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSStreamArray.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/COSStreamArray.java Sat May 4 16:44:30 2013
@@ -94,6 +94,7 @@ public class COSStreamArray extends COSS
* This will get the scratch file associated with this stream.
*
* @return The scratch file where this stream is being stored.
+ *
*/
public RandomAccess getScratchFile()
{
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDObjectStream.java Sat May 4 16:44:30 2013
@@ -51,9 +51,9 @@ public class PDObjectStream extends PDSt
*/
public static PDObjectStream createStream( PDDocument document )
{
- COSStream cosStream = new COSStream( document.getDocument().getScratchFile() );
+ COSStream cosStream = document.getDocument().createCOSStream();
PDObjectStream strm = new PDObjectStream( cosStream );
- strm.getStream().setName( "Type", "ObjStm" );
+ strm.getStream().setName( COSName.TYPE, "ObjStm" );
return strm;
}
@@ -64,7 +64,7 @@ public class PDObjectStream extends PDSt
*/
public String getType()
{
- return getStream().getNameAsString( "Type" );
+ return getStream().getNameAsString( COSName.TYPE );
}
/**
@@ -74,7 +74,7 @@ public class PDObjectStream extends PDSt
*/
public int getNumberOfObjects()
{
- return getStream().getInt( "N", 0 );
+ return getStream().getInt( COSName.N, 0 );
}
/**
@@ -84,7 +84,7 @@ public class PDObjectStream extends PDSt
*/
public void setNumberOfObjects( int n )
{
- getStream().setInt( "N", n );
+ getStream().setInt( COSName.N, n );
}
/**
@@ -94,7 +94,7 @@ public class PDObjectStream extends PDSt
*/
public int getFirstByteOffset()
{
- return getStream().getInt( "First", 0 );
+ return getStream().getInt( COSName.FIRST, 0 );
}
/**
@@ -104,7 +104,7 @@ public class PDObjectStream extends PDSt
*/
public void setFirstByteOffset( int n )
{
- getStream().setInt( "First", n );
+ getStream().setInt( COSName.FIRST, n );
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/common/PDStream.java Sat May 4 16:44:30 2013
@@ -67,7 +67,7 @@ public class PDStream implements COSObje
*/
public PDStream(PDDocument document)
{
- stream = new COSStream(document.getDocument().getScratchFile());
+ stream = document.getDocument().createCOSStream();
}
/**
@@ -116,7 +116,7 @@ public class PDStream implements COSObje
OutputStream output = null;
try
{
- stream = new COSStream(doc.getDocument().getScratchFile());
+ stream = doc.getDocument().createCOSStream();
if (filtered)
{
output = stream.createFilteredStream();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAppearance.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAppearance.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAppearance.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/form/PDAppearance.java Sat May 4 16:44:30 2013
@@ -257,7 +257,7 @@ public class PDAppearance
PDAppearanceStream appearanceStream = (PDAppearanceStream)normalAppearance.get( "default" );
if( appearanceStream == null )
{
- COSStream cosStream = new COSStream( acroForm.getDocument().getDocument().getScratchFile() );
+ COSStream cosStream = acroForm.getDocument().getDocument().createCOSStream();
appearanceStream = new PDAppearanceStream( cosStream );
appearanceStream.setBoundingBox( widget.getRectangle().createRetranslatedRectangle() );
appearance.setNormalAppearance( appearanceStream );
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/LayerUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/LayerUtility.java?rev=1479136&r1=1479135&r2=1479136&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/LayerUtility.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/LayerUtility.java Sat May 4 16:44:30 2013
@@ -83,14 +83,12 @@ public class LayerUtility
public void wrapInSaveRestore(PDPage page) throws IOException
{
COSDictionary saveGraphicsStateDic = new COSDictionary();
- COSStream saveGraphicsStateStream = new COSStream(saveGraphicsStateDic,
- getDocument().getDocument().getScratchFile());
+ COSStream saveGraphicsStateStream = getDocument().getDocument().createCOSStream(saveGraphicsStateDic);
OutputStream saveStream = saveGraphicsStateStream.createUnfilteredStream();
saveStream.write("q\n".getBytes("ISO-8859-1"));
saveStream.flush();
- COSStream restoreGraphicsStateStream = new COSStream(saveGraphicsStateDic,
- getDocument().getDocument().getScratchFile());
+ COSStream restoreGraphicsStateStream = getDocument().getDocument().createCOSStream(saveGraphicsStateDic);
OutputStream restoreStream = restoreGraphicsStateStream.createUnfilteredStream();
restoreStream.write("Q\n".getBytes("ISO-8859-1"));
restoreStream.flush();