Java Tutorial/PDF/PDF Copy
Combine the different PDFs with forms and fields into one
<source lang="java">
import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.PageSize; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.GrayColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfCopyFields; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.pdf.TextField; public class HelloWorldCopyFields {
public static void main(String[] args) throws Exception { createPdf("1.pdf", "field1", "value1.1"); createPdf("2.pdf", "field1", "value1.2"); createPdf("3.pdf", "field2", "value2"); PdfCopyFields copy = new PdfCopyFields(new FileOutputStream( "CopyFields.pdf")); copy.addDocument(new PdfReader("1.pdf")); copy.addDocument(new PdfReader("2.pdf")); copy.addDocument(new PdfReader("3.pdf")); copy.close(); } private static void createPdf(String filename, String field, String value) throws Exception { Document document = new Document(PageSize.A4); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream( filename)); document.open(); BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); PdfContentByte cb = writer.getDirectContent(); cb.beginText(); cb.setFontAndSize(bf, 12); cb.moveText(36f, 788); cb.showText("Hello"); cb.endText(); TextField tf = new TextField(writer, new Rectangle(67, 785, 340, 800), field); tf.setFontSize(12); tf.setFont(bf); tf.setText(value); tf.setTextColor(new GrayColor(0.5f)); writer.addAnnotation(tf.getTextField()); document.close(); }
}</source>
Copy three PDF files into one PDF
<source lang="java">
import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PdfCopy; import com.lowagie.text.pdf.PdfReader; public class CopyThreePDFToOne {
public static void main(String[] args) throws Exception { PdfReader reader = new PdfReader("Hello1.pdf"); Document document = new Document(reader.getPageSizeWithRotation(1)); PdfCopy copy = new PdfCopy(document, new FileOutputStream( "Pdf.pdf")); document.open(); copy.addPage(copy.getImportedPage(reader, 1)); reader = new PdfReader("Hello2.pdf"); copy.addPage(copy.getImportedPage(reader, 1)); reader = new PdfReader("Hello3.pdf"); copy.addPage(copy.getImportedPage(reader, 1)); document.close(); }
}</source>