PDFBox - Thêm nhiều dòng

Trong ví dụ được cung cấp trong chương trước, chúng ta đã thảo luận về cách thêm văn bản vào một trang trong tệp PDF nhưng thông qua chương trình này, bạn chỉ có thể thêm văn bản vừa với một dòng. Nếu bạn cố gắng thêm nhiều nội dung hơn, tất cả văn bản vượt quá khoảng cách dòng sẽ không được hiển thị.

Ví dụ: nếu bạn thực hiện chương trình trên trong chương trước bằng cách chuyển chuỗi sau thì chỉ một phần của nó sẽ được hiển thị.

String text = "This is an example of adding text to a page in the pdf document. we can
   add as many lines as we want like this using the showText() method of the 
   ContentStream class";

Thay thế cái string textcủa ví dụ trong chương trước với chuỗi được đề cập ở trên và thực thi nó. Sau khi thực hiện, bạn sẽ nhận được kết quả sau.

Nếu bạn quan sát kỹ đầu ra, bạn có thể nhận thấy rằng chỉ một phần của chuỗi được hiển thị.

Để thêm nhiều dòng vào một tệp PDF, bạn cần đặt đầu dòng bằng cách sử dụng setLeading() và chuyển sang dòng mới bằng cách sử dụng newline() phương pháp sau khi kết thúc mỗi dòng.

Các bước

Sau đây là các bước để tạo một tài liệu trống và thêm nội dung vào một trang trong đó.

Bước 1: Tải tài liệu hiện có

Bạn có thể tải một tài liệu hiện có bằng cách sử dụng load()phương thức của lớp PDDocument. Do đó, khởi tạo lớp này và tải tài liệu cần thiết như hình dưới đây.

File file = new File("Path of the document"); 
PDDocument doc = PDDocument.load(file);

Bước 2: Lấy trang cần thiết

Bạn có thể lấy trang được yêu cầu trong tài liệu bằng cách sử dụng getPage()phương pháp. Lấy đối tượng của trang được yêu cầu bằng cách chuyển chỉ mục của nó đến phương thức này như hình dưới đây.

PDPage page = doc.getPage(1);

Bước 3: Chuẩn bị luồng nội dung

Bạn có thể chèn nhiều loại phần tử dữ liệu khác nhau bằng cách sử dụng đối tượng của lớp có tên PDPageContentStream. Do đó, bạn cần phải truyền đối tượng document và đối tượng trang cho phương thức khởi tạo của lớp này, khởi tạo lớp này bằng cách chuyển hai đối tượng này đã được tạo trong các bước trước đó như hình dưới đây.

PDPageContentStream contentStream = new PDPageContentStream(doc, page);

Bước 4: Bắt đầu văn bản

Trong khi chèn văn bản vào tài liệu PDF, bạn có thể chỉ định điểm bắt đầu và điểm kết thúc của văn bản bằng cách sử dụng beginText()endText() phương pháp của PDPageContentStream lớp như hình bên dưới.

contentStream.beginText(); 
……………………….. 
code to add text content 
……………………….. 
contentStream.endText();

Do đó, hãy bắt đầu văn bản bằng cách sử dụng beginText() như hình dưới đây.

contentStream.beginText();

Bước 5: Đặt vị trí của văn bản

Sử dụng newLineAtOffset() , bạn có thể đặt vị trí trên luồng nội dung trong trang.

//Setting the position for the line 
contentStream.newLineAtOffset(25, 700);

Bước 6: Đặt phông chữ

Bạn có thể đặt phông chữ của văn bản theo kiểu yêu cầu bằng cách sử dụng setFont() phương pháp của PDPageContentStream lớp như được hiển thị bên dưới cho phương thức này, bạn cần phải chuyển loại và kích thước của phông chữ.

contentStream.setFont( font_type, font_size );

Bước 7: Đặt Văn bản dẫn đầu

Bạn có thể đặt văn bản dẫn đầu bằng cách sử dụng setLeading() như hình dưới đây.

contentStream.setLeading(14.5f);

Bước 8: Chèn nhiều chuỗi bằng newline ()

Bạn có thể chèn nhiều chuỗi bằng cách sử dụng ShowText() phương pháp của PDPageContentStream lớp, bằng cách chia từng lớp bằng cách sử dụng newline() như hình dưới đây.

contentStream. ShowText(text1); 
contentStream.newLine(); 
contentStream. ShowText(text2);

Bước 9: Kết thúc văn bản

Sau khi chèn văn bản, bạn cần kết thúc văn bản bằng endText() phương pháp của PDPageContentStream lớp như hình bên dưới.

contentStream.endText();

Bước 10: Đóng PDPageContentStream

Đóng PDPageContentStream đối tượng sử dụng close() như hình dưới đây.

contentstream.close();

Bước 11: Lưu tài liệu

Sau khi thêm nội dung cần thiết, hãy lưu tài liệu PDF bằng cách sử dụng save() phương pháp của PDDocument lớp như được hiển thị trong khối mã sau.

doc.save("Path");

Bước 12: Đóng tài liệu

Cuối cùng, đóng tài liệu bằng cách sử dụng close() phương pháp của PDDocument lớp như hình bên dưới.

doc.close();

Thí dụ

Ví dụ này trình bày cách thêm nhiều dòng trong PDF bằng PDFBox. Lưu chương trình này trong một tệp có tênAddMultipleLines.java.

import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;

public class AddMultipleLines {
   public static void main(String args[]) throws IOException {

      //Loading an existing document
      File file = new File("C:/PdfBox_Examples/my_pdf.pdf");
      PDDocument doc = document.load(file);
       
      //Creating a PDF Document
      PDPage page = doc.getPage(1);  
       
      PDPageContentStream contentStream = new PDPageContentStream(doc, page); 
       
      //Begin the Content stream 
      contentStream.beginText(); 
       
      //Setting the font to the Content stream
      contentStream.setFont( PDType1Font.TIMES_ROMAN, 16 );
       
      //Setting the leading
      contentStream.setLeading(14.5f);

      //Setting the position for the line
      contentStream.newLineAtOffset(25, 725);

      String text1 = "This is an example of adding text to a page in the pdf document.
         we can add as many lines";
      String text2 = "as we want like this using the ShowText()  method of the
         ContentStream class";

      //Adding text in the form of string
      contentStream. ShowText(text1);
      contentStream.newLine();
      contentStream. ShowText(text2);
      //Ending the content stream
      contentStream.endText();

      System.out.println("Content added");

      //Closing the content stream
      contentStream.close();

      //Saving the document
      doc.save(new File("C:/PdfBox_Examples/new.pdf"));
            
      //Closing the document
      doc.close();
   }
}

Biên dịch và thực thi tệp Java đã lưu từ dấu nhắc lệnh bằng các lệnh sau.

javac AddMultipleLines.java 
java AddMultipleLines

Khi thực hiện, chương trình trên thêm văn bản đã cho vào tài liệu và hiển thị thông báo sau.

Content added

Nếu bạn xác minh Tài liệu PDF new.pdf trong đường dẫn được chỉ định, bạn có thể thấy rằng nội dung đã cho được thêm vào tài liệu trong nhiều dòng như hình dưới đây.