【问题标题】:How set page size to European A4 in itext如何在itext中将页面大小设置为欧洲A4
【发布时间】:2011-10-12 14:08:57
【问题描述】:

我正在使用以下代码来合并 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();
      }
    }
  }
}

【问题讨论】:

    标签: java itext


    【解决方案1】:
    import com.lowagie.text.PageSize;
    
    ...    
    
    final Document document = new Document(PageSize.A4);
    

    【讨论】:

    • 有没有办法在iText7的PDFDocument中设置
    【解决方案2】:
    String dest = "A4Page.pdf";
    PdfWriter writer = new PdfWriter(dest);
    
    // Creating a PdfDocument
    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(pdfWriter));
    
    // set the page size to A4
    Document document = new Document(pdfDoc, PageSize.A4);
    

    【讨论】:

    • 您可能想补充一点,您的答案是针对 itext 7 而最初的问题是针对 itext 2 或 itext 5。尽管如此,对 Luixv 答案的评论表明人们对基于 itext 7 的答案感兴趣,也是。
    • 感谢编辑...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2021-01-15
    • 2012-09-01
    • 2016-07-11
    • 1970-01-01
    • 2011-12-11
    相关资源
    最近更新 更多