<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>java pdf shapes on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/pl/tag/java-pdf-shapes/</link>
    <description>Recent content in java pdf shapes on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pl</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/pl/tag/java-pdf-shapes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Dodaj kształty do PDF w Javie</title>
      <link>https://blog-qa.conholdate.com/pl/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/pl/total/add-shapes-to-pdf-in-java/</guid>
      <description>Dowiedz się, jak dodawać kształty do pliku PDF w języku Java przy użyciu Conholdate.Total for Java. Przejdź przez ten przewodnik krok po kroku z kodem, konfiguracją i najlepszymi praktykami dotyczącymi grafiki wektorowej.</description>
      <content:encoded><![CDATA[<p>Dodawanie grafiki wektorowej do plików <a href="https://docs.fileformat.com/pdf">PDF</a> jest powszechnym wymogiem przy generowaniu raportów, faktur i interaktywnych dokumentów. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> 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.</p>
<h2 id="kroki-dodawania-kształtów-do-pdf-w-javie">Kroki dodawania kształtów do PDF w Javie</h2>
<ol>
<li><strong>Dodaj repozytorium Maven i zależność</strong> - Dołącz repozytorium Maven Conholdate oraz zależność <code>conholdate-total</code> w pliku <code>pom.xml</code>. Dzięki temu klasy SDK, takie jak <code>PdfDocument</code> i <code>ShapeFactory</code>, będą dostępne.
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#f92672">&lt;repositories&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;repository&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;id&gt;</span>conholdate-repo<span style="color:#f92672">&lt;/id&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;name&gt;</span>Conholdate Maven Repository<span style="color:#f92672">&lt;/name&gt;</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">&lt;url&gt;</span>https://repository.conholdate.com/repo/<span style="color:#f92672">&lt;/url&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;/repository&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/repositories&gt;</span>
</span></span></code></pre></div></li>
</ol>
<!-- raw HTML omitted -->
<ol start="2">
<li><strong>Załaduj dokument PDF</strong> - Utwórz instancję <code>PdfDocument</code> i otwórz docelowy plik PDF. Klasa jest udokumentowana w <a href="https://reference.conholdate.com/java/">referencji API</a>.</li>
</ol>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>PdfDocument pdf <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> PdfDocument<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">open</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;input.pdf&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="3">
<li><strong>Utwórz obiekty kształtów</strong> - Użyj <code>ShapeFactory</code> do tworzenia prostokątów, elips lub linii. Ustaw pozycję, rozmiar i atrybuty wizualne.
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#75715e">// Rectangle
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>Shape rect <span style="color:#f92672">=</span> ShapeFactory<span style="color:#f92672">.</span><span style="color:#a6e22e">createRectangle</span><span style="color:#f92672">(</span>100<span style="color:#f92672">,</span> 150<span style="color:#f92672">,</span> 200<span style="color:#f92672">,</span> 100<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>rect<span style="color:#f92672">.</span><span style="color:#a6e22e">setFillColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">BLUE</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>rect<span style="color:#f92672">.</span><span style="color:#a6e22e">setStrokeColor</span><span style="color:#f92672">(</span>Color<span style="color:#f92672">.</span><span style="color:#a6e22e">BLACK</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>rect<span style="color:#f92672">.</span><span style="color:#a6e22e">setLineWidth</span><span style="color:#f92672">(</span>2<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
</ol>
<pre tabindex="0"><code>// Ellipse
   Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
   ellipse.setFillColor(Color.GREEN);
   ellipse.setStrokeColor(Color.DARK_GRAY);
   ellipse.setLineWidth(1.5f);
</code></pre><pre tabindex="0"><code>// Line
   Shape line = ShapeFactory.createLine(100, 300, 500, 300);
   line.setStrokeColor(Color.RED);
   line.setLineWidth(3);
</code></pre><ol start="4">
<li>
<p><strong>Dodaj kształty do strony</strong> - Pobierz żądaną stronę z dokumentu i dodaj każdy kształt do jej kolekcji grafiki.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>Page page <span style="color:#f92672">=</span> pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">getPages</span><span style="color:#f92672">().</span><span style="color:#a6e22e">get_Item</span><span style="color:#f92672">(</span>0<span style="color:#f92672">);</span> <span style="color:#75715e">// first page
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>page<span style="color:#f92672">.</span><span style="color:#a6e22e">getGraphics</span><span style="color:#f92672">().</span><span style="color:#a6e22e">addShape</span><span style="color:#f92672">(</span>rect<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>page<span style="color:#f92672">.</span><span style="color:#a6e22e">getGraphics</span><span style="color:#f92672">().</span><span style="color:#a6e22e">addShape</span><span style="color:#f92672">(</span>ellipse<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>page<span style="color:#f92672">.</span><span style="color:#a6e22e">getGraphics</span><span style="color:#f92672">().</span><span style="color:#a6e22e">addShape</span><span style="color:#f92672">(</span>line<span style="color:#f92672">);</span>
</span></span></code></pre></div></li>
<li>
<p><strong>Zapisz zaktualizowany PDF</strong> - Po dodaniu wszystkich kształtów zapisz dokument do nowego pliku.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">save</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;output.pdf&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>pdf<span style="color:#f92672">.</span><span style="color:#a6e22e">close</span><span style="color:#f92672">();</span>
</span></span></code></pre></div></li>
</ol>
<h2 id="dodawanie-kształtów-do-pdf-w-javie---pełny-przykład-kodu">Dodawanie kształtów do PDF w Javie - Pełny przykład kodu</h2>
<p>Poniższy przykład łączy wszystkie kroki w jedną, gotową do uruchomienia aplikację.</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#f92672">import</span> com.conholdate.total.pdf.*<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.conholdate.total.pdf.shapes.*<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.awt.Color<span style="color:#f92672">;</span>
</span></span></code></pre></div><p>public class AddShapesDemo {
public static void main(String[] args) throws Exception {
// Zainicjalizuj dokument PDF
PdfDocument pdf = new PdfDocument();
pdf.open(&ldquo;input.pdf&rdquo;);</p>
<pre tabindex="0"><code>// Utwórz prostokąt
Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100);
rectangle.setFillColor(Color.BLUE);
rectangle.setStrokeColor(Color.BLACK);
rectangle.setLineWidth(2);
</code></pre><p>// Utwórz elipsę
Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
ellipse.setFillColor(Color.GREEN);
ellipse.setStrokeColor(Color.DARK_GRAY);
ellipse.setLineWidth(1.5f);</p>
<p>// Utwórz linię
Shape line = ShapeFactory.createLine(100, 300, 500, 300);
line.setStrokeColor(Color.RED);
line.setLineWidth(3);</p>
<p>// 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);</p>
<pre tabindex="0"><code>// Zapisz wynik
pdf.save(&#34;output.pdf&#34;);
pdf.close();
}
}
</code></pre><!-- raw HTML omitted -->
<blockquote>
<p><strong>Uwaga:</strong> Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś ścieżki plików (<code>input.pdf</code>, <code>output.pdf</code>), 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 <a href="https://docs.conholdate.com/java/">oficjalną dokumentacją</a> lub skontaktuj się z <a href="https://forum.conholdate.com/c/total/5">zespołem wsparcia</a> w celu uzyskania pomocy.</p>
</blockquote>
<h2 id="instalacja-i-konfiguracja-w-javie">Instalacja i konfiguracja w Javie</h2>
<p>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.</p>
<ul>
<li><strong>Adres pobrania:</strong> <a href="https://releases.conholdate.com/total/java/">Conholdate.Total for Java Wersja</a></li>
<li><strong>Dokumentacja:</strong> Szczegółowe instrukcje użytkowania są dostępne w <a href="https://docs.conholdate.com/java/">oficjalnej dokumentacji</a>.</li>
<li><strong>Licencja:</strong> Uzyskaj tymczasową licencję na <a href="https://purchase.conholdate.com/temporary-license/">stronie tymczasowej licencji</a> lub zobacz pełne ceny na <a href="https://purchase.conholdate.com/pricing/total/family/">stronie cenowej</a>.</li>
</ul>
<h2 id="kluczowe-funkcje-i-przegląd">Kluczowe funkcje i przegląd</h2>
<h3 id="dodawanie-kształtów-do-pdf-w-javie-z-conholdatetotal">Dodawanie kształtów do PDF w Javie z Conholdate.Total</h3>
<p>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.</p>
<h3 id="conholdatetotal-features-that-matter-for-this-task">Conholdate.Total Features That Matter For This Task</h3>
<ul>
<li><strong>Kompatybilność wieloplatformowa:</strong> Działa na serwerach Windows, Linux i macOS.</li>
<li><strong>Wysokowydajne renderowanie:</strong> Kształty są renderowane przy użyciu tego samego silnika, który generuje natywną zawartość PDF, unikając rasteryzacji.</li>
<li><strong>Pełna kontrola nad wyglądem:</strong> Ustaw kolory wypełnienia, kolory obramowania, szerokość linii, przezroczystość oraz <a href="https://docs.fileformat.com/3d/blend/">tryby mieszania</a>.</li>
<li><strong>Grafika warstwowa:</strong> Dodawaj kształty do konkretnych warstw lub grup, aby ułatwić późniejszą manipulację.</li>
</ul>
<h2 id="konfigurowanie-właściwości-kształtów-dla-optymalnego-renderowania">Konfigurowanie właściwości kształtów dla optymalnego renderowania</h2>
<p>Podczas dodawania kształtów, rozważ następujące właściwości, aby uzyskać pożądany efekt wizualny.</p>
<ul>
<li><strong>Pozycja i rozmiar:</strong> Używaj współrzędnych bezwzględnych (punkty) lub procentów względem rozmiaru strony.</li>
<li><strong>Kolory:</strong> SDK akceptuje obiekty <code>java.awt.Color</code>. Aby uzyskać przezroczystość, użyj <code>new Color(r, g, b, alpha)</code>.</li>
<li><strong>Szerokość linii:</strong> Mierzona w punktach; wartość <code>1</code> odpowiada 1/72 cala.</li>
<li><strong>Przezroczystość i tryb mieszania:</strong> Dostosuj za pomocą <code>setOpacity(float)</code> i <code>setBlendMode(BlendMode)</code>.</li>
<li><strong>Obrót i pochylenie:</strong> Zastosuj transformacje przy pomocy <code>setRotation(double)</code> lub <code>setSkew(double, double)</code> dla zaawansowanych układów.</li>
</ul>
<p>Przykład ustawiania właściwości zaawansowanych:</p>
<!-- raw HTML omitted -->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ellipse<span style="color:#f92672">.</span><span style="color:#a6e22e">setOpacity</span><span style="color:#f92672">(</span>0<span style="color:#f92672">.</span><span style="color:#a6e22e">7f</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>ellipse<span style="color:#f92672">.</span><span style="color:#a6e22e">setBlendMode</span><span style="color:#f92672">(</span>BlendMode<span style="color:#f92672">.</span><span style="color:#a6e22e">MULTIPLY</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>ellipse<span style="color:#f92672">.</span><span style="color:#a6e22e">setRotation</span><span style="color:#f92672">(</span>45<span style="color:#f92672">);</span>
</span></span></code></pre></div><!-- raw HTML omitted -->
<h2 id="rozważania-dotyczą-się-wydajności-przy-dodawaniu-kształtów-do-pdf">Rozważania dotyczą się wydajności przy dodawaniu kształtów do PDF</h2>
<p>Dodanie wielu obiektów wektorowych może zwiększyć czas przetwarzania i zużycie pamięci. Postępuj zgodnie z poniższymi wytycznymi:</p>
<ul>
<li><strong>Batch Drawing:</strong> Grupuj powiązane kształty w pojedynczy kontener graficzny przed dodaniem ich do strony.</li>
<li><strong>Reuse Objects:</strong> Jeśli potrzebujesz identycznych kształtów na wielu stronach, sklonuj istniejący kształt zamiast tworzyć nowe instancje.</li>
<li><strong>Avoid Over‑Scaling:</strong> Definiuj kształty w ostatecznym rozmiarze wyświetlania, aby uniknąć kosztownych konwersji rastrowych.</li>
<li><strong>Dispose Resources:</strong> Zamknij <code>PdfDocument</code> niezwłocznie, aby zwolnić zasoby natywne.</li>
</ul>
<h2 id="podsumowanie">Podsumowanie</h2>
<p><a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> 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 <a href="https://purchase.conholdate.com/pricing/total/family/">stronie cenowej</a>.</p>
<h2 id="najczęściej-zadawane-pytania">Najczęściej zadawane pytania</h2>
<p><strong>Jak dodać własną czcionkę do kształtów w pliku PDF?</strong><br>
Możesz osadzić czcionkę TrueType używając <code>pdf.getFonts().addFont(&quot;MyFont.ttf&quot;)</code>, a następnie przypisać ją do kształtu za pomocą <code>setFont(myFont)</code>. SDK zapewnia, że czcionka zostanie osadzona w ostatecznym pliku PDF.</p>
<p><strong>Czy można wstawić kształty do istniejącego pliku PDF bez utraty istniejącej zawartości?</strong><br>
Tak. Otwieranie pliku PDF za pomocą <code>PdfDocument.open()</code> 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.</p>
<p><strong>Jakie formaty plików mogę wyeksportować po dodaniu kształtów?</strong><br>
Conholdate.Total for Java obsługuje zapisywanie do PDF, PDF/A, PDF/X, a także do formatów obrazów, takich jak <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>, i BMP. Użyj <code>pdf.save(&quot;output.pdf&quot;)</code> lub <code>pdf.save(&quot;output.png&quot;, ImageSaveOptions.Png)</code> w razie potrzeby.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
