Hi, I the same program throws error while at line page.getMediaBox().getHeight() for certain pdfs and also for some images the locations printed are incorrect any clue why is it so
Thanks, Sanyam -----Original Message----- From: Maruan Sahyoun [mailto:[email protected]] Sent: Wednesday, October 29, 2014 1:00 AM To: [email protected] Subject: Re: Force download of FDF file in Internet Explorer unfortunately there are currently several FDF related issues in PDFBox - maybe you hit one of these. Do you have to load an FDF or could you just do PDField field = acroForm.getField("FieldName"); field.setValue("SampleValue"); BR Maruan Am 28.10.2014 um 18:56 schrieb Rajeev Menon <[email protected]>: > I have no clue how to import FDF document into PDF using PDFBox. Here > is what I tried, it just opens the pdf form with no data filled in. > > String targetDirectory=System.getProperty("java.io.tmpdir"); > File fout = new File(targetDirectory+"/newfile.fdf"); > FileOutputStream fos = new FileOutputStream(fout); > > BufferedWriter bw = new BufferedWriter(new > OutputStreamWriter(fos)); > > bw.write("%FDF-1.2"); > bw.write("1 0 obj <<"); > bw.write("/FDF <<"); > bw.write("/F(https://servername/abc.pdf)"); > > bw.write("/Fields["); > bw.write("<</T(FieldName)/V (Sample Value)>>"); > bw.write("]"); > bw.write(">>/Type/Catalog"); > bw.write(">>"); > bw.write("endobj"); > bw.write("trailer"); > bw.write("<</Root 1 0 R>>"); > bw.write("%%EOF"); > bw.close(); > > FDFDocument fdfdoc=new FDFDocument(); > fdfdoc.load(new File(targetDirectory+"/newfile.fdf")); > > System.out.println("a:"+fdfdoc.getDocument().getCOSObject().toString() > ); > > pdfDoc = PDDocument.load("https://servername/abcTemp.pdf"); > PDDocumentCatalog docCatalog = pdfDoc.getDocumentCatalog(); > PDAcroForm acroForm = docCatalog.getAcroForm(); > //acroForm.setXFA(null); > acroForm.importFDF(fdfdoc); > > > FacesContext facesContext = FacesContext.getCurrentInstance(); > HttpServletResponse response = JSFUtil.getServletRespone(); > response.setContentType("application/pdf"); > response.addHeader("Content-Type", > "application/force-download"); > response.addHeader("Content-Disposition", "attachment; > filename=\"abc.pdf\""); > ServletOutputStream outStream = response.getOutputStream(); > pdfDoc.save(outStream); > > facesContext.responseComplete(); > > > > On Tue, Oct 28, 2014 at 12:37 PM, Rajeev Menon > <[email protected]> > wrote: > >> *How do I create the FDFDocument to import into the acroForm?* >> >> PDAcroForm acroForm = docCatalog.getAcroForm(); >> acroForm.setXFA(null); >> acroForm.importFDF(FDFDocument arg0); >> >> *The following is how I send the FDF content to browser currently.* >> >> >> output.println("%FDF-1.2"); >> output.println("1 0 obj <<"); >> output.println("/FDF <<"); >> output.println("/F(https://servername/sample.pdf)"); >> >> output.println("/Fields["); >> output.println("<</T( >> FieldName1)/V (Hello World)>>"); >> output.println("]"); >> output.println(">>/Type/Catalog"); >> output.println(">>"); >> output.println("endobj"); >> output.println("trailer"); >> output.println("<</Root 1 0 R>>"); >> output.println("%%EOF"); >> >> output.flush(); >> output.close(); >> >> >> On Tue, Oct 28, 2014 at 11:36 AM, Maruan Sahyoun >> <[email protected]> >> wrote: >> >>> Hi Rajeev >>> >>> you should set the mime type to application/vnd.fdf. >>> >>> If you set the the NeedAppearances flag in AcroForm using PDFBox >>> then Reader will generate the appearances for you when the document is >>> opened. >>> Might be an alternative to using FDF. >>> >>> BR >>> >>> Maruan >>> >>> Am 28.10.2014 um 15:33 schrieb Rajeev Menon <[email protected]>: >>> >>>> Hi, >>>> >>>> I am populating a PDF file by creating a FDF file and sending it to >>>> the browser. The FDF file has the url of the PDF that it should >>>> open to fill the data. The file opens fine inside the browser >>>> (inline), but when I >>> want >>>> to force it to open with acrobat reader, it just shows a white page >>>> in >>> the >>>> reader. Here is the relevant code. >>>> >>>> response.setContentType("application/pdf"); >>>> response.setHeader("Content-disposition","attachment; >>>> filename=\"somefile.fdf\""); >>>> >>>> output.println("%FDF-1.2"); >>>> output.println("1 0 obj <<"); >>>> output.println("/FDF <<"); >>>> output.println("/F(https://servername/sample.pdf)"); >>>> >>>> output.println("/Fields["); >>>> output.println("<</T(FieldName1)/V (Hello World)>>"); >>>> output.println("]"); >>>> output.println(">>/Type/Catalog"); >>>> output.println(">>"); >>>> output.println("endobj"); >>>> output.println("trailer"); >>>> output.println("<</Root 1 0 R>>"); >>>> output.println("%%EOF"); >>>> >>>> output.flush(); >>>> output.close(); >>>> >>>> Please let me know if I am missing something here. I implemented >>>> the PDF form filling using both the PDFBox and the FDF approaches, >>>> but I am experiencing some issues with the PDFBox. >>>> >>>> Thanks, >>>> Rajeev. >>> >>> >> This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement, you may review at http://www.amdocs.com/email_disclaimer.asp

