junioryy Posted April 26, 2007 Share Posted April 26, 2007 Hi all experts, is anybody know how to convert the jasper report from byte into pdf format? I manage to generate the pdf report and save in server.. however, when pass to frontend / network rite, it automatically convert the pdf to byte. thus, in order the swing client can download the report in pdf format and save the report into local, i need to convert back the byte to pdf.. currently, the technologies dat im using are EJB3, Swing and jBoss(App Server). Any help would be highly appreciated.Thanks in advance.. Link to comment Share on other sites More sharing options...
Teodor Danciu Posted April 26, 2007 Share Posted April 26, 2007 Hi, PDF is a binary format. Those bytes you get on the client side are PDF. I don't understand what conversion do you want to do on them.If you would save those bytes in a file with the *.pdf extension, you could open it with Acrobat. I hope this hepls.Teodor Link to comment Share on other sites More sharing options...
junioryy Posted April 26, 2007 Author Share Posted April 26, 2007 hi teodord, really thank for your reply again. Yes i save those file with the *.pdf extention. Below is my code: public void generatePdfReport(String jasperFileName, String pdfFileName, Map parameters){ Connection conn = null; try { DataSource dataSource = ServiceLocator.getInstance().getDataSource("java:DBSERVER"); conn = dataSource.getConnection(); File reportFile = new File(jasperFileName); byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(), parameters, conn); ByteBuffer buf = ByteBuffer.wrap(bytes); File file = new File(pdfFileName); boolean append = false; FileChannel wChannel = new FileOutputStream(file, append).getChannel(); wChannel.write(buf); wChannel.close(); } So if my client want to retrive the pdf file in swing right, is it i just need to return the byte[] and my client could open it with acrobat already? or i still need to call the exportReportToPdf(JasperPrint arg 0) method? Thanks in advance... Link to comment Share on other sites More sharing options...
Teodor Danciu Posted April 26, 2007 Share Posted April 26, 2007 Hi, As I said, there are several ways to do it and it only depends on your client/server type of communication.You did not give us any details about how your Swing client communicates with the server. Through HTTP? RMI? Depending on how you want it to work, you could either send PDF byte content to the client or you could send the JasperPrint object. If you send the JasperPrint, the client itself could perform the PDF export locally, using JR again. Or you could even display the report in Swing using the JR viewer, without the need to export it to PDF and open Acrobat. There are several solutions and it all depends on what you want to do and what architecture you have. You ask us about how to work with binary content and stuff, but you would rather have to clarify how your Swing client talks to your server and what kind of protocol they use and what data they exchange. I hope this helps.Teodor Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now