Document document = new Document();
-PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“extractPage.pdf”));
-document.open();
-PdfReader reader = new PdfReader(“sourceDocument.pdf”);
-PdfImportedPage page = writer.getImportedPage(reader, 1);
-// do something with it
+
How to extract a page from PDF:
+
+
+
DON’T attempt to extract a page using the PdfReader.
+
Pass the PdfReader to a PdfWriter and ask it to copy the page to another PDF.
+
This will give you a PdfImportedPage object.
+
+
12345
-
#ToputaheaderandfooterorstationaryonaPDF:
+6
+7
+
Documentdocument=newDocument();
+PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("extractPage.pdf"));
+document.open();
+PdfReaderreader=newPdfReader("sourceDocument.pdf");
+PdfImportedPagepage=writer.getImportedPage(reader,1);
+// do something with it
-*createthestationaryinonePDF
-*importthatpage
-*superimposethatpageonthetargetPDF
-
java
-// open reader with source doc
-// open target doc in writer
-// create pdfContentByte by calling getDirectContent on the writer
-// call addTemplate on the contentByte and feed it the imported page
-PdfReader reader = new PdfReader(“stationary.pdf”);
-Document document = new Document();
-PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“result.pdf”));
-document.open();
-PdfContentByte canvas = writer.getDirectContent();
-PdfImportedPage page;
+
To put a header and footer or stationary on a PDF:
-
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
- page = writer.getImportedPage(reader, i);
- canvas.addTemplate(page, 1f, 0, 0, 1, 0, 0);
- }
-
// open reader with source doc
+// open target doc in writer
+// create pdfContentByte by calling getDirectContent on the writer
+// call addTemplate on the contentByte and feed it the imported page
+PdfReaderreader=newPdfReader("stationary.pdf");
+Documentdocument=newDocument();
+PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("result.pdf"));
+document.open();
+PdfContentBytecanvas=writer.getDirectContent();
+PdfImportedPagepage;
+for(inti=1;i<=reader.getNumberOfPages();i++){
+page=writer.getImportedPage(reader,i);
+canvas.addTemplate(page,1f,0,0,1,0,0);
+}
+document.close();
+reader.close();
-
java
-PdfReader reader = new PdfReader(src);
-PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
-PdfContentByte canvas = stamper.getOverContent(1); // note: compare to ‘getDirectContent()’ method on PdfWriter
-ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(“Hello people!”), 36, 540, 0);
-stamper.close();
-reader.close();
+
Problem with this: annotations are not part of the content stream, they are part of the annotations dictionary.
+They are not copied when using PdfImportedPage.
Document document = new Document();
-PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“extractPage.pdf”));
-document.open();
-PdfReader reader = new PdfReader(“sourceDocument.pdf”);
-PdfImportedPage page = writer.getImportedPage(reader, 1);
-// do something with it
+
How to extract a page from PDF:
+
+
+
DON’T attempt to extract a page using the PdfReader.
+
Pass the PdfReader to a PdfWriter and ask it to copy the page to another PDF.
+
This will give you a PdfImportedPage object.
+
+
12345
-
#ToputaheaderandfooterorstationaryonaPDF:
+6
+7
+
Documentdocument=newDocument();
+PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("extractPage.pdf"));
+document.open();
+PdfReaderreader=newPdfReader("sourceDocument.pdf");
+PdfImportedPagepage=writer.getImportedPage(reader,1);
+// do something with it
-*createthestationaryinonePDF
-*importthatpage
-*superimposethatpageonthetargetPDF
-
java
-// open reader with source doc
-// open target doc in writer
-// create pdfContentByte by calling getDirectContent on the writer
-// call addTemplate on the contentByte and feed it the imported page
-PdfReader reader = new PdfReader(“stationary.pdf”);
-Document document = new Document();
-PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“result.pdf”));
-document.open();
-PdfContentByte canvas = writer.getDirectContent();
-PdfImportedPage page;
+
To put a header and footer or stationary on a PDF:
-
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
- page = writer.getImportedPage(reader, i);
- canvas.addTemplate(page, 1f, 0, 0, 1, 0, 0);
- }
-
// open reader with source doc
+// open target doc in writer
+// create pdfContentByte by calling getDirectContent on the writer
+// call addTemplate on the contentByte and feed it the imported page
+PdfReaderreader=newPdfReader("stationary.pdf");
+Documentdocument=newDocument();
+PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("result.pdf"));
+document.open();
+PdfContentBytecanvas=writer.getDirectContent();
+PdfImportedPagepage;
+for(inti=1;i<=reader.getNumberOfPages();i++){
+page=writer.getImportedPage(reader,i);
+canvas.addTemplate(page,1f,0,0,1,0,0);
+}
+document.close();
+reader.close();
-
java
-PdfReader reader = new PdfReader(src);
-PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
-PdfContentByte canvas = stamper.getOverContent(1); // note: compare to ‘getDirectContent()’ method on PdfWriter
-ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(“Hello people!”), 36, 540, 0);
-stamper.close();
-reader.close();
+
Problem with this: annotations are not part of the content stream, they are part of the annotations dictionary.
+They are not copied when using PdfImportedPage.
Document document = new Document();
-PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“extractPage.pdf”));
-document.open();
-PdfReader reader = new PdfReader(“sourceDocument.pdf”);
-PdfImportedPage page = writer.getImportedPage(reader, 1);
-// do something with it
+
How to extract a page from PDF:
+
+
+
DON’T attempt to extract a page using the PdfReader.
+
Pass the PdfReader to a PdfWriter and ask it to copy the page to another PDF.
+
This will give you a PdfImportedPage object.
+
+
12345
-
#ToputaheaderandfooterorstationaryonaPDF:
+6
+7
+
Documentdocument=newDocument();
+PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("extractPage.pdf"));
+document.open();
+PdfReaderreader=newPdfReader("sourceDocument.pdf");
+PdfImportedPagepage=writer.getImportedPage(reader,1);
+// do something with it
-*createthestationaryinonePDF
-*importthatpage
-*superimposethatpageonthetargetPDF
-
java
-// open reader with source doc
-// open target doc in writer
-// create pdfContentByte by calling getDirectContent on the writer
-// call addTemplate on the contentByte and feed it the imported page
-PdfReader reader = new PdfReader(“stationary.pdf”);
-Document document = new Document();
-PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(“result.pdf”));
-document.open();
-PdfContentByte canvas = writer.getDirectContent();
-PdfImportedPage page;
+
To put a header and footer or stationary on a PDF:
-
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
- page = writer.getImportedPage(reader, i);
- canvas.addTemplate(page, 1f, 0, 0, 1, 0, 0);
- }
-
// open reader with source doc
+// open target doc in writer
+// create pdfContentByte by calling getDirectContent on the writer
+// call addTemplate on the contentByte and feed it the imported page
+PdfReaderreader=newPdfReader("stationary.pdf");
+Documentdocument=newDocument();
+PdfWriterwriter=PdfWriter.getInstance(document,newFileOutputStream("result.pdf"));
+document.open();
+PdfContentBytecanvas=writer.getDirectContent();
+PdfImportedPagepage;
+for(inti=1;i<=reader.getNumberOfPages();i++){
+page=writer.getImportedPage(reader,i);
+canvas.addTemplate(page,1f,0,0,1,0,0);
+}
+document.close();
+reader.close();
-
java
-PdfReader reader = new PdfReader(src);
-PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
-PdfContentByte canvas = stamper.getOverContent(1); // note: compare to ‘getDirectContent()’ method on PdfWriter
-ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(“Hello people!”), 36, 540, 0);
-stamper.close();
-reader.close();
+
Problem with this: annotations are not part of the content stream, they are part of the annotations dictionary.
+They are not copied when using PdfImportedPage.