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

  1. Dodaj repozytorium Maven i zależność – Dołącz repozytorium Maven Conholdate oraz zależność conholdate-total w pliku pom.xml. Dzięki temu będą dostępne klasy SDK, takie jak Document, Page i Graph.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. Utwórz dokument PDF i stronę - Utwórz instancję Document i 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();
  1. 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ą GraphInfo każ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);
  1. Dodaj kształty do strony - Poszczególne kształty znajdują się w kolekcji kształtów obiektu Graph. Dodaj sam obiekt Graph do 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);
  1. 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.

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) lub new Ellipse(300, 150, 150, 100).
  • Umiejscowienie wykresu: Obiekt Graph jest pozycjonowany przy pomocy new Graph(width, height) i dodawany do strony za pomocą page.getParagraphs().add(graph).
  • Kolory: Użyj klasy com.aspose.pdf.Color (na przykład Color.getGreen() lub Color.getRed()) i ustaw ją na kształcie za pomocą shape.getGraphInfo().setColor(...).
  • Szerokość linii: Ustaw za pomocą shape.getGraphInfo().setLineWidth(...), mierzona w punktach; wartość 1 odpowiada 1/72 cala.
  • Linie: Kształt Line jest 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 Graph przed 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 Document niezwł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.