Bekerja dengan vektor grafik di Java
Aspose.PDF for Java mengekspos konten vektor melalui objek GraphicsAbsorber dan GraphicElement. Ini memungkinkan Anda memeriksa elemen vektor tingkat rendah pada sebuah halaman dan kemudian memperbarui, menghapus, menyalin, atau mengekspornya.
Memeriksa grafik vektor pada halaman
Gunakan contoh ini ketika Anda perlu mengenumerasi elemen vektor dan memeriksa halaman, posisi, serta jumlah operatornya.
- Buka PDF sumber
Document. - Buat
GraphicsAbsorberdan kunjungi halaman target. - Iterasikan melalui yang diserap objek
GraphicElementdan keluarkan properti mereka.
public static void usingGraphicsAbsorber(Path inputFile) {
try (Document document = new Document(inputFile.toString())) {
GraphicsAbsorber graphicsAbsorber = new GraphicsAbsorber();
try {
Page page = document.getPages().get_Item(1);
graphicsAbsorber.visit(page);
for (GraphicElement element : graphicsAbsorber.getElements()) {
System.out.println("Page Number: " + element.getSourcePage().getNumber());
System.out.println("Position: (" + element.getPosition().getX() + ", "
+ element.getPosition().getY() + ")");
System.out.println("Number of Operators: " + element.getOperators().size());
}
} finally {
graphicsAbsorber.dispose();
}
}
}
Memindahkan grafik vektor pada halaman
Gunakan contoh ini ketika semua elemen vektor yang terdeteksi harus dipindahkan ke posisi baru.
- Buka PDF sumber
Document. - Kunjungi halaman target dengan
GraphicsAbsorberdan sementara menonaktifkan pembaruan. - Ubah posisi setiap elemen yang diserap, lanjutkan pembaruan, dan simpan dokumen.
public static void moveGraphics(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
GraphicsAbsorber graphicsAbsorber = new GraphicsAbsorber();
try {
Page page = document.getPages().get_Item(1);
graphicsAbsorber.visit(page);
graphicsAbsorber.suppressUpdate();
for (GraphicElement element : graphicsAbsorber.getElements()) {
Point position = element.getPosition();
element.setPosition(new Point(position.getX() + 150, position.getY() - 10));
}
graphicsAbsorber.resumeUpdate();
} finally {
graphicsAbsorber.dispose();
}
document.save(outputFile.toString());
}
System.out.println("Vector graphics moved in " + outputFile);
}
Menghapus grafik vektor berdasarkan posisi dengan penghapusan elemen
Gunakan contoh ini ketika elemen vektor di dalam persegi panjang tertentu harus dihapus satu per satu.
- Buka PDF sumber
Document. - Kunjungi halaman dengan
GraphicsAbsorberdan definisikanRectangletarget. - Hapus elemen yang cocok, lanjutkan pembaruan, dan simpan dokumen.
public static void removeGraphicsMethod1(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
GraphicsAbsorber graphicsAbsorber = new GraphicsAbsorber();
try {
Page page = document.getPages().get_Item(1);
Rectangle rectangle = new Rectangle(70, 248, 170, 252, true);
graphicsAbsorber.visit(page);
graphicsAbsorber.suppressUpdate();
for (GraphicElement element : graphicsAbsorber.getElements()) {
if (rectangle.contains(element.getPosition(), false)) {
element.remove();
}
}
graphicsAbsorber.resumeUpdate();
} finally {
graphicsAbsorber.dispose();
}
document.save(outputFile.toString());
}
System.out.println("Vector graphics removed with method 1 in " + outputFile);
}
Menghapus grafik vektor dengan menghapus koleksi
Gunakan contoh ini ketika elemen vektor yang cocok harus dikumpulkan terlebih dahulu dan kemudian dihapus dalam satu operasi halaman.
- Buka PDF sumber
Document. - Kunjungi halaman dengan
GraphicsAbsorberdan kumpulkan elemen yang cocok. - Hapus grafik yang terkumpul dari konten halaman dan simpan dokumen yang telah diperbarui.
public static void removeGraphicsMethod2(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
GraphicsAbsorber graphicsAbsorber = new GraphicsAbsorber();
try {
Page page = document.getPages().get_Item(1);
Rectangle rectangle = new Rectangle(70, 248, 170, 252, true);
graphicsAbsorber.visit(page);
GraphicElementCollection removedElements = new GraphicElementCollection();
for (GraphicElement element : graphicsAbsorber.getElements()) {
if (rectangle.contains(element.getPosition(), false)) {
removedElements.add(element);
}
}
page.getContents().suppressUpdate();
page.deleteGraphics(removedElements);
page.getContents().resumeUpdate();
} finally {
graphicsAbsorber.dispose();
}
document.save(outputFile.toString());
}
System.out.println("Vector graphics removed with method 2 in " + outputFile);
}
Menyalin grafik vektor ke elemen halaman lain elemen demi elemen
Gunakan contoh ini ketika setiap elemen vektor yang diserap harus ditambahkan secara individu ke halaman baru.
- Buka PDF sumber
Documentdan tambahkan halaman tujuan. - Kunjungi halaman sumber dengan
GraphicsAbsorber. - Tambahkan masing-masing
GraphicElementke halaman tujuan dan simpan dokumen.
public static void addToAnotherPageMethod1(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
GraphicsAbsorber graphicsAbsorber = new GraphicsAbsorber();
try {
Page page1 = document.getPages().get_Item(1);
Page page2 = document.getPages().add();
graphicsAbsorber.visit(page1);
page2.getContents().suppressUpdate();
for (GraphicElement element : graphicsAbsorber.getElements()) {
element.addOnPage(page2);
}
page2.getContents().resumeUpdate();
} finally {
graphicsAbsorber.dispose();
}
document.save(outputFile.toString());
}
System.out.println("Vector graphics copied with method 1 in " + outputFile);
}
Menyalin grafik vektor ke halaman lain sebagai koleksi
Gunakan contoh ini ketika seluruh koleksi grafis vektor yang diserap harus disalin ke halaman baru dalam satu panggilan.
- Buka PDF sumber
Documentdan tambahkan halaman tujuan. - Kunjungi halaman sumber dengan
GraphicsAbsorber. - Tambahkan koleksi grafik yang diserap ke halaman tujuan dan simpan dokumen.
public static void addToAnotherPageMethod2(Path inputFile, Path outputFile) {
try (Document document = new Document(inputFile.toString())) {
GraphicsAbsorber graphicsAbsorber = new GraphicsAbsorber();
try {
Page page1 = document.getPages().get_Item(1);
Page page2 = document.getPages().add();
graphicsAbsorber.visit(page1);
page2.getContents().suppressUpdate();
page2.addGraphics(graphicsAbsorber.getElements());
page2.getContents().resumeUpdate();
} finally {
graphicsAbsorber.dispose();
}
document.save(outputFile.toString());
}
System.out.println("Vector graphics copied with method 2 in " + outputFile);
}