pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rajeev Menon <rajeevrmen...@gmail.com>
Subject Re: Force download of FDF file in Internet Explorer
Date Tue, 28 Oct 2014 17:56:48 GMT
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 <rajeevrmenong@gmail.com>
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 <sahyoun@fileaffairs.de>
> 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 <rajeevrmenong@gmail.com>:
>>
>> > 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.
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message