Menggunakan FloatingBox untuk tata letak PDF di Java
Contents
[
Hide
]
Aspose.PDF for Java menggunakan FloatingBox untuk membuat kontainer teks yang dapat digunakan kembali dan tata letak berbasis kolom.
Membuat dan menambahkan kotak mengambang
Gunakan contoh ini ketika teks harus ditempatkan di dalam wadah mengambang yang berbingkai.
- Buat dokumen PDF baru dan tambahkan halaman.
- Buat sebuah
FloatingBox, atur ukuran dan border-nya, serta tambahkan konten teks. - Tambahkan kotak ke halaman dan simpan dokumen.
public static void createAndAddFloatingBox(Path outputFile) {
try (Document document = new Document()) {
Page page = document.getPages().add();
FloatingBox box = new FloatingBox(400, 30);
box.setBorder(new BorderInfo(BorderSide.All, 1.5f, Color.getDarkGreen()));
box.setNeedRepeating(false);
String phrase = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce quam odio, sollicitudin ac mauris vel, suscipit pellentesque nisi.";
box.getParagraphs().add(new TextFragment(phrase));
page.getParagraphs().add(box);
document.save(outputFile.toString());
}
}
Membuat tata letak multi‑kolom berulang
Gunakan contoh ini ketika teks panjang harus mengalir melintasi beberapa kolom di dalam satu kotak mengambang.
- Buat halaman dan konfigurasikan margin.
- Hitung lebar kolom dan konfigurasikan
FloatingBoxpengaturan kolom. - Tambahkan fragmen teks berulang ke kotak dan simpan dokumen.
public static void multiColumnLayout(Path outputFile) {
try (Document document = new Document()) {
Page page = document.getPages().add();
page.getPageInfo().setMargin(new MarginInfo(36, 18, 36, 18));
int columnCount = 3;
int spacing = 10;
double width = page.getPageInfo().getWidth()
- page.getPageInfo().getMargin().getLeft()
- page.getPageInfo().getMargin().getRight()
- (columnCount - 1) * spacing;
double columnWidth = width / 3;
FloatingBox box = new FloatingBox();
box.setNeedRepeating(true);
box.getColumnInfo().setColumnWidths(columnWidth + " " + columnWidth + " " + columnWidth);
box.getColumnInfo().setColumnSpacing(String.valueOf(spacing));
box.getColumnInfo().setColumnCount(3);
String phrase = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce quam odio, sollicitudin ac mauris vel, suscipit pellentesque nisi.";
for (int i = 0; i < 10; i++) {
box.getParagraphs().add(new TextFragment(phrase));
}
page.getParagraphs().add(box);
document.save(outputFile.toString());
}
}
Memulai setiap fragmen sebagai item pertama di kolom
Gunakan contoh ini ketika setiap fragmen yang disisipkan harus memulai segmen aliran kolom baru.
- Buat halaman dan konfigurasikan multi-kolom
FloatingBox. - Buat fragmen teks dan tandai dengan
setFirstParagraphInColumn(true). - Tambahkan kotak ke halaman dan simpan PDF.
public static void multiColumnLayout2(Path outputFile) {
try (Document document = new Document()) {
Page page = document.getPages().add();
page.getPageInfo().setMargin(new MarginInfo(36, 18, 36, 18));
int columnCount = 3;
int spacing = 10;
double width = page.getPageInfo().getWidth()
- page.getPageInfo().getMargin().getLeft()
- page.getPageInfo().getMargin().getRight()
- (columnCount - 1) * spacing;
double columnWidth = width / 3;
FloatingBox box = new FloatingBox();
box.setNeedRepeating(true);
box.getColumnInfo().setColumnWidths(columnWidth + " " + columnWidth + " " + columnWidth);
box.getColumnInfo().setColumnSpacing(String.valueOf(spacing));
box.getColumnInfo().setColumnCount(3);
String phrase = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce quam odio, sollicitudin ac mauris vel, suscipit pellentesque nisi.";
for (int i = 0; i < 10; i++) {
TextFragment text = new TextFragment(phrase);
text.setFirstParagraphInColumn(true);
box.getParagraphs().add(text);
}
page.getParagraphs().add(box);
document.save(outputFile.toString());
}
}
Menambahkan kotak mengambang dengan warna latar belakang
Gunakan contoh ini ketika kontainer mengambang harus memiliki latar belakang yang terlihat.
- Buat dokumen PDF baru dan tambahkan halaman.
- Buat sebuah
FloatingBox, atur warna latar belakangnya, dan tambahkan teks. - Tempatkan kotak pada halaman dan simpan dokumen.
public static void backgroundSupport(Path outputFile) {
try (Document document = new Document()) {
Page page = document.getPages().add();
FloatingBox box = new FloatingBox(400, 30);
box.setBackgroundColor(Color.getLightGreen());
box.setNeedRepeating(false);
box.getParagraphs().add(new TextFragment("text example"));
page.getParagraphs().add(box);
document.save(outputFile.toString());
}
}
Memposisikan kotak mengambang dengan offset absolut
Gunakan contoh ini ketika kotak mengambang harus muncul pada offset yang tepat di halaman.
- Buat halaman dan siapkan konten teks di sekitarnya.
- Buat sebuah
FloatingBox, atur posisi absolut, dan tetapkan offset atas dan kiri. - Tambahkan konten ke halaman dan simpan dokumen.
public static void offsetSupport(Path outputFile) {
try (Document document = new Document()) {
Page page = document.getPages().add();
FloatingBox box = new FloatingBox(400, 30);
box.setTop(45);
box.setLeft(15);
box.setPositioningMode(ParagraphPositioningMode.Absolute);
box.setBorder(new BorderInfo(BorderSide.All, 1.5f, Color.getDarkGreen()));
box.getParagraphs().add(new TextFragment("text example 1"));
page.getParagraphs().add(new TextFragment("text example 2"));
page.getParagraphs().add(box);
page.getParagraphs().add(new TextFragment("text example 3"));
document.save(outputFile.toString());
}
}
Meratakan teks di dalam kotak mengambang
Gunakan contoh ini ketika kotak mengambang harus menunjukkan penyelarasan vertikal yang berbeda dengan penyelarasan horizontal yang sama.
- Buat dokumen PDF baru dan tambahkan halaman.
- Buat beberapa objek
FloatingBoxdengan pengaturan perataan yang berbeda. - Tambahkan mereka ke halaman dan simpan hasilnya.
public static void alignTextToFloat(Path outputFile) {
try (Document document = new Document()) {
Page page = document.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 floatBox2 = new FloatingBox(100, 100);
floatBox2.setVerticalAlignment(VerticalAlignment.Center);
floatBox2.setHorizontalAlignment(HorizontalAlignment.Right);
floatBox2.getParagraphs().add(new TextFragment("FloatingBox_center"));
floatBox2.setBorder(new BorderInfo(BorderSide.All, Color.getBlue()));
page.getParagraphs().add(floatBox2);
FloatingBox floatBox3 = new FloatingBox(100, 100);
floatBox3.setVerticalAlignment(VerticalAlignment.Top);
floatBox3.setHorizontalAlignment(HorizontalAlignment.Right);
floatBox3.getParagraphs().add(new TextFragment("FloatingBox_top"));
floatBox3.setBorder(new BorderInfo(BorderSide.All, Color.getBlue()));
page.getParagraphs().add(floatBox3);
document.save(outputFile.toString());
}
}