2011-07-25 59 views
4

我正在使用以下代码来合并pdf。但这给我带来了保证金问题。它在顶部留下更多的保证金,在原始文件的右边留下较少的保证金&底部&。 我也尝试设置边距,但它不起作用。 请帮我这个 或u能帮助我设置页面大小欧洲A4如何在itext中将页面大小设置为欧洲A4

public class Pdf_Merge { 
    public static void main(String[] args) { 
    try { 
     List<InputStream> pdfs = new ArrayList<InputStream>(); 
     pdfs.add(new FileInputStream("file1.pdf")); 
     pdfs.add(new FileInputStream("file2.pdf")); 
     OutputStream output = new FileOutputStream("Output_file.pdf"); 
     System.out.println("Created"); 
     Pdf_Merge.concatPDFs(pdfs, output, true); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    } 

    public static void concatPDFs(List<InputStream> streamOfPDFFiles, OutputStream  
    outputStream, boolean paginate) { 

    Document document = new Document(PageSize.A4); 
    try { 
    List<InputStream> pdfs = streamOfPDFFiles; 
    List<PdfReader> readers = new ArrayList<PdfReader>(); 
    int totalPages = 0; 
    Iterator<InputStream> iteratorPDFs = pdfs.iterator(); 

    // Create Readers for the pdfs. 
     while (iteratorPDFs.hasNext()) { 
     InputStream pdf = iteratorPDFs.next(); 
     PdfReader pdfReader = new PdfReader(pdf); 
     readers.add(pdfReader); 
     totalPages += pdfReader.getNumberOfPages(); 
     } 
     // Create a writer for the outputstream 
     PdfWriter writer = PdfWriter.getInstance(document, outputStream); 


     document.open(); 

     PdfContentByte cb = writer.getDirectContent(); // Holds the PDF 
    // data 

     PdfImportedPage page; 
     int currentPageNumber = 0; 
     int pageOfCurrentReaderPDF = 0; 
     Iterator<PdfReader> iteratorPDFReader = readers.iterator(); 

    // Loop through the PDF files and add to the output. 
     while (iteratorPDFReader.hasNext()) { 
     PdfReader pdfReader = iteratorPDFReader.next(); 

    // Create a new page in the target for each source page. 
     while (pageOfCurrentReaderPDF < pdfReader.getNumberOfPages()) { 
      document.newPage(); 
      pageOfCurrentReaderPDF++; 
      currentPageNumber++; 
      page = writer.getImportedPage(pdfReader, pageOfCurrentReaderPDF); 
      cb.addTemplate(page, 0, 0); 

     // Code for pagination. 
      if (paginate) { 
      cb.beginText(); 
      cb.endText(); 

     } 
     } 
     pageOfCurrentReaderPDF = 0; 
    } 
     outputStream.flush(); 

     document.close(); 
     outputStream.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (document.isOpen()) 
     document.close(); 
     try { 
     if (outputStream != null) 
     outputStream.close(); 
     } catch (IOException ioe) { 
     ioe.printStackTrace(); 
     } 
    } 
    } 
} 

回答

13
import com.lowagie.text.PageSize; 

...  

final Document document = new Document(PageSize.A4); 
+2

好极了!谢谢! –

相关问题