Hi

I am using PDFBox 2.0.3

I need to return the byte array representation of a PDDocument without saving 
it to disk, but I always get a zero length byte array.

My method loads a file and creates a PDDocument from it. It the modifies this 
document by adding in extra pages and finally I want to return the byte array 
of the modified document.

If I add report.save(new Fille("Some Path")) then the modified document is 
correctly saved (but I don't want to do this) - how do I get a valid byte array 
returned?

Thanks for your help
Martin

Here is my code

URI origReport = 
ClassLoader.getSystemResource("pdf/FullInvestmentReport.pdf").toURI();

byte[] origReportAsBytes = Files.readAllBytes(Paths.get(origReport));

PDDocument report = PDDocument.load(origReportAsBytes);



URI location1 = ClassLoader.getSystemResource("pdf/AddFile1.pdf").toURI();

byte[] data1 = Files.readAllBytes(Paths.get(location1));

PDDocument docToAdd = PDDocument.load(data1);



int currentPage = 3;

if (docToAdd != null) {
    for (int i = 0; i < docToAdd.getNumberOfPages(); i++) {
        originalReport.getPages().insertAfter(docToAdd.getPage(i), 
report.getPage(newCurrentPage++));
    }
}



byte[] aggregatedReport = new PDStream(report).toByteArray();



return aggregatedReport;



Martin Lynch | Senior Software Engineer | Kainos | DD: +44 (0)28 9057 1351 | 
Fax: +44 (0)28 9057 1101 | [email protected]<mailto:[email protected]>


[Sunday 
Times]<https://www.kainos.com/kainos-cements-position-sunday-times-top-100-best-companies-work/>

Follow the Kainos buzz on: Twitter<https://twitter.com/kainossoftware> 
Facebook<https://www.facebook.com/KainosSoftware> 
Linkedin<http://www.linkedin.com/company/kainos> 
Youtube<http://www.youtube.com/user/KainosSoftware> Kainos cements position 
sunday times top 100 best companies 
work<https://www.kainos.com/kainos-cements-position-sunday-times-top-100-best-companies-work/>

This e-mail is for the intended addressee only and is strictly confidential; if 
you receive it in error please destroy the message and all copies. Any opinion 
or information in this email or its attachments that does not relate to Kainos 
business is personal to the sender and is not endorsed by Kainos. This email 
has been scanned for viruses but is not guaranteed to be virus free. "Kainos" 
is the trading name of the Kainos Group of companies; click the link for 
further information https://www.kainos.com/corporate-information/. Further 
terms and conditions may be found on our website www.kainos.com

Reply via email to