Pemformatan Teks di dalam PDF
Cara menambahkan Garis Indent ke PDF
Aspose.PDF untuk Java menawarkan properti SubsequentLinesIndent ke dalam kelas TextFormattingOptions. Yang dapat digunakan untuk menentukan indent garis dalam skenario pembuatan PDF dengan koleksi TextFragment dan Paragraf.
Silakan gunakan cuplikan kode berikut untuk menggunakan properti tersebut:
public static void AddLineIndentToPDF() {
// Buat objek dokumen baru
Document document = new Document();
Page page = document.getPages().add();
TextFragment text = new TextFragment(
"Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas. Seekor rubah coklat cepat melompati anjing malas.");
// Inisialisasi TextFormattingOptions untuk fragmen teks dan tentukan
// nilai SubsequentLinesIndent
TextFormattingOptions textOptions = new TextFormattingOptions();
textOptions.setSubsequentLinesIndent(20);
text.getTextState().setFormattingOptions(textOptions);
page.getParagraphs().add(text);
text = new TextFragment("Baris2");
page.getParagraphs().add(text);
text = new TextFragment("Baris3");
page.getParagraphs().add(text);
text = new TextFragment("Baris4");
page.getParagraphs().add(text);
text = new TextFragment("Baris5");
page.getParagraphs().add(text);
document.save(_dataDir + "SubsequentIndent_out.pdf");
}
Cara Menambahkan Garis Tepi Teks
Cuplikan kode berikut menunjukkan, cara menambahkan garis tepi ke teks menggunakan TextBuilder dan mengatur metode DrawTextRectangleBorder dari TextState:
public static void AddTextBorder() {
// Buat objek dokumen baru
Document pdfDocument = new Document();
// Dapatkan halaman tertentu
Page pdfPage = pdfDocument.getPages().add();
// Buat fragmen teks
TextFragment textFragment = new TextFragment("main text");
textFragment.setPosition(new Position(100, 600));
// Atur properti teks
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("TimesNewRoman"));
textFragment.getTextState().setBackgroundColor (Color.getLightGray());
textFragment.getTextState().setForegroundColor (Color.getRed());
// Gunakan setStrokingColor untuk menggambar garis tepi (stroking) di sekitar kotak teks
textFragment.getTextState().setStrokingColor (Color.getDarkRed());
// Gunakan metode setDrawTextRectangleBorder untuk mengatur nilai menjadi true
textFragment.getTextState().setDrawTextRectangleBorder(true);
TextBuilder tb = new TextBuilder(pdfPage);
tb.appendText(textFragment);
// Simpan dokumen
pdfDocument.save(_dataDir + "PDFWithTextBorder_out.pdf");
}
Cara Menambahkan Teks Bergaris Bawah
Cuplikan kode berikut menunjukkan cara menambahkan teks bergaris bawah saat membuat file PDF baru.
public static void AddUnderlineText(){
// Buat objek dokumentasi
Document pdfDocument = new Document();
// Tambahkan halaman ke dokumen PDF
Page page = pdfDocument.getPages().add();
// Buat TextBuilder untuk halaman pertama
TextBuilder tb = new TextBuilder(page);
// TextFragment dengan teks contoh
TextFragment fragment = new TextFragment("Teks dengan dekorasi garis bawah");
// Atur font untuk TextFragment
fragment.getTextState().setFont (FontRepository.findFont("Arial"));
fragment.getTextState().setFontSize (10);
// Atur pemformatan teks sebagai garis bawah
fragment.getTextState().setUnderline(true);
// Tentukan posisi di mana TextFragment perlu ditempatkan
fragment.setPosition (new Position(10, 800));
// Tambahkan TextFragment ke file PDF
tb.appendText(fragment);
// Simpan dokumen PDF yang dihasilkan.
pdfDocument.save(_dataDir + "AddUnderlineText_out.pdf");
}
Cara Menambahkan Border di Sekitar Teks yang Ditambahkan
Anda memiliki kontrol atas tampilan dan nuansa teks yang Anda tambahkan. Contoh di bawah ini menunjukkan cara menambahkan border di sekitar sepotong teks yang telah Anda tambahkan dengan menggambar persegi panjang di sekelilingnya. Cari tahu lebih lanjut tentang kelas PdfContentEditor.
public static void AddBorderAroundAddedText() {
PdfContentEditor editor = new PdfContentEditor();
editor.bindPdf(_dataDir + "input.pdf");
LineInfo lineInfo = new LineInfo();
lineInfo.setLineWidth(2);
lineInfo.setVerticeCoordinate (new float[] { 0, 0, 100, 100, 50, 100 });
lineInfo.setVisibility(true);
editor.createPolygon(lineInfo, 1, new java.awt.Rectangle(0, 0, 0, 0), "");
// Simpan dokumen PDF yang dihasilkan.
editor.save(_dataDir + "AddingBorderAroundAddedText_out.pdf");
}
Cara Menambahkan NewLine feed
TextFragment tidak mendukung line feed di dalam teks. Namun, untuk menambahkan teks dengan pemisah baris, silakan gunakan TextFragment dengan TextParagraph:
- gunakan “\r\n” atau Environment.NewLine dalam TextFragment sebagai pengganti satu “\n”;
- buat objek TextParagraph. Ini akan menambahkan teks dengan pemisahan baris;
- tambahkan TextFragment dengan TextParagraph.AppendLine;
- tambahkan TextParagraph dengan TextBuilder.AppendParagraph. Silakan gunakan cuplikan kode di bawah ini.
public static void AddNewLineFeed() {
Document pdfDocument = new Document();
Page page = pdfDocument.getPages().add();
// Inisialisasi TextFragment baru dengan teks yang mengandung penanda newline yang diperlukan
TextFragment textFragment = new TextFragment("Nama Pemohon: " + System.lineSeparator() + " Joe Smoe");
// Atur properti text fragment jika diperlukan
textFragment.getTextState().setFontSize (12);
textFragment.getTextState().setFont(FontRepository.findFont("DejaVu Serif"));
textFragment.getTextState().setBackgroundColor (Color.getLightGray());
textFragment.getTextState().setForegroundColor (Color.getRed());
// Buat objek TextParagraph
TextParagraph par = new TextParagraph();
// Tambahkan TextFragment baru ke paragraf
par.appendLine(textFragment);
// Atur posisi paragraf
par.setPosition (new Position(100, 600));
// Buat objek TextBuilder
TextBuilder textBuilder = new TextBuilder(page);
// Tambahkan TextParagraph menggunakan TextBuilder
textBuilder.appendParagraph(par);
// Simpan dokumen PDF yang dihasilkan.
pdfDocument.save(_dataDir + "AddNewLineFeed_out.pdf");
}
Cara Menambahkan Teks Coret
Kelas TextState menyediakan kemampuan untuk mengatur pemformatan untuk TextFragment yang ditempatkan di dalam dokumen PDF. Anda dapat menggunakan kelas ini untuk mengatur pemformatan teks sebagai Bold, Italic, Underline dan mulai rilis ini, API telah menyediakan kemampuan untuk menandai pemformatan teks sebagai Coret. Silakan coba gunakan cuplikan kode berikut untuk menambahkan TextFragment dengan pemformatan Coret.
Silakan gunakan cuplikan kode lengkap:
public static void AddStrikeOutText(){
// Buka dokumen
Document pdfDocument = new Document();
// Dapatkan halaman tertentu
Page pdfPage = (Page)pdfDocument.getPages().add();
// Buat text fragment
TextFragment textFragment = new TextFragment("teks utama");
textFragment.setPosition (new Position(100, 600));
// Atur properti teks
textFragment.getTextState().setFontSize(12);
textFragment.getTextState().setFont(FontRepository.findFont("DejaVu Serif"));
textFragment.getTextState().setBackgroundColor(Color.getLightGray());
textFragment.getTextState().setForegroundColor(Color.getRed());
// gunakan metode setStrikeOut untuk mengaktifkan Teks Coret
textFragment.getTextState().setStrikeOut(true);
// Tandai teks sebagai Bold
textFragment.getTextState().setFontStyle(FontStyles.Bold);
// Buat objek TextBuilder
TextBuilder textBuilder = new TextBuilder(pdfPage);
// Tambahkan text fragment ke halaman PDF
textBuilder.appendText(textFragment);
// Simpan dokumen PDF yang dihasilkan.
pdfDocument.save(_dataDir + "AddStrikeOutText_out.pdf");
}
Terapkan Pewarnaan Gradien pada Teks
Pemformatan teks telah lebih ditingkatkan dalam API untuk skenario penyuntingan teks dan sekarang Anda dapat menambahkan teks dengan pola ruang warna di dalam dokumen PDF. Kelas com.aspose.pdf.Color telah lebih ditingkatkan dengan memperkenalkan metode baru setPatternColorSpace
, yang dapat digunakan untuk menentukan warna pewarnaan untuk teks. Metode baru ini menambahkan berbagai Pewarnaan Gradien ke teks misalnya, Axial Shading, Radial (Type 3) Shading seperti yang ditunjukkan dalam cuplikan kode berikut:
public static void ApplyGradientShading() {
Document pdfDocument = new Document(_dataDir + "sample.pdf");
TextFragmentAbsorber absorber = new TextFragmentAbsorber("selalu mencetak dengan benar");
pdfDocument.getPages().accept(absorber);
TextFragment textFragment = absorber.getTextFragments().get_Item(1);
Color foregroundColor = new com.aspose.pdf.Color();
foregroundColor.setPatternColorSpace(new GradientAxialShading(Color.getRed(), Color.getBlue()));
// Buat warna baru dengan pola ruang warna
textFragment.getTextState().setForegroundColor (foregroundColor);
textFragment.getTextState().setUnderline(true);
pdfDocument.save(_dataDir + "text_out.pdf");
}
Dalam rangka menerapkan Gradien Radial, Anda dapat menggunakan metode setPatternColorSpace
sama dengan GradientRadialShading(startingColor, endingColor)
dalam cuplikan kode di atas.
public static void ApplyGradientShadingRadial() {
Document pdfDocument = new Document(_dataDir + "sample.pdf");
TextFragmentAbsorber absorber = new TextFragmentAbsorber("always print correctly");
pdfDocument.getPages().accept(absorber);
TextFragment textFragment = absorber.getTextFragments().get_Item(1);
Color foregroundColor = new com.aspose.pdf.Color();
foregroundColor.setPatternColorSpace(new GradientRadialShading(Color.getRed(), Color.getBlue()));
// Buat warna baru dengan ruang warna pola
textFragment.getTextState().setForegroundColor (foregroundColor);
textFragment.getTextState().setUnderline(true);
pdfDocument.save(_dataDir + "text_out.pdf");
}
Cara menyelaraskan teks ke konten mengambang
Aspose.PDF mendukung pengaturan perataan teks untuk konten di dalam elemen Kotak Mengambang. Properti penyelarasan dari instance Aspose.Pdf.FloatingBox dapat digunakan untuk mencapai hal ini seperti yang ditunjukkan dalam contoh kode berikut.
public static void AlignTextToFloatContent() {
Document pdfDocument = new Document();
Page page = pdfDocument.getPages().add();
FloatingBox floatBox = new FloatingBox(100, 100);
floatBox.setVerticalAlignment(VerticalAlignment.Bottom);
floatBox.setHorizontalAlignment (HorizontalAlignment.Right);
floatBox.getParagraphs().add(new TextFragment("FloatingBox_bottom"));
floatBox.setBorder(new BorderInfo(BorderSide.All, Color.getBlue()));
page.getParagraphs().add(floatBox);
FloatingBox floatBox1 = new FloatingBox(100, 100);
floatBox1.setVerticalAlignment(VerticalAlignment.Center);
floatBox1.setHorizontalAlignment (HorizontalAlignment.Right);
floatBox1.getParagraphs().add(new TextFragment("FloatingBox_center"));
floatBox1.setBorder (new BorderInfo(BorderSide.All, Color.getBlue()));
page.getParagraphs().add(floatBox1);
FloatingBox floatBox2 = new FloatingBox(100, 100);
floatBox2.setVerticalAlignment(VerticalAlignment.Top);
floatBox2.setHorizontalAlignment (HorizontalAlignment.Right);
floatBox2.getParagraphs().add(new TextFragment("FloatingBox_top"));
floatBox2.setBorder (new BorderInfo(BorderSide.All, Color.getBlue()));
page.getParagraphs().add(floatBox2);
pdfDocument.save(_dataDir + "FloatingBox_alignment_review_out.pdf");
}