如何在itext中将页面大小设置为欧洲A4

时间:2011-07-25 12:58:57

标签: java itext

我使用以下代码合并pdf。但它给了我一个保证金问题。它在顶部,左边和左边留下了更多的余量。底部&原始文件中的保证金较少。 我试图设置利润率,但它没有用。 这个你能帮我吗 或者你可以帮助我将页面大小设置为欧洲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();
      }
    }
  }
}

1 个答案:

答案 0 :(得分:15)

import com.lowagie.text.PageSize;

...    

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