Hello,

Has someone try the code below ? Get the same result ?

Thanks :-)

2009/8/4 Xavier Sudan <xsu...@gmail.com>

> Thank you people behind i...@1t3xt.info :)
>
> There is an application reproducing the problem... I hope that someone
> could find the source of the problem. This arrived with different PDF source
> (printed with pdfFractory, OpenOffice, ...) for the original PDF (will be
> PDF_A).
>
> *To use this application, just place a PDF named "PDF_A.pdf" at the base
> of the project. Need library PDFBox and iText.*
>
> Thank you.
>
>
> ---------------------------------------------------------------------------------------------------------------------
> import java.io.File;
> import java.io.FileInputStream;
> import java.io.FileOutputStream;
>
> import org.pdfbox.cos.COSDocument;
> import org.pdfbox.pdfparser.PDFParser;
> import org.pdfbox.pdmodel.PDDocument;
> import org.pdfbox.util.PDFTextStripper;
>
> import com.lowagie.text.pdf.PdfContentByte;
> import com.lowagie.text.pdf.PdfImportedPage;
> import com.lowagie.text.pdf.PdfReader;
> import com.lowagie.text.pdf.PdfWriter;
>
> /**
>  * Problem using iText or PDFBox.
>  * http://article.gmane.org/gmane.comp.java.lib.itext.general/46543
>  */
> public class TestReuseSameFile {
>
>     /**
>      * @param args
>      */
>     public static void main(String[] args) {
>         System.out
>                 .println("The problem is that after the creation of two
> files,"
>                         + " the last is unreadable and I don't know what I
> do wrong..."
>                         + " For my tests, I take one PDF (PDF_A) from 1
> page, and I "
>                         + "create the PDF_B. After I take PDF_B to create
> PDF_C and "
>                         + "there PDF_C is unreadable (with Code using
> PDFBox, but I can open"
>                         + " and read it by the OS system). Test with IText
> 2.1.4 and 2.1.7."
>                         + " \n !!! USAGE : put the file : PDF_A.pdf at the
> base of the project.");
>         TestReuseSameFile reuse = new TestReuseSameFile();
>
>         // Put the original PDF at the base of the project.
>         String PDF_A = "PDF_A.pdf";
>         System.out.println("--------------- " + PDF_A + "\n"
>                 + reuse.pdftoText(PDF_A));
>
>         // Creation of PDF_B base on PDF_A
>         String PDF_B = "PDF_B.pdf";
>         reuse.splittPDF(PDF_A, PDF_B);
>         System.out.println("--------------- " + PDF_B + "\n"
>                 + reuse.pdftoText(PDF_B));
>
>         // Creation of PDF_C base on PDF_B
>         String PDF_C = "PDF_C.pdf";
>         reuse.splittPDF(PDF_B, PDF_C);
>         System.out.println("--------------- " + PDF_C + "\n"
>                 + reuse.pdftoText(PDF_C));
>
>         // There is bug because PDF_C has no content.... :(
>
>     }
>
>     /**
>      * Take the file (just the first page) and recreate another (same
> content).
>      * Test with iText 2.1.4 and 2.1.7.
>      *
>      * @param fileName Source
>      * @param nameOfNewFile Destination
>      * @return
>      */
>     public boolean splittPDF(String fileName, String nameOfNewFile) {
>
>         try {
>             PdfReader reader = new PdfReader(fileName);
>
>             com.lowagie.text.Document document = new
> com.lowagie.text.Document(
>                     reader.getPageSizeWithRotation(1));
>             PdfWriter writer;
>             try {
>                 File f = new File(nameOfNewFile);
>                 if (f.exists()) {
>                     System.out.println("The file : " + nameOfNewFile
>                             + " already exist. It will be overwrite");
>                 }
>                 writer = PdfWriter.getInstance(document, new
> FileOutputStream(
>                         nameOfNewFile));
>             } catch (Exception e) {
>                 System.out.println(e);
>                 return false;
>             }
>             document.open();
>             PdfContentByte cb = writer.getDirectContent();
>             PdfImportedPage page;
>             int rotation;
>             int pageNumber = 1;
>
>
> document.setPageSize(reader.getPageSizeWithRotation(pageNumber));
>             document.newPage();
>             page = writer.getImportedPage(reader, pageNumber);
>             rotation = reader.getPageRotation(pageNumber);
>             if (rotation == 90 || rotation == 270) {
>                 cb.addTemplate(page, 0, -1f, 1f, 0, 0, reader
>                         .getPageSizeWithRotation(pageNumber).getHeight());
>             } else {
>                 cb.addTemplate(page, 1f, 0, 0, 1f, 0, 0);
>             }
>
>             document.close();
>
>         } catch (Exception e) {
>             e.printStackTrace();
>             return false;
>         }
>
>         return true;
>     }
>
>     /**
>      * Get content of PDF in String (Use PDFBOX (tested with PDFBox-0.7.3)
>      *
>      * @param fileName
>      *            the PDF File name
>      * @return Content of PDF
>      */
>     public String pdftoText(String fileName) {
>
>         File f = new File(fileName);
>         if (!f.isFile()) {
>             System.out.println("File " + fileName + " does not exist.");
>             return null;
>         }
>         PDFParser parser;
>         PDFTextStripper pdfStripper;
>         PDDocument pdDoc = null;
>         COSDocument cosDoc = null;
>
>         try {
>             parser = new PDFParser(new FileInputStream(f));
>         } catch (Exception e) {
>             System.out.println("Unable to open PDF Parser.");
>             return null;
>         }
>         try {
>             parser.parse();
>             cosDoc = parser.getDocument();
>             pdfStripper = new PDFTextStripper();
>             pdDoc = new PDDocument(cosDoc);
>             int numberOfPage = pdDoc.getNumberOfPages();
>             // Get Content JUST ONE PAGE FOR THE EXEMPLE
>             for (int i = 1; i <= numberOfPage; i++) {
>                 pdfStripper.setStartPage(i);
>                 pdfStripper.setEndPage(i);
>                 String out = pdfStripper.getText(pdDoc);
>                 return out;
>             }
>         } catch (Exception e) {
>             System.err
>                     .println("An exception occured in parsing the PDF
> Document.");
>             e.printStackTrace();
>         } finally {
>             try {
>                 if (cosDoc != null)
>                     cosDoc.close();
>
>                 if (pdDoc != null)
>                     pdDoc.close();
>             } catch (Exception e1) {
>                 e1.printStackTrace();
>             }
>         }
>         return null;
>     }
> }
>
> -----------------------------------------------------------------------------------------------------------
> 2009/8/4 1T3XT info <i...@1t3xt.info>
>
> Xavier Sudan wrote:
>> > I think that this creation of PDF do something wrong and I need your
>> > help to resolve it.
>>
>> The problem is that you don't help us help you. Reading your code, we
>> have no clue. You MUST send us a small standalone example reproducing
>> the problem. Otherwise, it's just as if you are asking a quiz question,
>> a puzzle with missing pieces. We can't afford spending time guessing
>> what you are doing wrong (unless you can provide code we can run on our
>> machine without having to code anything ourselves).
>> --
>> This answer is provided by 1T3XT BVBA
>> http://www.1t3xt.com/ - http://www.1t3xt.info
>>
>>
>> ------------------------------------------------------------------------------
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> 30-Day
>> trial. Simplify your report design, integration and deployment - and focus
>> on
>> what you do best, core application coding. Discover what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> iText-questions mailing list
>> iText-questions@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/itext-questions
>>
>> Buy the iText book: http://www.1t3xt.com/docs/book.php
>> Check the site with examples before you ask questions:
>> http://www.1t3xt.info/examples/
>> You can also search the keywords list:
>> http://1t3xt.info/tutorials/keywords/
>>
>
>
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.1t3xt.com/docs/book.php
Check the site with examples before you ask questions: 
http://www.1t3xt.info/examples/
You can also search the keywords list: http://1t3xt.info/tutorials/keywords/

Reply via email to