<?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>pdf shape manipulation on Conholdate Blog</title>
    <link>https://blog-qa.conholdate.com/ar/tag/pdf-shape-manipulation/</link>
    <description>Recent content in pdf shape manipulation on Conholdate Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ar</language>
    <lastBuildDate>Fri, 05 Jun 2026 18:38:01 +0000</lastBuildDate><atom:link href="https://blog-qa.conholdate.com/ar/tag/pdf-shape-manipulation/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>إضافة أشكال إلى PDF في Java</title>
      <link>https://blog-qa.conholdate.com/ar/total/add-shapes-to-pdf-in-java/</link>
      <pubDate>Fri, 05 Jun 2026 18:38:01 +0000</pubDate>
      
      <guid>https://blog-qa.conholdate.com/ar/total/add-shapes-to-pdf-in-java/</guid>
      <description>تعلم كيفية إضافة أشكال إلى PDF في Java باستخدام Conholdate.Total for Java. اتبع هذا الدليل خطوة بخطوة مع الشيفرة والإعداد وأفضل الممارسات للرسومات المتجهة.</description>
      <content:encoded><![CDATA[<p>إضافة الرسومات المتجهة إلى ملفات <a href="https://docs.fileformat.com/pdf">PDF</a> هي متطلب شائع لتوليد التقارير والفواتير والوثائق التفاعلية. <a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> هو مجموعة تطوير برمجيات قوية تُبسّط معالجة ملفات PDF على جانب الخادم. في هذا الدليل ستتعلم كيفية إدراج المستطيلات والبيضاويّات والخطوط في ملف PDF، وتكوين مظهرها، ومعالجة اعتبارات الأداء، كل ذلك مع أمثلة واضحة بلغة Java.</p>
<h2 id="خطوات-إضافة-أشكال-إلى-pdf-في-java">خطوات إضافة أشكال إلى PDF في Java</h2>
<ol>
<li><strong>إضافة مستودع Maven والاعتماد</strong> - قم بتضمين مستودع Maven الخاص بـ Conholdate واعتماد <code>conholdate-total</code> في ملف <code>pom.xml</code>. هذا يجعل فئات SDK مثل <code>PdfDocument</code> و <code>ShapeFactory</code> متاحة.
<!-- 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>
<p><strong>تحميل مستند PDF</strong> - إنشاء نسخة من <code>PdfDocument</code> وفتح ملف PDF المستهدف. تم توثيق الفئة في <a href="https://reference.conholdate.com/java/">مرجع API</a>.</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>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></li>
<li>
<p><strong>إنشاء كائنات الشكل</strong> - استخدم <code>ShapeFactory</code> لإنشاء مستطيلات أو إهليلجات أو خطوط. اضبط الموقع والحجم والخصائص البصرية.</p>
</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><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><p>// Ellipse
Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
ellipse.setFillColor(Color.GREEN);
ellipse.setStrokeColor(Color.DARK_GRAY);
ellipse.setLineWidth(1.5f);</p>
<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><strong>إضافة أشكال إلى صفحة</strong> - استرجع الصفحة المطلوبة من المستند وأضف كل شكل إلى مجموعة الرسومات الخاصة بها.</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>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><ol start="5">
<li><strong>حفظ ملف PDF المحدث</strong> - بعد إضافة جميع الأشكال، احفظ المستند في ملف جديد.
<!-- 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="إضافة-أشكال-إلى-pdf-في-java---مثال-كامل-للشفرة">إضافة أشكال إلى PDF في Java - مثال كامل للشفرة</h2>
<p>المثال التالي يجمع جميع الخطوات في برنامج واحد جاهز‑للتنفيذ.</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 {
// Initialize PDF document
PdfDocument pdf = new PdfDocument();
pdf.open(&ldquo;input.pdf&rdquo;);</p>
<pre tabindex="0"><code>// إنشاء مستطيل
Shape rectangle = ShapeFactory.createRectangle(100, 150, 200, 100);
rectangle.setFillColor(Color.BLUE);
rectangle.setStrokeColor(Color.BLACK);
rectangle.setLineWidth(2);
</code></pre><p>// إنشاء إهليلج
Shape ellipse = ShapeFactory.createEllipse(350, 150, 150, 100);
ellipse.setFillColor(Color.GREEN);
ellipse.setStrokeColor(Color.DARK_GRAY);
ellipse.setLineWidth(1.5f);</p>
<pre tabindex="0"><code>// Create line
        Shape line = ShapeFactory.createLine(100, 300, 500, 300);
        line.setStrokeColor(Color.RED);
        line.setLineWidth(3);
</code></pre><p>// إضافة أشكال إلى الصفحة الأولى
Page page = pdf.getPages().get_Item(0);
page.getGraphics().addShape(rectangle);
page.getGraphics().addShape(ellipse);
page.getGraphics().addShape(line);</p>
<pre tabindex="0"><code>// Save the result
        pdf.save(&#34;output.pdf&#34;);
        pdf.close();
    }
}
</code></pre><!-- raw HTML omitted -->
<blockquote>
<p><strong>ملاحظة:</strong> يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث مسارات الملفات (<code>input.pdf</code>, <code>output.pdf</code>) لتطابق المواقع الفعلية للملفات لديك، وتحقق من تثبيت جميع الاعتمادات المطلوبة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى <a href="https://docs.conholdate.com/java/">الوثائق الرسمية</a> أو التواصل مع <a href="https://forum.conholdate.com/c/total/5">فريق الدعم</a> للحصول على المساعدة.</p>
</blockquote>
<h2 id="التثبيت-والإعداد-في-java">التثبيت والإعداد في Java</h2>
<p>لبدء استخدام Conholdate.Total for Java، قم بتنزيل أحدث إصدار من الموقع الرسمي وأضف تبعية Maven التي تم عرضها سابقًا. يعمل SDK على أي بيئة تشغيل Java 8+ ولا يتطلب مكتبات أصلية إضافية.</p>
<ul>
<li><strong>رابط التحميل:</strong> <a href="https://releases.conholdate.com/total/java/">Conholdate.Total for Java Release</a></li>
<li><strong>التوثيق:</strong> تتوفر تعليمات الاستخدام التفصيلية في <a href="https://docs.conholdate.com/java/">التوثيق الرسمي</a>.</li>
<li><strong>الترخيص:</strong> احصل على ترخيص مؤقت من <a href="https://purchase.conholdate.com/temporary-license/">صفحة الترخيص المؤقت</a> أو عرض الأسعار الكاملة على <a href="https://purchase.conholdate.com/pricing/total/family/">صفحة التسعير</a>.</li>
</ul>
<h2 id="الميزات-الرئيسية-والنظرة-العامة">الميزات الرئيسية والنظرة العامة</h2>
<h3 id="إضافة-أشكال-إلى-pdf-في-java-باستخدام-conholdatetotal">إضافة أشكال إلى PDF في Java باستخدام Conholdate.Total</h3>
<p>Conholdate.Total for Java توفر واجهة برمجة تطبيقات موحدة لإنشاء وتحرير محتوى PDF. تعمل وظيفة رسم الأشكال مع الرسومات المتجهة، مما يضمن بقاء العناصر المضافة واضحة عند أي مستوى تكبير. يمكنك رسم الأشكال الأولية الأساسية (مستطيل، إهليلج، خط) بالإضافة إلى مسارات معقدة.</p>
<h3 id="ميزات-conholdatetotal-التي-تهم-هذه-المهمة">ميزات Conholdate.Total التي تهم هذه المهمة</h3>
<ul>
<li><strong>التوافق عبر الأنظمة:</strong> يعمل على خوادم Windows و Linux و macOS.</li>
<li><strong>العرض عالي الأداء:</strong> يتم عرض الأشكال باستخدام نفس المحرك الذي يولد محتوى PDF الأصلي، متجنبًا التحويل إلى نقطية.</li>
<li><strong>تحكم كامل في المظهر:</strong> تعيين ألوان التعبئة، ألوان الحد، عرض الخطوط، الشفافية، وأنماط <a href="https://docs.fileformat.com/3d/blend/">الدمج</a> .</li>
<li><strong>رسومات متعددة الطبقات:</strong> إضافة الأشكال إلى طبقات أو مجموعات محددة لتسهيل التعديل لاحقًا.</li>
</ul>
<h2 id="تكوين-خصائص-الشكل-لتحقيق-العرض-الأمثل">تكوين خصائص الشكل لتحقيق العرض الأمثل</h2>
<p>عند إضافة الأشكال، ضع في اعتبارك الخصائص التالية لتحقيق النتيجة البصرية المطلوبة:</p>
<ul>
<li><strong>الموضع والحجم:</strong> استخدم إحداثيات مطلقة (نقاط) أو نسب مئوية بالنسبة لحجم الصفحة.</li>
<li><strong>الألوان:</strong> يقبل SDK كائنات <code>java.awt.Color</code>. للشفافية، استخدم <code>new Color(r, g, b, alpha)</code>.</li>
<li><strong>عرض الخط:</strong> يُقاس بالنقاط؛ القيمة <code>1</code> تعادل 1/72 بوصة.</li>
<li><strong>الشفافية ووضع الدمج:</strong> اضبط باستخدام <code>setOpacity(float)</code> و <code>setBlendMode(BlendMode)</code>.</li>
<li><strong>الدوران والإنحراف:</strong> طبّق التحويلات عبر <code>setRotation(double)</code> أو <code>setSkew(double, double)</code> لتصاميم متقدمة.</li>
</ul>
<p>مثال على تعيين الخصائص المتقدمة:</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="اعتبارات-الأداء-عند-إضافة-أشكال-إلى-ملفات-pdf">اعتبارات الأداء عند إضافة أشكال إلى ملفات PDF</h2>
<p>إضافة العديد من الكائنات المتجهية يمكن أن تزيد من وقت المعالجة واستخدام الذاكرة. اتبع هذه الإرشادات:</p>
<ul>
<li><strong>الرسم المتسلسل:</strong> تجميع الأشكال المرتبطة في حاوية رسومات واحدة قبل إضافتها إلى الصفحة.</li>
<li><strong>إعادة استخدام الكائنات:</strong> إذا كنت بحاجة إلى أشكال متطابقة في صفحات متعددة، استنسخ شكلًا موجودًا بدلاً من إنشاء نسخ جديدة.</li>
<li><strong>تجنب التكبير الزائد:</strong> حدد الأشكال بالحجم النهائي للعرض لتجنب التحويلات النقطية المكلفة.</li>
<li><strong>تحرير الموارد:</strong> أغلق <code>PdfDocument</code> فورًا لتحرير الموارد الأصلية.</li>
</ul>
<h2 id="الخلاصة">الخلاصة</h2>
<p><a href="https://products.conholdate.com/total/java/">Conholdate.Total for Java</a> يوفّر لمطوري Java طريقة بسيطة لإضافة أشكال إلى مستندات PDF، مما يتيح إنشاء تقارير وفواتير غنية وتفاعلية. باتباع الخطوات ونصائح التكوين وإرشادات الأداء المذكورة في هذا الدليل، يمكنك دمج الرسومات المتجهية في سير عمل PDF الخاص بك بثقة. تذكّر ضرورة الحصول على ترخيص مناسب للاستخدام الإنتاجي؛ يتوفر ترخيص مؤقت للتقييم، وتفاصيل التسعير الكاملة مدرجة في <a href="https://purchase.conholdate.com/pricing/total/family/">صفحة التسعير</a>.</p>
<h2 id="الأسئلة-الشائعة">الأسئلة الشائعة</h2>
<p><strong>كيف يمكنني إضافة خط مخصص إلى الأشكال في ملف PDF؟</strong><br>
يمكنك تضمين خط TrueType باستخدام <code>pdf.getFonts().addFont(&quot;MyFont.ttf&quot;)</code> ثم تعيينه إلى الشكل عبر <code>setFont(myFont)</code>. يضمن SDK تضمين الخط في ملف PDF النهائي.</p>
<p><strong>هل من الممكن إدراج أشكال في ملف PDF موجود دون فقدان المحتوى الحالي؟</strong><br>
نعم. فتح ملف PDF باستخدام <code>PdfDocument.open()</code> يحافظ على جميع الصفحات والكائنات الموجودة. إضافة الأشكال إلى مجموعة الرسومات الخاصة بالصفحة تُضيف إلى الصفحة فقط؛ ولا تُستبدل المحتوى الحالي.</p>
<p><strong>ما هي صيغ الملفات التي يمكنني تصديرها بعد إضافة الأشكال؟</strong><br>
Conholdate.Total for Java يدعم الحفظ إلى PDF، PDF/A، PDF/X، وكذلك إلى صيغ الصور مثل <a href="https://docs.fileformat.com/image/png/">PNG</a>، <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>، و BMP. استخدم <code>pdf.save(&quot;output.pdf&quot;)</code> أو <code>pdf.save(&quot;output.png&quot;, ImageSaveOptions.Png)</code> حسب الحاجة.</p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
