Skip to content

Instantly share code, notes, and snippets.

@Vad1mo
Created September 20, 2015 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Vad1mo/767f52a46e229dcaa5a6 to your computer and use it in GitHub Desktop.
Save Vad1mo/767f52a46e229dcaa5a6 to your computer and use it in GitHub Desktop.
PDFBox Test Case for error "Cannot read while there is an open stream writer"
package org.apache.pdfbox.regression;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.transform.TransformerException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
import org.apache.pdfbox.pdmodel.common.PDMetadata;
import org.apache.xmpbox.XMPMetadata;
import org.apache.xmpbox.schema.DublinCoreSchema;
import org.apache.xmpbox.xml.XmpSerializer;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class COSStreamEncodingDecoding {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@Before
public void setUp() throws Exception {
}
@Test
public void test() throws IOException, TransformerException {
InputStream pdfStream = getClass().getResourceAsStream("/acme_invoice-42.pdf");
PDDocument pdDocument = new PDDocument().load(pdfStream);
PDDocumentCatalog catalog = pdDocument.getDocumentCatalog();
PDMetadata metadata = new PDMetadata(pdDocument);
catalog.setMetadata(metadata);
XMPMetadata xmp = XMPMetadata.createXMPMetadata();
DublinCoreSchema dublicCore = new DublinCoreSchema(xmp);
dublicCore.setTitle("SimpleTitle");
xmp.addSchema(dublicCore);
new XmpSerializer().serialize(xmp, metadata.createOutputStream(), true);
pdDocument.save("result.pdf");
pdDocument.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment