use of org.apache.pdfbox.io.RandomAccessInputStream in project pdfbox by apache.
the class COSOutputStream method close.
@Override
public void close() throws IOException {
try {
if (buffer != null) {
try {
// apply filters in reverse order
for (int i = filters.size() - 1; i >= 0; i--) {
try (InputStream unfilteredIn = new RandomAccessInputStream(buffer)) {
if (i == 0) {
/*
* The last filter to run can encode directly to the enclosed output
* stream.
*/
filters.get(i).encode(unfilteredIn, out, parameters, i);
} else {
RandomAccess filteredBuffer = scratchFile.createBuffer();
try (OutputStream filteredOut = new RandomAccessOutputStream(filteredBuffer)) {
filters.get(i).encode(unfilteredIn, filteredOut, parameters, i);
} finally {
buffer.close();
buffer = filteredBuffer;
}
}
}
}
} finally {
buffer.close();
buffer = null;
}
}
} finally {
super.close();
}
}
Aggregations