PDFBox - Birden Fazla Satır Ekleme
Önceki bölümde verilen örnekte, bir PDF'deki bir sayfaya nasıl metin ekleneceğini tartışmıştık, ancak bu program aracılığıyla, yalnızca tek bir satıra sığacak metni ekleyebilirsiniz. Daha fazla içerik eklemeye çalışırsanız, satır alanını aşan tüm metinler görüntülenmeyecektir.
Örneğin, yukarıdaki programı önceki bölümde aşağıdaki dizeyi geçerek çalıştırırsanız, yalnızca bir kısmı görüntülenecektir.
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";
Değiştirin string textönceki bölümdeki örnekte yukarıda bahsedilen dizgiyi kullanın ve çalıştırın. Yürütme üzerine aşağıdaki çıktıyı alacaksınız.
Çıktıyı dikkatlice gözlemlerseniz, dizenin yalnızca bir kısmının görüntülendiğini fark edebilirsiniz.
Bir PDF'ye birden çok satır eklemek için, satır aralığını kullanarak setLeading() yöntemi ve kullanarak yeni satıra geç newline() her satırı bitirdikten sonra yöntem.
Adımlar
Aşağıda boş bir belge oluşturma ve içindeki bir sayfaya içerik ekleme adımları verilmiştir.
Adım 1: Mevcut Bir Belgenin Yüklenmesi
Kullanarak mevcut bir belgeyi yükleyebilirsiniz. load()PDDocument sınıfının yöntemi. Bu nedenle, bu sınıfı somutlaştırın ve gerekli belgeyi aşağıda gösterildiği gibi yükleyin.
File file = new File("Path of the document");
PDDocument doc = PDDocument.load(file);
2. Adım: Gerekli Sayfayı Alma
Kullanarak bir belgedeki gerekli sayfayı alabilirsiniz. getPage()yöntem. Aşağıda gösterildiği gibi indeksini bu yönteme geçirerek gerekli sayfanın nesnesini alın.
PDPage page = doc.getPage(1);
3. Adım: İçerik akışını hazırlama
Adlı sınıfın nesnesini kullanarak çeşitli türlerde veri öğeleri ekleyebilirsiniz. PDPageContentStream. Belge nesnesini ve sayfa nesnesini bu sınıfın yapıcısına iletmeniz gerekir, bu nedenle, önceki adımlarda oluşturulan bu iki nesneyi aşağıda gösterildiği gibi geçirerek bu sınıfı başlatınız.
PDPageContentStream contentStream = new PDPageContentStream(doc, page);
Adım 4: Metne Başlamak
Bir PDF belgesine metin eklerken, metnin başlangıç ve bitiş noktalarını belirtebilirsiniz. beginText() ve endText() yöntemleri PDPageContentStream aşağıda gösterildiği gibi sınıf.
contentStream.beginText();
………………………..
code to add text content
………………………..
contentStream.endText();
Bu nedenle, metni kullanarak başlayın. beginText() yöntemi aşağıda gösterildiği gibi.
contentStream.beginText();
Adım 5: Metnin Konumunu Ayarlama
Kullanmak newLineAtOffset() yöntem, sayfadaki içerik akışı üzerindeki konumu ayarlayabilirsiniz.
//Setting the position for the line
contentStream.newLineAtOffset(25, 700);
Adım 6: Yazı Tipini Ayarlama
Metnin yazı tipini istediğiniz stile ayarlayabilirsiniz. setFont() yöntemi PDPageContentStream Sınıfı aşağıda gösterildiği gibi bu yönteme yazı tipini ve boyutunu iletmeniz gerekir.
contentStream.setFont( font_type, font_size );
7. Adım: Metnin Önde Gelenini Ayarlama
Önde gelen metni ayarlamak için setLeading() yöntemi aşağıda gösterildiği gibi.
contentStream.setLeading(14.5f);
8. Adım: newline () Kullanarak Birden Çok Dize Ekleme
Kullanarak birden çok dize ekleyebilirsiniz. ShowText() yöntemi PDPageContentStream sınıfını kullanarak her birini bölerek newline() yöntemi aşağıda gösterildiği gibi.
contentStream. ShowText(text1);
contentStream.newLine();
contentStream. ShowText(text2);
Adım 9: Metni Sonlandırma
Metni ekledikten sonra, metni kullanarak sonlandırmanız gerekir. endText() yöntemi PDPageContentStream aşağıda gösterildiği gibi sınıf.
contentStream.endText();
Adım 10: PDPageContentStream'i kapatma
Kapat PDPageContentStream kullanarak nesne close() yöntemi aşağıda gösterildiği gibi.
contentstream.close();
Adım 11: Belgeyi Kaydetme
Gerekli içeriği ekledikten sonra, PDF belgesini kullanarak kaydedin. save() yöntemi PDDocument aşağıdaki kod bloğunda gösterildiği gibi sınıf.
doc.save("Path");
Adım 12: Belgenin Kapatılması
Son olarak, belgeyi kullanarak kapatın. close() yöntemi PDDocument aşağıda gösterildiği gibi sınıf.
doc.close();
Misal
Bu örnek, PDFBox kullanılarak bir PDF'ye birden çok satırın nasıl ekleneceğini gösterir. Bu programı adıyla bir dosyaya kaydedinAddMultipleLines.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();
}
}
Kaydedilen Java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
javac AddMultipleLines.java
java AddMultipleLines
Yürütme üzerine, yukarıdaki program verilen metni belgeye ekler ve aşağıdaki mesajı görüntüler.
Content added
PDF Belgesini doğrularsanız new.pdf belirtilen yolda, aşağıda gösterildiği gibi verilen içeriğin birden çok satırda belgeye eklendiğini gözlemleyebilirsiniz.