Dodawanie grafiki wektorowej do plików PDF jest powszechnym wymogiem przy generowaniu raportów, faktur i interaktywnych dokumentów. Conholdate.Total for Java to potężny SDK, który upraszcza manipulację PDF po stronie serwera. W tym przewodniku dowiesz się, jak wstawiać prostokąty, elipsy i linie do pliku PDF przy użyciu obiektu Graph, konfigurować ich wygląd oraz radzić sobie z kwestiami wydajności, wszystko przy jasnych przykładach kodu Java.
Kroki dodawania kształtów do PDF w Javie
- Dodaj repozytorium Maven i zależność – Dołącz repozytorium Maven Conholdate oraz zależność
conholdate-totalw plikupom.xml. Dzięki temu będą dostępne klasy SDK, takie jakDocument,PageiGraph.<repositories> <repository> <id>conholdate-repo</id> <name>Conholdate Maven Repository</name> <url>https://repository.conholdate.com/repo/</url> </repository> </repositories>
- Utwórz dokument PDF i stronę - Utwórz instancję
Documenti dodaj stronę do jej kolekcji stron. Klasa jest udokumentowana w odniesieniu API.
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
- Tworzenie obiektów kształtów – Najpierw utwórz obiekt
Graph, a następnie zainicjuj prostokąty, elipsy lub linie i dodaj je do jego kolekcji kształtów. Ustaw pozycję, rozmiar i atrybuty wizualne za pomocąGraphInfokażdego kształtu.
// Create Graph instance
com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);
// Rectangle
com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
graph.getShapes().add(rect);
// Ellipse
com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
graph.getShapes().add(ellipse);
// Line
com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
line.getGraphInfo().setLineWidth(3);
graph.getShapes().add(line);
- Dodaj kształty do strony - Poszczególne kształty znajdują się w kolekcji kształtów obiektu
Graph. Dodaj sam obiektGraphdo kolekcji akapitów strony, aby wszystkie zawarte w nim kształty zostały wyrenderowane na tej stronie.
// Add graph object to paragraphs collection of page instance
page.getParagraphs().add(graph);
- Zapisz zaktualizowany PDF - Po dodaniu wykresu (ze wszystkimi jego kształtami) do strony, zapisz dokument do nowego pliku.
// Save PDF file
doc.save("Shapes.pdf");
Dodawanie kształtów do PDF w Javie – kompletny przykład kodu
Poniższy przykład łączy wszystkie kroki w jedną, gotową do uruchomienia aplikację.
import com.aspose.pdf.Document;
import com.aspose.pdf.Color;
public class AddShapesDemo {
public static void main(String[] args) throws Exception {
// Create Document instance
Document doc = new Document();
// Add page to pages collection of PDF file
com.aspose.pdf.Page page = doc.getPages().add();
// Create Graph instance
com.aspose.pdf.drawing.Graph graph = new com.aspose.pdf.drawing.Graph(100, 600);
// Create Rectangle instance
com.aspose.pdf.drawing.Rectangle rect = new com.aspose.pdf.drawing.Rectangle(100, 100, 170, 120);
// Add rectangle object to shapes collection of Graph object
graph.getShapes().add(rect);
// Create ellipse
com.aspose.pdf.drawing.Ellipse ellipse = new com.aspose.pdf.drawing.Ellipse(300, 150, 150, 100);
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
// Add ellipse object to shapes collection of Graph object
graph.getShapes().add(ellipse);
// Create line
com.aspose.pdf.drawing.Line line = new com.aspose.pdf.drawing.Line((new float[]{100, 300, 400, 300}));
line.getGraphInfo().setColor(com.aspose.pdf.Color.getRed());
line.getGraphInfo().setLineWidth(3);
// Add line object to shapes collection of Graph object
graph.getShapes().add(line);
// Add graph object to paragraphs collection of page instance
page.getParagraphs().add(graph);
// Save PDF file
doc.save("Shapes.pdf");
}
}
Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem w swoim projekcie upewnij się, że zaktualizowałeś ścieżkę pliku wyjściowego (
Shapes.pdf), aby odpowiadała rzeczywistej lokalizacji docelowej, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz dokładnie przetestuj w środowisku programistycznym. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.
Instalacja i konfiguracja w Javie
Aby rozpocząć korzystanie z Conholdate.Total for Java, pobierz najnowsze wydanie ze strony oficjalnej i dodaj zależność Maven pokazaną wcześniej. SDK działa na dowolnym środowisku uruchomieniowym Java 8+ i nie wymaga dodatkowych natywnych bibliotek.
- Adres pobrania: Conholdate.Total for Java Release
- Dokumentacja: Szczegółowe instrukcje użytkowania są dostępne w oficjalnej dokumentacji.
- Licencja: Uzyskaj tymczasową licencję na stronie tymczasowej licencji lub zobacz pełne ceny na stronie cenowej.
Kluczowe funkcje i przegląd
Dodawanie kształtów do PDF w Javie z Conholdate.Total
Conholdate.Total for Java zapewnia jednolite API do tworzenia i edytowania treści PDF. Funkcjonalność rysowania kształtów działa z grafiką wektorową za pośrednictwem obiektu Graph i jego kolekcji kształtów, zapewniając, że dodane elementy pozostają wyraźne przy dowolnym poziomie powiększenia. Możesz rysować podstawowe prymitywy (prostokąt, elipsa, linia) i łączyć kilka z nich w jednym obiekcie Graph przed umieszczeniem go na stronie.
Funkcje Conholdate.Total, które mają znaczenie dla tego zadania
- Kompatybilność wieloplatformowa: Działa na serwerach Windows, Linux i macOS.
- Wysokowydajne renderowanie: Kształty są renderowane przy użyciu tego samego silnika, który generuje natywną zawartość PDF, unikając rasteryzacji.
- Pełna kontrola nad wyglądem: Ustaw kolor obrysu i szerokość linii dla każdego kształtu za pomocą obiektu
GraphInfo. - Zgrupowana grafika: Dodaj wiele kształtów do jednego obiektu
Graph, aby można je było pozycjonować i zarządzać nimi razem na stronie.
Konfigurowanie właściwości kształtów dla optymalnego renderowania
Podczas dodawania kształtów, rozważ następujące właściwości, aby uzyskać pożądany efekt wizualny:
- Pozycja i rozmiar: Konstruktorzy kształtów przyjmują współrzędne i wymiary w punktach, np.
new Rectangle(100, 100, 170, 120)lubnew Ellipse(300, 150, 150, 100). - Umiejscowienie wykresu: Obiekt
Graphjest pozycjonowany przy pomocynew Graph(width, height)i dodawany do strony za pomocąpage.getParagraphs().add(graph). - Kolory: Użyj klasy
com.aspose.pdf.Color(na przykładColor.getGreen()lubColor.getRed()) i ustaw ją na kształcie za pomocąshape.getGraphInfo().setColor(...). - Szerokość linii: Ustaw za pomocą
shape.getGraphInfo().setLineWidth(...), mierzona w punktach; wartość1odpowiada 1/72 cala. - Linie: Kształt
Linejest tworzony z tablicy współrzędnych, np.new Line(new float[]{100, 300, 400, 300}), reprezentującej punkt początkowy i końcowy linii.
Przykład ustawiania wyglądu kształtu:
ellipse.getGraphInfo().setColor(com.aspose.pdf.Color.getGreen());
ellipse.getGraphInfo().setLineWidth(1.5f);
Rozważania dotyczą się wydajności przy dodawaniu kształtów do plików PDF
Dodanie wielu obiektów wektorowych może zwiększyć czas przetwarzania i zużycie pamięci. Postępuj zgodnie z poniższymi wytycznymi:
- Batch Drawing: Grupuj powiązane kształty w pojedynczy obiekt
Graphprzed dodaniem tego grafu do strony. - Reuse Objects: Jeśli potrzebujesz identycznych kształtów na wielu stronach, ponownie użyj logiki konfiguracji kształtów zamiast jej duplikowania.
- Avoid Over‑Scaling: Definiuj kształty w ostatecznym rozmiarze wyświetlania, aby uniknąć kosztownych konwersji rastrowych.
- Dispose Resources: Zapisz i zwolnij
Documentniezwłocznie po dodaniu wszystkich kształtów.
Podsumowanie
Conholdate.Total for Java zapewnia programistom Java prosty sposób na dodawanie kształtów do dokumentów PDF, umożliwiając tworzenie bogatych, interaktywnych raportów i faktur. Postępując zgodnie z krokami, wskazówkami konfiguracyjnymi i wytycznymi dotyczącymi wydajności zawartymi w tym przewodniku, możesz z pewnością integrować grafikę wektorową w swoim procesie pracy z PDF. Pamiętaj, aby uzyskać odpowiednią licencję do użytku produkcyjnego; tymczasowa licencja jest dostępna do oceny, a pełne informacje o cenach znajdują się na stronie cenowej.
FAQ
Czy muszę tworzyć obiekt Graph dla każdego kształtu?
Nie. Jeden obiekt Graph może przechowywać wiele kształtów — prostokąty, elipsy i linie mogą być dodane do tej samej kolekcji kształtów grafu, zanim graf zostanie dodany do strony.
Czy można dodać kształty do konkretnej strony wielostronicowego PDF?
Tak. Pobierz docelową stronę z doc.getPages() i wywołaj page.getParagraphs().add(graph) na tej konkretnej instancji Page.
Jakie formaty plików mogę wyeksportować po dodaniu kształtów?
Conholdate.Total for Java’s Document.save() method can write to PDF as well as other formats supported by the SDK. Use doc.save("Shapes.pdf") to save the result as a standard PDF file.
