Hi Maruan,
thanks a lot for the corrected coding. It works just the way I want it.

Klaus


 
Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems AS GmbH, 
Norderstedt, Registereintragung / Registration: Amtsgericht Norderstedt 3688NO
Geschaeftsfuehrung / Management Board: Bernd Appel

-----Ursprüngliche Nachricht-----

Von: Maruan Sahyoun [mailto:[email protected]]
Gesendet: Montag, 29. September 2014 16:53
An: [email protected]
Betreff: Re: importing pdf file

Hi Klaus,

import java.awt.geom.AffineTransform;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage; import 
org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectForm;
import org.apache.pdfbox.util.LayerUtility;

public class CreateTester {

        public static void main(String[] args) {
                try {
                        float width = 150.0f;
                        float height = 400.0f;
                        PDRectangle sizePDF = new PDRectangle(width, height);
                        PDDocument aDoc = new PDDocument();
                        PDPage aPage = new PDPage(sizePDF);
                        aDoc.addPage(aPage);

                        PDPageContentStream aContent = new 
PDPageContentStream(aDoc, aPage);

                        PDFont font = PDType1Font.HELVETICA_BOLD;
                        aContent.beginText();
                        aContent.setFont(font, 12);
                        aContent.moveTextPositionByAmount(2, 5);
                        aContent.drawString("Import a pdf file:");
                        aContent.endText();
                        aContent.close();

                        LayerUtility layerUtility = new LayerUtility(aDoc);

                        PDDocument toBeImported = 
PDDocument.load("ImportTest.pdf");
                        // Get the page as a PDXObjectForm to place it
                        PDXObjectForm mountable = layerUtility.importPageAsForm(
                                        toBeImported, 0);
                        // add compression to the stream (import deactivates 
compression)
                        mountable.getPDStream().addCompression();

                        // add to the existing content stream
                        PDPageContentStream contentStream = new 
PDPageContentStream(aDoc,
                                        aPage, true, true);

                        // Store the graphics state
                        
contentStream.appendRawCommands("q\n".getBytes("ISO-8859-1"));

                        // use a transformation to be able to scale and move 
easily
                        AffineTransform transform = new AffineTransform();

                        // draw the PDXObjectForm
                        contentStream.drawXObject(mountable, transform);

                        // restore former graphics state
                        
contentStream.appendRawCommands("Q\n".getBytes("ISO-8859-1"));
                        contentStream.close();

                        // close the imported document
                        toBeImported.close();

                        aDoc.save("pdftest.pdf");
                        aDoc.close();
                } catch (Exception e) {
                        System.out.println(" error creating pdf file." + 
e.toString());
                }
        }

}




Maruan Sahyoun

FileAffairs GmbH
Josef-Schappe-Straße 21
40882 Ratingen

Tel: +49 (2102) 89497 88
Fax: +49 (2102) 89497 91
[email protected]
www.fileaffairs.de

Geschäftsführer: Maruan Sahyoun
Handelsregister: AG Düsseldorf, HRB 53837
UST.-ID: DE248275827

Am 29.09.2014 um 16:04 schrieb [email protected]:

> Dear Maruan,
> thank you for your reply.
>
> The included pdf file can be found here:
> https://filexchange.lhsystems.com/fileXchange_download/index.php?file=
> 104789de603a37ed709da477e26544c2b696cb
>
> The resulting pdf written by my program here:
> https://filexchange.lhsystems.com/fileXchange_download/index.php?file=
> 10479081a168741db7f7b9a2f85899e19b8b3f
>
> I want to create a new document with a single page with text and a picture, 
> which I import from another pdf file. The result can be one document.
>
> Klaus
>
> -----Ursprüngliche Nachricht-----
> Von: Maruan Sahyoun [mailto:[email protected]]
> Gesendet: Montag, 29. September 2014 15:41
> An: [email protected]
> Betreff: Re: importing pdf file
>
> Dear Klaus,
>
> I'm guessing from your code that
>
> a) you would like to generate a new document with a single page and
> some text and
> b) overlay another document on top  of that page
>
> Is that correct? Unfortunately due to restrictions of the mailing list the 
> attachments are not available. Could you upload these to a public location?
>
>
> BR
>
> Maruan Sahyoun
>
> FileAffairs GmbH
> Josef-Schappe-Straße 21
> 40882 Ratingen
>
> Tel: +49 (2102) 89497 88
> Fax: +49 (2102) 89497 91
> [email protected]
> www.fileaffairs.de
>
> Geschäftsführer: Maruan Sahyoun
> Handelsregister: AG Düsseldorf, HRB 53837
> UST.-ID: DE248275827
>
> Am 29.09.2014 um 15:05 schrieb <[email protected]> 
> <[email protected]>:
>
>> Hello,
>> I'm validating the use of pdfbox 1.8.6 for the creation of a pdf file for an 
>> editor. Therefore I need the possibility to include a pdf file (picture).
>>
>> I tried some coding, but it is not fully readable with Acrobat Reader. I'm 
>> not sure, if I use the wrong concept for this or if it is simple a mistake 
>> in pdfbox.
>>
>> Please can you give me a hint.
>>
>> My coding:
>>
>>      public static void main(String[] args) {
>>
>>         try
>>         {
>>            float       width   = 150.0f;
>>            float       height  = 400.0f;
>>            PDRectangle sizePDF = new PDRectangle(width,height);
>>            PDDocument  aDoc    = new PDDocument();
>>            PDPage      aPage   = new PDPage(sizePDF);
>>            aDoc.addPage( aPage );
>>            PDPageContentStream aContent = new
>> PDPageContentStream(aDoc, aPage);
>>
>>            PDFont font = PDType1Font.HELVETICA_BOLD;
>>            aContent.beginText();
>>            aContent.setFont( font, 12 );
>>            aContent.moveTextPositionByAmount( 2, 5 );
>>            aContent.drawString( "Import a pdf file:" );
>>            aContent.endText();
>>
>>            File  aFile    = new File("c:\\hallo.pdf");
>>            byte  buffer[] = new byte[(int) aFile.length()];
>>            FileInputStream In = new FileInputStream(aFile);
>>            In.read(buffer);
>>            In.close();
>>
>>            ByteArrayInputStream in      = new ByteArrayInputStream(buffer);
>>            PDStream             aStream = new PDStream (aDoc, in);
>>            PDXObjectForm        aObject = new PDXObjectForm( aStream );
>>            aContent.drawXObject(aObject,2,30,150,150);
>>
>>            aContent.close();
>>            aDoc.save( "c:\\pdftest.pdf");
>>            aDoc.close();
>>          }
>>          catch (Exception e)
>>          {
>>            System.out.println(" error creating pdf file."
>>                + e.toString());
>>          }
>>      }
>> }
>>
>> The used data and the output is attached to the mail.
>>
>> Thanks
>> Klaus Graaf
>

Reply via email to