<?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 image extraction on Document Processing REST APIs | GroupDocs Cloud</title>
    <link>https://blog-qa.groupdocs.cloud/ar/tag/pdf-image-extraction/</link>
    <description>Recent content in pdf image extraction on Document Processing REST APIs | GroupDocs Cloud</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ar</language>
    <lastBuildDate>Mon, 12 Oct 2026 17:04:44 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/ar/tag/pdf-image-extraction/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>استخراج الصور من مستندات PDF باستخدام C#</title>
      <link>https://blog-qa.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-csharp/</link>
      <pubDate>Mon, 12 Oct 2026 17:04:44 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-csharp/</guid>
      <description>تعلم كيفية استخراج الصور من مستندات PDF باستخدام C# و GroupDocs.Parser Cloud SDK for .NET. اتبع هذا الدليل خطوة بخطوة مع الشيفرة، cURL والنصائح.</description>
      <content:encoded><![CDATA[<p>استخراج الصور من مستندات <a href="https://docs.fileformat.com/pdf">PDF</a> هو طلب شائع عند بناء خطوط معالجة المستندات، خاصةً لتوليد الصور المصغرة أو إعادة استخدام الرسومات في أماكن أخرى. يوفر <a href="https://products.groupdocs.cloud/parser/net/">GroupDocs.Parser Cloud SDK for .NET</a> واجهة برمجة تطبيقات قوية تجعل هذه المهمة سهلة في C#. في هذا الدليل ستتعلم كيفية رفع ملف PDF، استرجاع جميع الصور المضمنة، حفظها محليًا، وإزالة الملف البعيد اختياريًا، مع أمثلة كاملة على الشيفرة وREST.</p>
<h2 id="خطوات-استخراج-الصور-من-مستندات-pdf-في-c">خطوات استخراج الصور من مستندات PDF في C#</h2>
<ol>
<li><strong>رفع PDF إلى GroupDocs Cloud storage</strong>: استخدم <code>StorageApi.UploadFile</code> لوضع ملف PDF المصدر في السحابة.</li>
</ol>
<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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> uploadRequest = <span style="color:#66d9ef">new</span> UploadFileRequest(remotePdfPath, File.ReadAllBytes(localPdfPath));
</span></span><span style="display:flex;"><span>storageApi.UploadFile(uploadRequest);
</span></span></code></pre></div><p>يضمن هذا الاستدعاء أن يكون الملف متاحًا للتحليل.</p>
<ol start="2">
<li><strong>طلب صور المستند</strong>: استدعِ <code>ParserApi.GetDocumentImages</code> مع <code>GetDocumentImagesRequest</code>.</li>
</ol>
<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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> imagesRequest = <span style="color:#66d9ef">new</span> GetDocumentImagesRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>ImagesResult imagesResult = parserApi.GetDocumentImages(imagesRequest);
</span></span></code></pre></div><p>الاستجابة تحتوي على مجموعة من كائنات <code>ImageInfo</code>، كل منها يحمل بيانات Base64 وبيانات التعريف الوصفية. راجع <a href="https://reference.groupdocs.cloud/parser/">مرجع API</a> للحصول على التفاصيل الكاملة.</p>
<ol start="3">
<li><strong>فك الترميز وحفظ كل صورة</strong>: قم بالتكرار عبر <code>imagesResult.Images</code>، وحول سلسلة Base64 إلى مصفوفة بايت، واكتب الملف إلى القرص.</li>
</ol>
<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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">foreach</span> (ImageInfo imgInfo <span style="color:#66d9ef">in</span> imagesResult.Images)
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">byte</span>[] imageBytes = Convert.FromBase64String(imgInfo.Base64Data);
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">string</span> extension = imgInfo.FileExtension?.TrimStart(<span style="color:#e6db74">&#39;.&#39;</span>).ToLower() ?? <span style="color:#e6db74">&#34;bin&#34;</span>;
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">string</span> fileName = <span style="color:#e6db74">$&#34;extracted_page{imgInfo.PageNumber}_img{imgInfo.ImageIndex}_{imageCounter}.{extension}&#34;</span>;
</span></span><span style="display:flex;"><span>    File.WriteAllBytes(fileName, imageBytes);
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><p>تسجل وحدة التحكم اسم الملف المحفوظ والأبعاد و DPI للتحقق.</p>
<ol start="4">
<li><strong>(اختياري) تنظيف PDF عن بُعد</strong>: بعد الاستخراج قد تحتاج إلى حذف الملف الذي تم تحميله للحفاظ على تنظيم التخزين.</li>
</ol>
<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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">var</span> deleteRequest = <span style="color:#66d9ef">new</span> DeleteFileRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>storageApi.DeleteFile(deleteRequest);
</span></span></code></pre></div><p>هذه الخطوة موضوعة داخل كتلة try‑catch لتجاهل أي أخطاء في عملية التنظيف.</p>
<ol start="5">
<li><strong>مراجعة الإخراج</strong>: ستعرض وحدة التحكم ملخصًا مثل <code>Total images extracted: 12</code>، لتأكيد نجاح الاستخراج.</li>
</ol>
<h2 id="مثال-كامل-للكود-استخراج-الصور-من-مستندات-pdf-باستخدام-groupdocsparser">مثال كامل للكود: استخراج الصور من مستندات PDF باستخدام GroupDocs.Parser</h2>
<p>يوضح المثال التالي سير العمل الكامل الموضح أعلاه. يتضمن التكوين، والتحميل، واستخراج الصور، والحفظ، والتنظيف الاختياري.</p>
<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-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.IO;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Api;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Client;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Model;
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> GroupDocs.Parser.Cloud.Sdk.Model.Requests;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> ExtractImagesFromPdf
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Program</span>
</span></span><span style="display:flex;"><span>    {
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> Main(<span style="color:#66d9ef">string</span>[] args)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Configuration – replace with your actual credentials</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> config = <span style="color:#66d9ef">new</span> Configuration
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                ClientId = <span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span>,
</span></span><span style="display:flex;"><span>                ClientSecret = <span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span>
</span></span><span style="display:flex;"><span>            };
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// APIs</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> storageApi = <span style="color:#66d9ef">new</span> StorageApi(config);
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">var</span> parserApi = <span style="color:#66d9ef">new</span> ParserApi(config);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Input PDF path (local) and remote name in storage</span>
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">string</span> localPdfPath = <span style="color:#e6db74">&#34;input.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">const</span> <span style="color:#66d9ef">string</span> remotePdfPath = <span style="color:#e6db74">&#34;input.pdf&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 1. Upload PDF to GroupDocs Cloud storage (if not already there)</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">if</span> (!File.Exists(localPdfPath))
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">throw</span> <span style="color:#66d9ef">new</span> FileNotFoundException(<span style="color:#e6db74">$&#34;Local file not found: {localPdfPath}&#34;</span>);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> uploadRequest = <span style="color:#66d9ef">new</span> UploadFileRequest(remotePdfPath, File.ReadAllBytes(localPdfPath));
</span></span><span style="display:flex;"><span>                storageApi.UploadFile(uploadRequest);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 2. Retrieve document images (all pages)</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">var</span> imagesRequest = <span style="color:#66d9ef">new</span> GetDocumentImagesRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>                ImagesResult imagesResult = parserApi.GetDocumentImages(imagesRequest);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 3. Save each extracted image to disk</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">int</span> imageCounter = <span style="color:#ae81ff">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">foreach</span> (ImageInfo imgInfo <span style="color:#66d9ef">in</span> imagesResult.Images)
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#75715e">// Image data is returned as Base64 string</span>
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">byte</span>[] imageBytes = Convert.FromBase64String(imgInfo.Base64Data);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build a descriptive file name</span>
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">string</span> extension = imgInfo.FileExtension?.TrimStart(<span style="color:#e6db74">&#39;.&#39;</span>).ToLower() ?? <span style="color:#e6db74">&#34;bin&#34;</span>;
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">string</span> fileName = <span style="color:#e6db74">$&#34;extracted_page{imgInfo.PageNumber}_img{imgInfo.ImageIndex}_{imageCounter}.{extension}&#34;</span>;
</span></span><span style="display:flex;"><span>                    File.WriteAllBytes(fileName, imageBytes);
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Saved: {fileName} ({imgInfo.Width}x{imgInfo.Height} px, {imgInfo.Resolution} DPI)&#34;</span>);
</span></span><span style="display:flex;"><span>                    imageCounter++;
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>Console.WriteLine(<span style="color:#e6db74">$&#34;Total images extracted: {imageCounter}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (ApiException apiEx)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.Error.WriteLine(<span style="color:#e6db74">$&#34;GroupDocs API error: {apiEx.ErrorCode} - {apiEx.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">catch</span> (Exception ex)
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                Console.Error.WriteLine(<span style="color:#e6db74">$&#34;Unexpected error: {ex.Message}&#34;</span>);
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">finally</span>
</span></span><span style="display:flex;"><span>            {
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// 4. Optional cleanup – delete the uploaded PDF from storage</span>
</span></span><span style="display:flex;"><span>                <span style="color:#75715e">// -------------------------------------------------</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">try</span>
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#66d9ef">var</span> deleteRequest = <span style="color:#66d9ef">new</span> DeleteFileRequest(remotePdfPath);
</span></span><span style="display:flex;"><span>                    storageApi.DeleteFile(deleteRequest);
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">catch</span>
</span></span><span style="display:flex;"><span>                {
</span></span><span style="display:flex;"><span>                    <span style="color:#75715e">// Ignored – cleanup is optional</span>
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>            }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>    }
</span></span><span style="display:flex;"><span>}
</span></span></code></pre></div><blockquote>
<p><strong>ملاحظة:</strong> يوضح مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتطابق بيئتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى <a href="https://docs.groupdocs.cloud/parser/">التوثيق الرسمي</a> أو التواصل مع <a href="https://forum.groupdocs.cloud/c/parser/19">فريق الدعم</a> للحصول على المساعدة.</p>
</blockquote>
<h2 id="استخراج-الصور-عبر-واجهة-برمجة-التطبيقات-rest-باستخدام-curl">استخراج الصور عبر واجهة برمجة التطبيقات REST باستخدام cURL</h2>
<p>يمكن تنفيذ العملية نفسها باستخدام استدعاءات REST مباشرة. أدناه سير عمل cURL بسيط.</p>
<ol>
<li><strong>الحصول على رمز وصول</strong> (OAuth 2.0 client credentials grant).</li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/oauth2/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/x-www-form-urlencoded&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#34;grant_type=client_credentials&amp;client_id=YOUR_CLIENT_ID&amp;client_secret=YOUR_CLIENT_SECRET&#34;</span>
</span></span></code></pre></div><p>الاستجابة تحتوي على <code>access_token</code>.</p>
<ol start="2">
<li><strong>رفع ملف PDF</strong> إلى التخزين السحابي.</li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X PUT <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/input.pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     --data-binary <span style="color:#e6db74">&#34;@input.pdf&#34;</span>
</span></span></code></pre></div><ol start="3">
<li><strong>طلب الصور</strong> للمستند المرفوع.</li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/parser/input.pdf/images&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span>
</span></span></code></pre></div><p>استجابة <a href="https://docs.fileformat.com/web/json/">JSON</a> تتضمن مصفوفة من الصور مع <code>base64Data</code>، <code>fileExtension</code>، <code>pageNumber</code>، إلخ.</p>
<ol start="4">
<li><strong>احفظ كل صورة</strong> محليًا (مثال باستخدام <code>jq</code> و <code>base64</code>).</li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X GET <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/parser/input.pdf/images&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     jq -r <span style="color:#e6db74">&#39;.images[] | &#34;\(.pageNumber)_\(.imageIndex).\(.fileExtension) \(.base64Data)&#34;&#39;</span> | <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     <span style="color:#66d9ef">while</span> read filename b64; <span style="color:#66d9ef">do</span>
</span></span><span style="display:flex;"><span>         echo <span style="color:#e6db74">&#34;</span>$b64<span style="color:#e6db74">&#34;</span> | base64 -d &gt; <span style="color:#e6db74">&#34;</span>$filename<span style="color:#e6db74">&#34;</span>
</span></span><span style="display:flex;"><span>     <span style="color:#66d9ef">done</span>
</span></span></code></pre></div><p>لمزيد من التفاصيل حول نقاط النهاية والمعلمات، راجع <a href="https://docs.groupdocs.cloud/parser/">وثائق API الرسمية</a>.</p>
<h2 id="إعداد-البيئة">إعداد البيئة</h2>
<ol>
<li>قم بتثبيت مكتبة العميل .NET عبر NuGet:</li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>dotnet add package GroupDocs.Parser-Cloud
</span></span></code></pre></div><p>الحزمة متاحة من صفحة التحميل الرسمية <a href="https://releases.groupdocs.cloud/parser/net/">صفحة التحميل</a>.</p>
<ol start="2">
<li>
<p>تأكد من أنك قمت بتثبيت .NET 6.0 أو أحدث ولديك حساب GroupDocs Cloud صالح مع بيانات اعتماد العميل.</p>
</li>
<li>
<p>(اختياري) استنساخ مستودع العينة للرجوع إليه:</p>
<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-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/groupdocs-parser-cloud/groupdocs-parser-cloud-dotnet.git
</span></span></code></pre></div></li>
</ol>
<h2 id="ما-الذي-يجعل-groupdocsparser-مناسبا-لاستخراج-الصور">ما الذي يجعل GroupDocs.Parser مناسبًا لاستخراج الصور</h2>
<ul>
<li><strong>استرجاع الصور مباشرة</strong>: استدعاء <code>GetDocumentImages</code> يُعيد الصور بصيغتها الأصلية دون خطوات تحويل إضافية.</li>
<li><strong>تسليم Base64</strong>: تُقدم الصور كسلاسل Base64، مما يجعل من السهل فك تشفيرها بأي لغة.</li>
<li><strong>البيانات الوصفية على مستوى الصفحة</strong>: كل <code>ImageInfo</code> يتضمن رقم الصفحة، الأبعاد، الدقة والفهرس، مما يساعد على تنظيم الأصول المستخرجة.</li>
<li><strong>دعم جميع صيغ الصور النقطية الشائعة</strong>: <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpeg/">JPEG</a>, <a href="https://docs.fileformat.com/image/bmp/">BMP</a>, <a href="https://docs.fileformat.com/image/gif/">GIF</a>, <a href="https://docs.fileformat.com/image/tiff/">TIFF</a> وغيرها تُحفظ تمامًا كما هي مخزنة في PDF.</li>
<li><strong>معالجة سحابية قابلة للتوسع</strong>: يتم معالجة ملفات PDF الكبيرة على خوادم GroupDocs، مما يقلل من ضغط الذاكرة على تطبيقك.</li>
</ul>
<h2 id="تكوين-خيارات-استخراج-الصور">تكوين خيارات استخراج الصور</h2>
<p>بينما يعمل المثال الأساسي مباشرةً، يمكنك ضبط الطلب بدقة.</p>
<ul>
<li><strong>تحديد نطاق الصفحات</strong>: أضف <code>pages = &quot;1-5&quot;</code> إلى <code>GetDocumentImagesRequest</code> لتقييد الاستخراج.</li>
<li><strong>ضبط جودة الصورة</strong>: استخدم معامل <code>imageQuality</code> (0‑100) إذا كنت بحاجة إلى مخرجات <a href="https://docs.fileformat.com/web/compressed/">مضغوطة</a>.</li>
<li><strong>تصفية حسب الصيغة</strong>: قدّم <code>fileExtensions = [&quot;png&quot;,&quot;jpeg&quot;]</code> لتلقي الصيغ المحددة فقط.</li>
</ul>
<p>تم توثيق هذه الخيارات في <a href="https://reference.groupdocs.cloud/parser/">مرجع API</a>.</p>
<h2 id="الخلاصة">الخلاصة</h2>
<p>استخراج الصور من مستندات PDF في C# يصبح عملية بسيطة وموثوقة عندما تستخدم <a href="https://products.groupdocs.cloud/parser/net/">GroupDocs.Parser Cloud SDK for .NET</a>. يتعامل SDK مع التحميل والتحليل وتحويل Base64، مما يتيح لك التركيز على حفظ الملفات ودمجها في سير عملك. تذكر تأمين بيانات اعتماد العميل الخاصة بك، واحترام شروط الترخيص، والنظر في الحصول على ترخيص مؤقت للتقييم عبر <a href="https://purchase.groupdocs.cloud/temporary-license/">صفحة الترخيص المؤقت</a>. مع الشيفرة وأمثلة REST المقدمة، أنت جاهز لإضافة استخراج صور PDF قوي إلى أي تطبيق .NET.</p>
<h2 id="الأسئلة-المتكررة">الأسئلة المتكررة</h2>
<p><strong>كيف يمكنني استخراج الصور من مستندات PDF باستخدام C#؟</strong><br>
استخدم طريقة <code>GetDocumentImages</code> في واجهة برمجة تطبيقات Parser بعد رفع ملف PDF باستخدام <code>StorageApi.UploadFile</code>. فكّ الترميز Base64 للنتائج واكتبها إلى القرص، كما هو موضح في مثال الشيفرة.</p>
<p><strong>ماذا لو كان ملف PDF محميًا بكلمة مرور؟</strong><br>
قم بتضمين كلمة المرور في نموذج الطلب. سيقوم SDK بفك تشفير الملف قبل استخراج الصور. راجع <a href="https://docs.groupdocs.cloud/parser/">التوثيق</a> للحصول على اسم الخاصية الدقيق.</p>
<p><strong>هل يمكنني تحديد استخراج الصفحات المحددة؟</strong><br>
نعم، قم بتعيين خاصية <code>pages</code> في <code>GetDocumentImagesRequest</code> إلى قائمة مفصولة بفواصل أو نطاق (مثال: <code>&quot;1-3,5&quot;</code>). سيعيد الـ API الصور فقط من تلك الصفحات.</p>
<p><strong>هل هناك أي حدود لحجم الصور المستخرجة؟</strong><br>
يعيد SDK بيانات الصورة الأصلية دون تعديل الحجم. إذا كنت بحاجة إلى ملفات أصغر، قم بمعالجة الصور المحفوظة لاحقًا باستخدام أي مكتبة معالجة صور.</p>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-pdf-using-csharp/">استخراج الصور من PDF باستخدام C# .NET | PDF Image Extractor API</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-java/">استخراج الصور من مستندات PDF في Java</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-text-from-word-document-csharp/">استخراج النص من PDF باستخدام .NET REST API | محول المستند إلى نص</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>استخراج الصور من مستندات PDF باستخدام Java</title>
      <link>https://blog-qa.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-java/</link>
      <pubDate>Fri, 02 Oct 2026 10:36:06 +0000</pubDate>
      
      <guid>https://blog-qa.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-in-java/</guid>
      <description>تعلم كيفية استخراج الصور من مستندات PDF باستخدام Java و GroupDocs.Parser Cloud SDK. يغطي الدليل الإعداد، مثال الشيفرة، استدعاءات cURL، وأفضل الممارسات.</description>
      <content:encoded><![CDATA[<p>استخراج الصور من ملفات <a href="https://docs.fileformat.com/pdf">PDF</a> هو طلب شائع عند بناء خطوط معالجة المستندات، خاصة عندما تحتاج إلى إعادة استخدام الرسومات للصور المصغرة، التقارير، أو التحليل الإضافي. يوفر <a href="https://products.groupdocs.cloud/parser/java/">GroupDocs.Parser Cloud SDK for Java</a> واجهة برمجة تطبيقات بسيطة تتيح لك سحب كل صورة مدمجة من ملف PDF ببضع أسطر من الشيفرة فقط. يشرح هذا الدليل كيفية تكوين SDK، تشغيل مثال كامل للكود، استخدام cURL لنفس المهمة، وتطبيق أفضل الممارسات لضمان استخراج موثوق للصور من PDF.</p>
<h2 id="استخراج-الصور-من-مستندات-pdf-في-java-في-5-خطوات">استخراج الصور من مستندات PDF في Java في 5 خطوات</h2>
<ol>
<li><strong>تكوين بيانات اعتماد API</strong>: إنشاء كائن <code>Configuration</code> وتعيين معرف العميل والسر الخاص بك.</li>
</ol>
<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>Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>config<span style="color:#f92672">.</span><span style="color:#a6e22e">setClientId</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>config<span style="color:#f92672">.</span><span style="color:#a6e22e">setClientSecret</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="2">
<li><strong>تهيئة Parser API</strong>: إنشاء <code>ApiClient</code> باستخدام التكوين وإنشاء مثيل لـ <code>ParserApi</code>.</li>
</ol>
<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>ApiClient apiClient <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ApiClient<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>ParserApi parserApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ParserApi<span style="color:#f92672">(</span>apiClient<span style="color:#f92672">);</span>
</span></span></code></pre></div><ol start="3">
<li>
<p><strong>إنشاء طلب استخراج الصور</strong>: حدد مسار ملف PDF باستخدام <code>FileInfo</code> وأنشئ <code>ExtractImagesRequest</code>.</p>
<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>String inputFilePath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.pdf&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>ExtractImagesRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ExtractImagesRequest<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">().</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span>inputFilePath<span style="color:#f92672">));</span>
</span></span></code></pre></div></li>
<li>
<p><strong>تنفيذ الاستخراج واسترجاع الصور</strong>: استدعِ <code>extractImages</code> واحصل على قائمة كائنات <code>Image</code>.</p>
</li>
</ol>
<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>ImagesResult imagesResult <span style="color:#f92672">=</span> parserApi<span style="color:#f92672">.</span><span style="color:#a6e22e">extractImages</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>List<span style="color:#f92672">&lt;</span>Image<span style="color:#f92672">&gt;</span> images <span style="color:#f92672">=</span> imagesResult<span style="color:#f92672">.</span><span style="color:#a6e22e">getImages</span><span style="color:#f92672">();</span>
</span></span></code></pre></div><ol start="5">
<li><strong>احفظ كل صورة إلى التخزين المحلي</strong>: قم بالتكرار عبر المجموعة واكتب البيانات الثنائية إلى الملفات.</li>
</ol>
<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:#66d9ef">for</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> 0<span style="color:#f92672">;</span> i <span style="color:#f92672">&lt;</span> images<span style="color:#f92672">.</span><span style="color:#a6e22e">size</span><span style="color:#f92672">();</span> i<span style="color:#f92672">++)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    Image img <span style="color:#f92672">=</span> images<span style="color:#f92672">.</span><span style="color:#a6e22e">get</span><span style="color:#f92672">(</span>i<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>    String outputFileName <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;extracted_image_&#34;</span> <span style="color:#f92672">+</span> <span style="color:#f92672">(</span>i <span style="color:#f92672">+</span> 1<span style="color:#f92672">)</span> <span style="color:#f92672">+</span> <span style="color:#e6db74">&#34;_&#34;</span> <span style="color:#f92672">+</span> img<span style="color:#f92672">.</span><span style="color:#a6e22e">getFileName</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">try</span> <span style="color:#f92672">(</span>FileOutputStream fos <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileOutputStream<span style="color:#f92672">(</span>outputFileName<span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        fos<span style="color:#f92672">.</span><span style="color:#a6e22e">write</span><span style="color:#f92672">(</span>img<span style="color:#f92672">.</span><span style="color:#a6e22e">getData</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Saved image: &#34;</span> <span style="color:#f92672">+</span> outputFileName<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><p>لمزيد من التفاصيل حول كل فئة، راجع <a href="https://reference.groupdocs.cloud/parser/">المرجع الرسمي لواجهة برمجة التطبيقات</a>.</p>
<h2 id="مثال-كامل-على-الكود-استخراج-الصور-من-مستندات-pdf-باستخدام-java-و-groupdocsparser">مثال كامل على الكود: استخراج الصور من مستندات PDF باستخدام Java و GroupDocs.Parser</h2>
<p>يوضح المثال التالي سير العمل الكامل من إعداد الاعتماد إلى حفظ الصورة.</p>
<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.groupdocs.parser.cloud.ApiClient<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.parser.cloud.Configuration<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.parser.cloud.api.ParserApi<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.parser.cloud.model.FileInfo<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.parser.cloud.model.Image<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.parser.cloud.model.ImagesResult<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> com.groupdocs.parser.cloud.model.requests.ExtractImagesRequest<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.io.FileOutputStream<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">import</span> java.util.List<span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">ExtractImagesFromPdf</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">void</span> <span style="color:#a6e22e">main</span><span style="color:#f92672">(</span>String<span style="color:#f92672">[]</span> args<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// Configure API credentials
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        Configuration config <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> Configuration<span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        config<span style="color:#f92672">.</span><span style="color:#a6e22e">setClientId</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_ID&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        config<span style="color:#f92672">.</span><span style="color:#a6e22e">setClientSecret</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;YOUR_CLIENT_SECRET&#34;</span><span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        <span style="color:#75715e">// config.setBaseUrl(&#34;https://api.groupdocs.cloud&#34;); // optional, if needed
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Initialize API client and Parser API
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ApiClient apiClient <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ApiClient<span style="color:#f92672">(</span>config<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>        ParserApi parserApi <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ParserApi<span style="color:#f92672">(</span>apiClient<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Path to the PDF file stored in GroupDocs Cloud storage
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        String inputFilePath <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;input.pdf&#34;</span><span style="color:#f92672">;</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Build request for image extraction
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>        ExtractImagesRequest request <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> ExtractImagesRequest<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>                <span style="color:#f92672">.</span><span style="color:#a6e22e">setFileInfo</span><span style="color:#f92672">(</span><span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">().</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span>inputFilePath<span style="color:#f92672">));</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">try</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            <span style="color:#75715e">// Perform extraction
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            ImagesResult imagesResult <span style="color:#f92672">=</span> parserApi<span style="color:#f92672">.</span><span style="color:#a6e22e">extractImages</span><span style="color:#f92672">(</span>request<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            List<span style="color:#f92672">&lt;</span>Image<span style="color:#f92672">&gt;</span> images <span style="color:#f92672">=</span> imagesResult<span style="color:#f92672">.</span><span style="color:#a6e22e">getImages</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#75715e">// Save each extracted image to local disk
</span></span></span><span style="display:flex;"><span><span style="color:#75715e"></span>            <span style="color:#66d9ef">for</span> <span style="color:#f92672">(</span><span style="color:#66d9ef">int</span> i <span style="color:#f92672">=</span> 0<span style="color:#f92672">;</span> i <span style="color:#f92672">&lt;</span> images<span style="color:#f92672">.</span><span style="color:#a6e22e">size</span><span style="color:#f92672">();</span> i<span style="color:#f92672">++)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                Image img <span style="color:#f92672">=</span> images<span style="color:#f92672">.</span><span style="color:#a6e22e">get</span><span style="color:#f92672">(</span>i<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>                String outputFileName <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;extracted_image_&#34;</span> <span style="color:#f92672">+</span> <span style="color:#f92672">(</span>i <span style="color:#f92672">+</span> 1<span style="color:#f92672">)</span> <span style="color:#f92672">+</span> <span style="color:#e6db74">&#34;_&#34;</span> <span style="color:#f92672">+</span> img<span style="color:#f92672">.</span><span style="color:#a6e22e">getFileName</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>                <span style="color:#66d9ef">try</span> <span style="color:#f92672">(</span>FileOutputStream fos <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileOutputStream<span style="color:#f92672">(</span>outputFileName<span style="color:#f92672">))</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>                    fos<span style="color:#f92672">.</span><span style="color:#a6e22e">write</span><span style="color:#f92672">(</span>img<span style="color:#f92672">.</span><span style="color:#a6e22e">getData</span><span style="color:#f92672">());</span>
</span></span><span style="display:flex;"><span>                <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>                System<span style="color:#f92672">.</span><span style="color:#a6e22e">out</span><span style="color:#f92672">.</span><span style="color:#a6e22e">println</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;Saved image: &#34;</span> <span style="color:#f92672">+</span> outputFileName<span style="color:#f92672">);</span>
</span></span><span style="display:flex;"><span>            <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span> <span style="color:#66d9ef">catch</span> <span style="color:#f92672">(</span>Exception e<span style="color:#f92672">)</span> <span style="color:#f92672">{</span>
</span></span><span style="display:flex;"><span>            e<span style="color:#f92672">.</span><span style="color:#a6e22e">printStackTrace</span><span style="color:#f92672">();</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">}</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">}</span>
</span></span></code></pre></div><blockquote>
<p><strong>ملاحظة:</strong> يعرض مثال الشيفرة هذا الوظيفة الأساسية. قبل استخدامه في مشروعك، تأكد من تحديث أي مسارات ملفات وقيم التكوين لتتناسب مع بيئتك الفعلية، وتحقق من أن جميع الاعتمادات المطلوبة مثبتة بشكل صحيح، واختبر بدقة في بيئة التطوير الخاصة بك. إذا واجهت أي مشكلات، يرجى الرجوع إلى <a href="https://docs.groupdocs.cloud/parser/">الوثائق الرسمية</a> أو التواصل مع <a href="https://forum.groupdocs.cloud/c/parser/19">فريق الدعم</a> للحصول على المساعدة.</p>
</blockquote>
<h2 id="استخراج-الصور-من-pdf-عبر-curl-و-rest-api">استخراج الصور من PDF عبر cURL و REST API</h2>
<p>يمكنك تحقيق نفس النتيجة دون كتابة كود Java عن طريق استدعاء نقاط النهاية REST الخاصة بـ GroupDocs.Parser Cloud مباشرةً.</p>
<ol>
<li><strong>الحصول على رمز وصول</strong></li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/connect/token&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/x-www-form-urlencoded&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#34;grant_type=client_credentials&amp;client_id=YOUR_CLIENT_ID&amp;client_secret=YOUR_CLIENT_SECRET&#34;</span>
</span></span></code></pre></div><ol start="2">
<li><strong>رفع ملف PDF</strong></li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/storage/file/upload?path=input.pdf&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>        -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>        -F <span style="color:#e6db74">&#34;file=@/path/to/input.pdf&#34;</span>
</span></span></code></pre></div><ol start="3">
<li><strong>طلب استخراج الصور</strong></li>
</ol>
<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-bash" data-lang="bash"><span style="display:flex;"><span>curl -X POST <span style="color:#e6db74">&#34;https://api.groupdocs.cloud/v2.0/parser/extractImages&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Authorization: Bearer YOUR_ACCESS_TOKEN&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -H <span style="color:#e6db74">&#34;Content-Type: application/json&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span>     -d <span style="color:#e6db74">&#39;{&#34;fileInfo&#34;: {&#34;filePath&#34;: &#34;input.pdf&#34;}}&#39;</span>
</span></span></code></pre></div><ol start="4">
<li><strong>تنزيل الصور المستخرجة</strong> (الاستجابة تحتوي على بيانات base64؛ يمكنك فك تشفيرها محليًا)</li>
</ol>
<p>للحصول على قائمة كاملة بالمعلمات، راجع <a href="https://reference.groupdocs.cloud/parser/">وثائق API الرسمية</a>.</p>
<h2 id="تثبيت-وتكوين-groupdocsparser-cloud-sdk-for-java">تثبيت وتكوين GroupDocs.Parser Cloud SDK for Java</h2>
<p>أضف اعتماد Maven إلى ملف <code>pom.xml</code> الخاص بك (أو المقتطف المكافئ لـ Gradle).</p>
<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;dependency&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;groupId&gt;</span>com.groupdocs<span style="color:#f92672">&lt;/groupId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;artifactId&gt;</span>groupdocs-parser-cloud<span style="color:#f92672">&lt;/artifactId&gt;</span>
</span></span><span style="display:flex;"><span>    <span style="color:#f92672">&lt;version&gt;</span>26.2<span style="color:#f92672">&lt;/version&gt;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">&lt;/dependency&gt;</span>
</span></span></code></pre></div><p>يتم توفير SDK كمكتبة سحابية؛ لا يلزم وجود ملفات تنفيذية محلية. قم بتنزيل أحدث حزمة من <a href="https://releases.groupdocs.cloud/parser/java/">صفحة الإصدار</a>. تأكد من أن لديك Java 8 أو أعلى وحساب GroupDocs Cloud صالح مع معرف العميل والسر.</p>
<h2 id="groupdocsparser-cloud-sdk-for-java-ميزات-تمكين-استرجاع-الصور">GroupDocs.Parser Cloud SDK for Java ميزات تمكين استرجاع الصور</h2>
<ul>
<li><strong>استخراج كامل للصور من PDF</strong> - يسترجع كل صورة نقطية ومتجهة مدمجة في المستند.</li>
<li><strong>البيانات الوصفية لكل صورة</strong> - تُعيد اسم الملف، الحجم، الصيغة، ورقم الصفحة.</li>
<li><strong>دعم لجميع صيغ الصور الشائعة</strong> - <a href="https://docs.fileformat.com/image/png/">PNG</a>, <a href="https://docs.fileformat.com/image/jpg/">JPG</a>, <a href="https://docs.fileformat.com/image/bmp/">BMP</a>, <a href="https://docs.fileformat.com/image/gif/">GIF</a>, <a href="https://docs.fileformat.com/image/tiff/">TIFF</a>, وأكثر.</li>
<li><strong>تكامل تخزين السحابة</strong> - يعمل مباشرةً مع الملفات المخزنة في GroupDocs Cloud دون الحاجة إلى تحميلها أولاً.</li>
<li><strong>معالجة قابلة للتوسع معتمدة على REST</strong> - يتعامل مع ملفات PDF الكبيرة وأحمال العمل ذات الحجم العالي عبر واجهة برمجة التطبيقات السحابية.</li>
</ul>
<h2 id="ضبط-دقيق-لإعدادات-استخراج-الصور">ضبط دقيق لإعدادات استخراج الصور</h2>
<p>بينما يعمل الطلب الأساسي مباشرةً، يمكنك تعديل الخيارات مثل:</p>
<ul>
<li><strong>حماية كلمة المرور</strong> - تعيين خاصية <code>password</code> على <code>FileInfo</code> لملفات PDF المشفرة.</li>
<li><strong>نطاق الصفحات</strong> - تحديد الاستخراج لصفحات معينة عن طريق إضافة مصفوفة <code>pages</code> إلى JSON الخاص بالطلب.</li>
<li><strong>تحويل تنسيق الصورة</strong> - طلب التحويل إلى تنسيق مختلف عن طريق تحديد نوع الإخراج المطلوب في الطلب (راجع <a href="https://reference.groupdocs.cloud/parser/">مرجع API</a> للحصول على الحقول الدقيقة).</li>
</ul>
<p>مثال على تعيين كلمة مرور (مقتطف من الكود الرئيسي):</p>
<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>FileInfo fileInfo <span style="color:#f92672">=</span> <span style="color:#66d9ef">new</span> FileInfo<span style="color:#f92672">()</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">.</span><span style="color:#a6e22e">setFilePath</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;protected.pdf&#34;</span><span style="color:#f92672">)</span>
</span></span><span style="display:flex;"><span>        <span style="color:#f92672">.</span><span style="color:#a6e22e">setPassword</span><span style="color:#f92672">(</span><span style="color:#e6db74">&#34;mySecret&#34;</span><span style="color:#f92672">);</span>
</span></span></code></pre></div><h2 id="نصائح-عملية-لاستخراج-الصور-من-pdf-بكفاءة">نصائح عملية لاستخراج الصور من PDF بكفاءة</h2>
<ul>
<li><strong>تحقق من وجود الملف</strong> قبل إرسال الطلب لتجنب استدعاءات API غير الضرورية.</li>
<li><strong>معالجة الصور في تدفقات</strong> عند التعامل مع ملفات كبيرة لتقليل استهلاك الذاكرة.</li>
<li><strong>استخدام الترقيـم الصفحي</strong> إذا كنت تحتاج فقط إلى صور من صفحات معينة؛ هذا يسرّع الاستجابة.</li>
<li><strong>معالجة حدود معدل API</strong> عن طريق تنفيذ تأخير تصاعدي عند استجابات HTTP 429.</li>
<li><strong>سجل اسم كل ملف محفوظ</strong> لتبسيط استكشاف الأخطاء وتتبع التدقيق.</li>
</ul>
<h2 id="الخلاصة">الخلاصة</h2>
<p>يصبح استخراج الصور من مستندات PDF في Java مهمة بسيطة وموثوقة عندما تستفيد من قوة <a href="https://products.groupdocs.cloud/parser/java/">GroupDocs.Parser Cloud SDK for Java</a>. يتعامل SDK مع إدارة الاعتمادات، والتفاعل مع التخزين السحابي، وفك ترميز الصور، مما يتيح لك التركيز على منطق التطبيق الخاص بك. للنشر في بيئات الإنتاج، قم بشراء ترخيص مناسب من خلال <a href="https://purchase.groupdocs.cloud/temporary-license/">صفحة التسعير</a> أو احصل على ترخيص مؤقت للتقييم. مع مثال الشيفرة، ودليل cURL، وتوصيات أفضل الممارسات في هذه المقالة، أنت جاهز لدمج استخراج صور PDF في أي حل مبني على Java.</p>
<h2 id="الأسئلة-المتكررة">الأسئلة المتكررة</h2>
<ul>
<li>
<p><strong>ما هي الصيغ التي يمكن استخراجها من ملف PDF؟</strong><br>
يستخرج SDK صيغ الصور النقطية مثل PNG و JPG و BMP و GIF و TIFF، بالإضافة إلى الرسومات المتجهة عندما يتم تخزينها كصور.</p>
</li>
<li>
<p><strong>هل أحتاج إلى تنزيل ملف PDF قبل استخراج الصور؟</strong><br>
لا. يعمل SDK مباشرةً مع الملفات المخزنة في تخزين GroupDocs Cloud، مما يلغي الحاجة إلى التنزيلات المحلية.</p>
</li>
<li>
<p><strong>كيف يتعامل SDK مع ملفات PDF الكبيرة؟</strong><br>
يتم تنفيذ الاستخراج على جانب الخادم، لذا يبقى استهلاك الذاكرة على جهازك منخفضًا. يمكنك أيضًا تحديد الاستخراج لصفحات معينة لتحسين الأداء.</p>
</li>
<li>
<p><strong>هل هناك طريقة لاختبار الاستخراج دون كتابة كود؟</strong><br>
نعم، يمكنك استخدام أوامر cURL المذكورة أعلاه أو تجربة وحدة التحكم التفاعلية لواجهة برمجة التطبيقات في صفحة المنتج.</p>
</li>
</ul>
<h2 id="اقرأ-المزيد">اقرأ المزيد</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-pdf-files-in-java-using-rest-api/">استخراج الصور من ملفات PDF في Java باستخدام REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-word-documents-programmatically-in-java/">استخراج الصور من مستندات Word برمجيًا في Java</a></li>
<li><a href="https://blog.groupdocs.cloud/ar/parser/extract-images-from-pdf-documents-using-python/">استخراج الصور من مستندات PDF باستخدام Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
