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 zestaw SDK, który upraszcza manipulację PDF po stronie serwera. W tym przewodniku dowiesz się, jak wstawiać prostokąty, elipsy i linie do pliku PDF, konfigurować ich wygląd oraz radzić sobie z kwestiami wydajności, wszystko przy użyciu przejrzystych przykładów 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 klasy SDK, takie jak PdfDocument i ShapeFactory, będą dostępne.
    <repositories>
        <repository>
            <id>conholdate-repo</id>
            <name>Conholdate Maven Repository</name>
            <url>https://repository.conholdate.com/repo/</url>
        </repository>
    </repositories>
    
  1. Załaduj dokument PDF - Utwórz instancję PdfDocument i otwórz docelowy plik PDF. Klasa jest udokumentowana w referencji API.
PdfDocument pdf = new PdfDocument();
pdf.open("input.pdf");
  1. Utwórz obiekty kształtów - Użyj ShapeFactory do tworzenia prostokątów, elips lub linii. Ustaw pozycję, rozmiar i atrybuty wizualne.
    // Rectangle
    Shape rect = ShapeFactory.createRectangle(100, 150, 200, 100);
    rect.setFillColor(Color.BLUE);
    rect.setStrokeColor(Color.BLACK);
    rect.setLineWidth(2);
    
// Ellipse
   Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
   ellipse.setFillColor(Color.GREEN);
   ellipse.setStrokeColor(Color.DARK_GRAY);
   ellipse.setLineWidth(1.5f);
// Line
   Shape line = ShapeFactory.createLine(100, 300, 500, 300);
   line.setStrokeColor(Color.RED);
   line.setLineWidth(3);
  1. Dodaj kształty do strony - Pobierz żądaną stronę z dokumentu i dodaj każdy kształt do jej kolekcji grafiki.

    Page page = pdf.getPages().get_Item(0); // first page
    page.getGraphics().addShape(rect);
    page.getGraphics().addShape(ellipse);
    page.getGraphics().addShape(line);
    
  2. Zapisz zaktualizowany PDF - Po dodaniu wszystkich kształtów zapisz dokument do nowego pliku.

    pdf.save("output.pdf");
    pdf.close();
    

Dodawanie kształtów do PDF w Javie - Pełny przykład kodu

Poniższy przykład łączy wszystkie kroki w jedną, gotową do uruchomienia aplikację.

import com.conholdate.total.pdf.*;
import com.conholdate.total.pdf.shapes.*;
import java.awt.Color;

public class AddShapesDemo { public static void main(String[] args) throws Exception { // Zainicjalizuj dokument PDF PdfDocument pdf = new PdfDocument(); pdf.open(“input.pdf”);

// Utwórz prostokąt
Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100);
rectangle.setFillColor(Color.BLUE);
rectangle.setStrokeColor(Color.BLACK);
rectangle.setLineWidth(2);

// Utwórz elipsę Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100); ellipse.setFillColor(Color.GREEN); ellipse.setStrokeColor(Color.DARK_GRAY); ellipse.setLineWidth(1.5f);

// Utwórz linię Shape line = ShapeFactory.createLine(100, 300, 500, 300); line.setStrokeColor(Color.RED); line.setLineWidth(3);

// Add shapes to the first page Page page = pdf.getPages().get_Item(0); page.getGraphics().addShape(rectangle); page.getGraphics().addShape(ellipse); page.getGraphics().addShape(line);

// Zapisz wynik
pdf.save("output.pdf");
pdf.close();
}
}

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś ścieżki plików (input.pdf, output.pdf), aby odpowiadały rzeczywistym lokalizacjom plików, sprawdź, czy wszystkie wymagane zależności są poprawnie zainstalowane, i dokładnie przetestuj w środowisku programistycznym. Jeśli napotkasz jakiekolwiek problemy, zapoznaj się z oficjalną dokumentacją 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 z oficjalnej strony i dodaj zależność Maven pokazane 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 na grafice wektorowej, zapewniając, że dodane elementy pozostają ostre przy dowolnym poziomie powiększenia. Możesz rysować podstawowe prymitywy (prostokąt, elipsa, linia) oraz złożone ścieżki.

Conholdate.Total Features That Matter For This Task

  • 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 kolory wypełnienia, kolory obramowania, szerokość linii, przezroczystość oraz tryby mieszania.
  • Grafika warstwowa: Dodawaj kształty do konkretnych warstw lub grup, aby ułatwić późniejszą manipulację.

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: Używaj współrzędnych bezwzględnych (punkty) lub procentów względem rozmiaru strony.
  • Kolory: SDK akceptuje obiekty java.awt.Color. Aby uzyskać przezroczystość, użyj new Color(r, g, b, alpha).
  • Szerokość linii: Mierzona w punktach; wartość 1 odpowiada 1/72 cala.
  • Przezroczystość i tryb mieszania: Dostosuj za pomocą setOpacity(float) i setBlendMode(BlendMode).
  • Obrót i pochylenie: Zastosuj transformacje przy pomocy setRotation(double) lub setSkew(double, double) dla zaawansowanych układów.

Przykład ustawiania właściwości zaawansowanych:

ellipse.setOpacity(0.7f);
ellipse.setBlendMode(BlendMode.MULTIPLY);
ellipse.setRotation(45);

Rozważania dotyczą się wydajności przy dodawaniu kształtów do 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 kontener graficzny przed dodaniem ich do strony.
  • Reuse Objects: Jeśli potrzebujesz identycznych kształtów na wielu stronach, sklonuj istniejący kształt zamiast tworzyć nowe instancje.
  • Avoid Over‑Scaling: Definiuj kształty w ostatecznym rozmiarze wyświetlania, aby uniknąć kosztownych konwersji rastrowych.
  • Dispose Resources: Zamknij PdfDocument niezwłocznie, aby zwolnić zasoby natywne.

Podsumowanie

Conholdate.Total for Java umożliwia programistom Java prosty sposób dodawania kształtów do dokumentów PDF, co pozwala na tworzenie bogatych, interaktywnych raportów i faktur. Postępując zgodnie z krokami, wskazówkami konfiguracyjnymi i wytycznymi dotyczącymi wydajności w tym przewodniku, możesz z pewnością zintegrować grafikę wektorową w swoim procesie pracy z PDF. Pamiętaj, aby zapewnić odpowiednią licencję do użytku produkcyjnego; tymczasowa licencja jest dostępna do oceny, a pełne informacje o cenach znajdują się na stronie cenowej.

Najczęściej zadawane pytania

Jak dodać własną czcionkę do kształtów w pliku PDF?
Możesz osadzić czcionkę TrueType używając pdf.getFonts().addFont("MyFont.ttf"), a następnie przypisać ją do kształtu za pomocą setFont(myFont). SDK zapewnia, że czcionka zostanie osadzona w ostatecznym pliku PDF.

Czy można wstawić kształty do istniejącego pliku PDF bez utraty istniejącej zawartości?
Tak. Otwieranie pliku PDF za pomocą PdfDocument.open() zachowuje wszystkie istniejące strony i obiekty. Dodawanie kształtów do kolekcji grafiki strony jedynie uzupełnia stronę; nie nadpisuje istniejącej zawartości.

Jakie formaty plików mogę wyeksportować po dodaniu kształtów?
Conholdate.Total for Java obsługuje zapisywanie do PDF, PDF/A, PDF/X, a także do formatów obrazów, takich jak PNG, JPEG, i BMP. Użyj pdf.save("output.pdf") lub pdf.save("output.png", ImageSaveOptions.Png) w razie potrzeby.