Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Dalam bab ini, kita akan menjelajahi cara menggunakan kelas GraphicsAbsorber
yang kuat untuk berinteraksi dengan grafik vektor dalam dokumen PDF. Apakah Anda perlu memindahkan, menghapus, atau menambahkan grafik, panduan ini akan menunjukkan kepada Anda cara melakukan tugas-tugas ini secara efektif.
Grafik vektor adalah komponen penting dari banyak dokumen PDF, digunakan untuk merepresentasikan gambar, bentuk, dan elemen grafis lainnya. Aspose.PDF menyediakan kelas GraphicsAbsorber
, yang memungkinkan pengembang untuk mengakses dan memanipulasi grafik ini secara programatik. Dengan menggunakan metode Visit
dari GraphicsAbsorber
, Anda dapat mengekstrak grafik vektor dari halaman tertentu dan melakukan berbagai operasi, seperti memindahkan, menghapus, atau menyalinnya ke halaman lain.
GraphicsAbsorber
Langkah pertama dalam bekerja dengan grafik vektor adalah mengekstraknya dari dokumen PDF. Berikut adalah cara melakukannya menggunakan kelas GraphicsAbsorber
:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void UsingGraphicsAbsorber()
{
// The path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open the document
using (var document = new Aspose.Pdf.Document(dataDir + "DocumentWithVectorGraphics.pdf"))
{
// Create an instance of GraphicsAbsorber
using (var graphicsAbsorber = new Aspose.Pdf.Vector.GraphicsAbsorber())
{
// Select the first page of the document
var page = document.Pages[1];
// Use the `Visit` method to extract graphics from the page
graphicsAbsorber.Visit(page);
// Step 5: Display information about the extracted elements
foreach (var element in graphicsAbsorber.Elements)
{
Console.WriteLine($"Page Number: {element.SourcePage.Number}");
Console.WriteLine($"Position: ({element.Position.X}, {element.Position.Y})");
Console.WriteLine($"Number of Operators: {element.Operators.Count}");
}
}
}
}
Document
baru diinstansiasi dengan jalur ke file PDF target.GraphicsAbsorber
: Kelas ini menangkap semua elemen grafik dari halaman tertentu.Visit
dipanggil pada halaman pertama, memungkinkan GraphicsAbsorber
untuk menyerap grafik vektor.Setelah Anda mengekstrak grafik, Anda dapat memindahkannya ke posisi yang berbeda di halaman yang sama. Berikut adalah cara mencapainya:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void MoveGraphics()
{
// The path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DocumentWithVectorGraphics.pdf"))
{
// Create a GraphicsAbsorber instance
using (var graphicsAbsorber = new Aspose.Pdf.Vector.GraphicsAbsorber())
{
// Select the first page of the document
var page = document.Pages[1];
// Extract graphic elements from the page
graphicsAbsorber.Visit(page);
// Temporarily suspend updates to improve performance
graphicsAbsorber.SuppressUpdate();
// Loop through each extracted graphic element and shift its position
foreach (var element in graphicsAbsorber.Elements)
{
var position = element.Position;
// Move graphics by shifting its X and Y coordinates
element.Position = new Aspose.Pdf.Point(position.X + 150, position.Y - 10);
}
// Resume updates and apply changes
graphicsAbsorber.ResumeUpdate();
}
// Save PDF document
document.Save(dataDir + "DocumentWithVectorGraphics_out.pdf");
}
}
X
dan Y
-nya.Ada skenario di mana Anda mungkin ingin menghapus grafik tertentu dari sebuah halaman. Aspose.PDF menawarkan dua metode untuk mencapai ini:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RemoveGraphicsMethod1()
{
// The path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DocumentWithVectorGraphics.pdf"))
{
// Create GraphicsAbsorber
using (var graphicsAbsorber = new Aspose.Pdf.Vector.GraphicsAbsorber())
{
// Get the first page of the document
var page = document.Pages[1];
// Extract graphic elements from the page
graphicsAbsorber.Visit(page);
// Define the rectangle where graphics will be removed
var rectangle = new Aspose.Pdf.Rectangle(70, 248, 170, 252);
// Temporarily suspend updates for better performance
graphicsAbsorber.SuppressUpdate();
// Iterate through the extracted graphic elements and remove elements inside the rectangle
foreach (var element in graphicsAbsorber.Elements)
{
// Check if the graphic's position falls within the rectangle
if (rectangle.Contains(element.Position))
{
// Remove the graphic element
element.Remove();
}
}
// Resume updates and apply changes
graphicsAbsorber.ResumeUpdate();
}
// Save PDF document
document.Save(dataDir + "DocumentWithVectorGraphics_out.pdf");
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RemoveGraphicsMethod2()
{
// The path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DocumentWithVectorGraphics.pdf"))
{
// Create GraphicsAbsorber
using (var graphicsAbsorber = new Aspose.Pdf.Vector.GraphicsAbsorber())
{
// Get the first page of the document
var page = document.Pages[1];
// Define the rectangle where graphics will be removed
var rectangle = new Aspose.Pdf.Rectangle(70, 248, 170, 252);
// Extract graphic elements from the page
graphicsAbsorber.Visit(page);
// Create a collection for the removed elements
var removedElementsCollection = new Aspose.Pdf.Vector.GraphicElementCollection();
// Add elements within the rectangle to the collection
foreach (var item in graphicsAbsorber.Elements.Where(el => rectangle.Contains(el.Position)))
{
removedElementsCollection.Add(item);
}
// Temporarily suppress updates for better performance
page.Contents.SuppressUpdate();
// Delete the selected graphic elements
page.DeleteGraphics(removedElementsCollection);
// Resume updates and apply changes
page.Contents.ResumeUpdate();
}
// Save PDF document
document.Save(dataDir + "DocumentWithVectorGraphics_out.pdf");
}
}
Grafik yang diserap dari satu halaman dapat ditambahkan ke halaman lain dalam dokumen yang sama. Berikut adalah dua metode untuk mencapainya:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddToAnotherPageMethod1()
{
// The path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DocumentWithVectorGraphics.pdf"))
{
// Create GraphicsAbsorber
using (var graphicsAbsorber = new Aspose.Pdf.Vector.GraphicsAbsorber())
{
// Get the first and second pages
var page1 = document.Pages[1];
var page2 = document.Pages[2];
// Extract graphic elements from the first page
graphicsAbsorber.Visit(page1);
// Temporarily suppress updates for better performance
page2.Contents.SuppressUpdate();
// Add each graphic element from the first page to the second page
foreach (var element in graphicsAbsorber.Elements)
{
element.AddOnPage(page2); // Add each graphic element to the second page.
}
// Resume updates and apply changes
page2.Contents.ResumeUpdate();
}
// Save PDF document
document.Save(dataDir + "DocumentWithVectorGraphics_out.pdf");
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddToAnotherPageMethod2()
{
// The path to the document directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Images();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "DocumentWithVectorGraphics.pdf"))
{
// Create GraphicsAbsorber
using (var graphicsAbsorber = new Aspose.Pdf.Vector.GraphicsAbsorber())
{
// Get the first and second pages
var page1 = document.Pages[1];
var page2 = document.Pages[2];
// Extract graphic elements from the first page
graphicsAbsorber.Visit(page1);
// Temporarily suppress updates for better performance
page2.Contents.SuppressUpdate();
// Add all graphics at once from the first page to the second page
page2.AddGraphics(graphicsAbsorber.Elements);
// Resume updates and apply changes
page2.Contents.ResumeUpdate();
}
// Save PDF document
document.Save(dataDir + "DocumentWithVectorGraphics_out.pdf");
}
}
AddOnPage
untuk penambahan individu dan AddGraphics
untuk penambahan massal.Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.