<?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/vi/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>vi</language>
    <lastBuildDate>Mon, 12 Oct 2026 17:04:44 +0000</lastBuildDate><atom:link href="https://blog-qa.groupdocs.cloud/vi/tag/pdf-image-extraction/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Trích xuất hình ảnh từ tài liệu PDF bằng C#</title>
      <link>https://blog-qa.groupdocs.cloud/vi/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/vi/parser/extract-images-from-pdf-documents-in-csharp/</guid>
      <description>Tìm hiểu cách trích xuất hình ảnh từ tài liệu PDF trong C# bằng cách sử dụng GroupDocs.Parser Cloud SDK for .NET. Thực hiện theo hướng dẫn từng bước này với mã, cURL và các mẹo.</description>
      <content:encoded><![CDATA[<p>Việc trích xuất hình ảnh từ tài liệu <a href="https://docs.fileformat.com/pdf">PDF</a> là một yêu cầu thường gặp khi xây dựng các quy trình xử lý tài liệu, đặc biệt là để tạo thumbnail hoặc tái sử dụng đồ họa ở nơi khác. <a href="https://products.groupdocs.cloud/parser/net/">GroupDocs.Parser Cloud SDK for .NET</a> cung cấp một API mạnh mẽ giúp công việc này trở nên đơn giản trong C#. Trong hướng dẫn này, bạn sẽ học cách tải lên một tệp PDF, lấy tất cả các hình ảnh nhúng, lưu chúng cục bộ và tùy chọn xóa tệp trên máy chủ, kèm theo mã đầy đủ và các ví dụ REST.</p>
<h2 id="các-bước-để-trích-xuất-hình-ảnh-từ-tài-liệu-pdf-trong-c">Các bước để trích xuất hình ảnh từ tài liệu PDF trong C#</h2>
<ol>
<li><strong>Upload PDF to GroupDocs Cloud storage</strong>: Sử dụng <code>StorageApi.UploadFile</code> để đặt tệp PDF nguồn lên đám mây.</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>Lệnh này đảm bảo tệp có thể truy cập để phân tích.</p>
<ol start="2">
<li><strong>Yêu cầu hình ảnh tài liệu</strong>: Gọi <code>ParserApi.GetDocumentImages</code> với một <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>Phản hồi chứa một tập hợp các đối tượng <code>ImageInfo</code>, mỗi đối tượng chứa dữ liệu Base64 và siêu dữ liệu. Xem <a href="https://reference.groupdocs.cloud/parser/">Tham chiếu API</a> để biết chi tiết đầy đủ.</p>
<ol start="3">
<li><strong>Giải mã và lưu mỗi hình ảnh</strong>: Duyệt qua <code>imagesResult.Images</code>, chuyển chuỗi Base64 thành mảng byte và ghi tệp ra đĩa.</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>Bảng điều khiển ghi lại tên tệp đã lưu, kích thước và DPI để xác minh.</p>
<ol start="4">
<li><strong>(Tùy chọn) Dọn dẹp PDF từ xa</strong>: Sau khi trích xuất, bạn có thể xóa tệp đã tải lên để giữ cho bộ nhớ sạch sẽ.</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>Bước này được bọc trong khối try‑catch để bỏ qua bất kỳ lỗi dọn dẹp nào.</p>
<ol start="5">
<li><strong>Xem lại đầu ra</strong>: Bảng điều khiển sẽ hiển thị một bản tóm tắt như <code>Total images extracted: 12</code>, xác nhận việc trích xuất thành công.</li>
</ol>
<h2 id="ví-dụ-mã-hoàn-chỉnh-trích-xuất-hình-ảnh-từ-tài-liệu-pdf-bằng-groupdocsparser">Ví dụ mã hoàn chỉnh: Trích xuất hình ảnh từ tài liệu PDF bằng GroupDocs.Parser</h2>
<p>Ví dụ sau đây trình bày quy trình làm việc đầy đủ đã mô tả ở trên. Nó bao gồm cấu hình, tải lên, trích xuất hình ảnh, lưu và dọn dẹp tùy chọn.</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>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.groupdocs.cloud/parser/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.groupdocs.cloud/c/parser/19">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="trích-xuất-hình-ảnh-qua-rest-api-bằng-curl">Trích xuất hình ảnh qua REST API bằng cURL</h2>
<p>Các thao tác tương tự có thể được thực hiện bằng các cuộc gọi REST trực tiếp. Dưới đây là quy trình cURL tối thiểu.</p>
<ol>
<li><strong>Lấy token truy cập</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>Phản hồi chứa <code>access_token</code>.</p>
<ol start="2">
<li><strong>Tải lên PDF</strong> đến bộ nhớ đám mây.</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>Yêu cầu hình ảnh</strong> cho tài liệu đã tải lên.</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>Phản hồi <a href="https://docs.fileformat.com/web/json/">JSON</a> bao gồm một mảng các hình ảnh với <code>base64Data</code>, <code>fileExtension</code>, <code>pageNumber</code>, v.v.</p>
<ol start="4">
<li><strong>Lưu mỗi hình ảnh</strong> cục bộ (ví dụ sử dụng <code>jq</code> và <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>Để biết thêm chi tiết về các điểm cuối và tham số, xem <a href="https://docs.groupdocs.cloud/parser/">tài liệu API chính thức</a>.</p>
<h2 id="chuẩn-bị-môi-trường">Chuẩn bị môi trường</h2>
<ol>
<li>Cài đặt thư viện khách hàng .NET thông qua 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>Gói có sẵn từ <a href="https://releases.groupdocs.cloud/parser/net/">trang tải xuống</a> chính thức.</p>
<ol start="2">
<li>
<p>Đảm bảo rằng bạn đã cài đặt .NET 6.0 hoặc phiên bản mới hơn và có một tài khoản GroupDocs Cloud hợp lệ với thông tin xác thực client.</p>
</li>
<li>
<p>(Tùy chọn) Sao chép kho mẫu để tham khảo:</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="điều-gì-làm-cho-groupdocsparser-phù-hợp-cho-việc-trích-xuất-hình-ảnh">Điều gì làm cho GroupDocs.Parser phù hợp cho việc trích xuất hình ảnh</h2>
<ul>
<li><strong>Truy xuất hình ảnh trực tiếp</strong>: Lệnh <code>GetDocumentImages</code> trả về hình ảnh ở định dạng gốc mà không cần các bước chuyển đổi bổ sung.</li>
<li><strong>Cung cấp dưới dạng Base64</strong>: Hình ảnh được cung cấp dưới dạng chuỗi Base64, giúp dễ dàng giải mã trong bất kỳ ngôn ngữ nào.</li>
<li><strong>Siêu dữ liệu cấp trang</strong>: Mỗi <code>ImageInfo</code> bao gồm số trang, kích thước, độ phân giải và chỉ mục, giúp tổ chức các tài sản đã trích xuất.</li>
<li><strong>Hỗ trợ tất cả các định dạng raster phổ biến</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> và nhiều định dạng khác được giữ nguyên như khi lưu trong PDF.</li>
<li><strong>Xử lý đám mây có khả năng mở rộng</strong>: Các PDF lớn được xử lý trên máy chủ GroupDocs, giảm áp lực bộ nhớ cho ứng dụng của bạn.</li>
</ul>
<h2 id="cấu-hình-tùy-chọn-trích-xuất-hình-ảnh">Cấu hình tùy chọn trích xuất hình ảnh</h2>
<p>Trong khi ví dụ cơ bản hoạt động ngay lập tức, bạn có thể tinh chỉnh yêu cầu:</p>
<ul>
<li><strong>Xác định phạm vi trang</strong>: Thêm <code>pages = &quot;1-5&quot;</code> vào <code>GetDocumentImagesRequest</code> để giới hạn việc trích xuất.</li>
<li><strong>Đặt chất lượng hình ảnh</strong>: Sử dụng tham số <code>imageQuality</code> (0‑100) nếu bạn cần đầu ra <a href="https://docs.fileformat.com/web/compressed/">đã nén</a>.</li>
<li><strong>Lọc theo định dạng</strong>: Cung cấp <code>fileExtensions = [&quot;png&quot;,&quot;jpeg&quot;]</code> để nhận chỉ các định dạng đã chọn.</li>
</ul>
<p>Các tùy chọn này được ghi lại trong <a href="https://reference.groupdocs.cloud/parser/">Tham chiếu API</a>.</p>
<h2 id="kết-luận">Kết luận</h2>
<p>Việc trích xuất hình ảnh từ tài liệu PDF trong C# trở nên đơn giản và đáng tin cậy khi bạn sử dụng <a href="https://products.groupdocs.cloud/parser/net/">GroupDocs.Parser Cloud SDK for .NET</a>. SDK xử lý việc tải lên, phân tích và chuyển đổi sang Base64, cho phép bạn tập trung vào việc lưu tệp và tích hợp chúng vào quy trình làm việc của mình. Hãy nhớ bảo mật thông tin xác thực client, tuân thủ các điều khoản cấp phép, và cân nhắc sử dụng giấy phép tạm thời để đánh giá tại <a href="https://purchase.groupdocs.cloud/temporary-license/">trang giấy phép tạm thời</a>. Với mã và các ví dụ REST được cung cấp, bạn đã sẵn sàng thêm chức năng trích xuất hình ảnh PDF mạnh mẽ vào bất kỳ ứng dụng .NET nào.</p>
<h2 id="câu-hỏi-thường-gặp">Câu hỏi thường gặp</h2>
<p><strong>Làm thế nào để tôi trích xuất hình ảnh từ tài liệu PDF bằng C#?</strong><br>
Sử dụng phương thức <code>GetDocumentImages</code> của Parser API sau khi tải lên PDF bằng <code>StorageApi.UploadFile</code>. Giải mã các chuỗi Base64 trả về và ghi chúng vào đĩa, như được minh họa trong ví dụ mã.</p>
<p><strong>Nếu PDF được bảo vệ bằng mật khẩu thì sao?</strong><br>
Bao gồm mật khẩu trong mô hình yêu cầu. SDK sẽ giải mã tệp trước khi trích xuất hình ảnh. Xem <a href="https://docs.groupdocs.cloud/parser/">tài liệu</a> để biết tên thuộc tính chính xác.</p>
<p><strong>Tôi có thể giới hạn việc trích xuất chỉ ở các trang cụ thể không?</strong><br>
Có, hãy đặt thuộc tính <code>pages</code> trên <code>GetDocumentImagesRequest</code> thành danh sách hoặc phạm vi phân tách bằng dấu phẩy (ví dụ, <code>&quot;1-3,5&quot;</code>). API sẽ trả về hình ảnh chỉ từ các trang đó.</p>
<p><strong>Có giới hạn kích thước nào cho các hình ảnh đã trích xuất không?</strong><br>
SDK trả về dữ liệu hình ảnh gốc mà không thay đổi kích thước. Nếu bạn cần các tệp nhỏ hơn, hãy xử lý hậu kỳ các hình ảnh đã lưu bằng bất kỳ thư viện xử lý hình ảnh nào.</p>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/vi/parser/extract-images-from-pdf-using-csharp/">Trích xuất hình ảnh từ PDF trong C# .NET | API Trình trích xuất hình ảnh PDF</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/parser/extract-images-from-pdf-documents-in-java/">Trích xuất hình ảnh từ tài liệu PDF trong Java</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/parser/extract-text-from-word-document-csharp/">Trích xuất văn bản từ PDF bằng .NET REST API | Trình chuyển đổi tài liệu sang văn bản</a></li>
</ul>
]]></content:encoded>
    </item>
    
    <item>
      <title>Trích xuất hình ảnh từ tài liệu PDF trong Java</title>
      <link>https://blog-qa.groupdocs.cloud/vi/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/vi/parser/extract-images-from-pdf-documents-in-java/</guid>
      <description>Tìm hiểu cách trích xuất hình ảnh từ tài liệu PDF trong Java bằng GroupDocs.Parser Cloud SDK. Hướng dẫn bao gồm cài đặt, ví dụ mã, các lệnh cURL và các thực tiễn tốt nhất.</description>
      <content:encoded><![CDATA[<p>Việc trích xuất hình ảnh từ các tệp <a href="https://docs.fileformat.com/pdf">PDF</a> là một yêu cầu thường gặp khi xây dựng các pipeline xử lý tài liệu, đặc biệt khi bạn cần tái sử dụng đồ họa cho ảnh thu nhỏ, báo cáo hoặc phân tích sâu hơn. <a href="https://products.groupdocs.cloud/parser/java/">GroupDocs.Parser Cloud SDK for Java</a> cung cấp một API đơn giản cho phép bạn lấy mọi hình ảnh nhúng trong PDF chỉ với vài dòng mã. Hướng dẫn này sẽ chỉ cho bạn cách cấu hình SDK, chạy một ví dụ mã hoàn chỉnh, sử dụng cURL cho cùng một nhiệm vụ, và áp dụng các thực tiễn tốt nhất để đảm bảo việc trích xuất hình ảnh PDF đáng tin cậy.</p>
<h2 id="trích-xuất-hình-ảnh-từ-tài-liệu-pdf-trong-java-trong-5-bước">Trích xuất hình ảnh từ tài liệu PDF trong Java trong 5 bước</h2>
<ol>
<li><strong>Cấu hình thông tin xác thực API</strong>: Tạo một đối tượng <code>Configuration</code> và đặt client ID và client secret của bạn.</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>Khởi tạo Parser API</strong>: Xây dựng một <code>ApiClient</code> với cấu hình và khởi tạo <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><strong>Xây dựng yêu cầu trích xuất hình ảnh</strong>: Chỉ định đường dẫn tệp PDF bằng <code>FileInfo</code> và tạo một <code>ExtractImagesRequest</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>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><ol start="4">
<li><strong>Thực hiện trích xuất và lấy các hình ảnh</strong>: Gọi <code>extractImages</code> và lấy danh sách các đối tượng <code>Image</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>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>Lưu mỗi hình ảnh vào bộ nhớ cục bộ</strong>: Duyệt qua bộ sưu tập và ghi dữ liệu nhị phân vào các tệ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><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>Để biết thêm chi tiết về mỗi lớp, hãy tham khảo <a href="https://reference.groupdocs.cloud/parser/">tài liệu API chính thức</a>.</p>
<h2 id="ví-dụ-mã-đầy-đủ-trích-xuất-hình-ảnh-từ-tài-liệu-pdf-trong-java-bằng-groupdocsparser">Ví dụ mã đầy đủ: Trích xuất hình ảnh từ tài liệu PDF trong Java bằng GroupDocs.Parser</h2>
<p>Ví dụ sau đây trình bày quy trình làm việc đầy đủ từ việc thiết lập thông tin xác thực đến việc lưu ảnh.</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>Lưu ý:</strong> Ví dụ mã này minh họa chức năng cốt lõi. Trước khi sử dụng trong dự án của bạn, hãy chắc chắn cập nhật mọi đường dẫn tệp và giá trị cấu hình để phù hợp với môi trường thực tế của bạn, xác minh rằng tất cả các phụ thuộc cần thiết đã được cài đặt đúng cách, và kiểm tra kỹ lưỡng trong môi trường phát triển. Nếu bạn gặp bất kỳ vấn đề nào, vui lòng tham khảo <a href="https://docs.groupdocs.cloud/parser/">tài liệu chính thức</a> hoặc liên hệ với <a href="https://forum.groupdocs.cloud/c/parser/19">đội hỗ trợ</a> để được trợ giúp.</p>
</blockquote>
<h2 id="trích-xuất-hình-ảnh-pdf-qua-curl-và-rest-api">Trích xuất hình ảnh PDF qua cURL và REST API</h2>
<p>Bạn có thể đạt được kết quả tương tự mà không cần viết mã Java bằng cách gọi trực tiếp các endpoint REST của GroupDocs.Parser Cloud.</p>
<ol>
<li><strong>Lấy token truy cập</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>Tải lên tệp 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>Yêu cầu trích xuất hình ảnh</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>Tải xuống hình ảnh đã trích xuất</strong> (phản hồi chứa dữ liệu base64; bạn có thể giải mã nó cục bộ)</li>
</ol>
<p>Để xem danh sách đầy đủ các tham số, hãy tham khảo <a href="https://reference.groupdocs.cloud/parser/">tài liệu API chính thức</a>.</p>
<h2 id="cài-đặt-và-cấu-hình-groupdocsparser-cloud-sdk-for-java">Cài đặt và cấu hình GroupDocs.Parser Cloud SDK for Java</h2>
<p>Thêm phụ thuộc Maven vào <code>pom.xml</code> của bạn (hoặc đoạn mã tương đương cho 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 được cung cấp dưới dạng thư viện đám mây; không cần các tệp nhị phân cục bộ. Tải xuống gói mới nhất từ <a href="https://releases.groupdocs.cloud/parser/java/">trang phát hành</a>. Đảm bảo bạn có Java 8 hoặc cao hơn và một tài khoản GroupDocs Cloud hợp lệ với client ID và secret.</p>
<h2 id="groupdocsparser-cloud-sdk-for-java-các-tính-năng-cho-phép-truy-xuất-hình-ảnh">GroupDocs.Parser Cloud SDK for Java Các tính năng cho phép truy xuất hình ảnh</h2>
<ul>
<li><strong>Trích xuất toàn bộ hình ảnh PDF</strong> - Truy xuất mọi hình ảnh raster và vector được nhúng trong tài liệu.</li>
<li><strong>Siêu dữ liệu cho mỗi hình ảnh</strong> - Trả về tên tệp, kích thước, định dạng và số trang.</li>
<li><strong>Hỗ trợ tất cả các định dạng hình ảnh phổ biến</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>, và hơn nữa.</li>
<li><strong>Tích hợp lưu trữ đám mây</strong> - Hoạt động trực tiếp với các tệp được lưu trữ trong GroupDocs Cloud mà không cần tải xuống trước.</li>
<li><strong>Xử lý dựa trên REST có khả năng mở rộng</strong> - Xử lý các PDF lớn và khối lượng công việc cao thông qua API đám mây.</li>
</ul>
<h2 id="tinh-chỉnh-cài-đặt-trích-xuất-hình-ảnh">Tinh chỉnh cài đặt trích xuất hình ảnh</h2>
<p>Trong khi yêu cầu cơ bản hoạt động ngay lập tức, bạn có thể điều chỉnh các tùy chọn như:</p>
<ul>
<li><strong>Bảo vệ bằng mật khẩu</strong> - Đặt thuộc tính <code>password</code> trên <code>FileInfo</code> cho các PDF được mã hóa.</li>
<li><strong>Phạm vi trang</strong> - Giới hạn việc trích xuất chỉ các trang cụ thể bằng cách thêm một mảng <code>pages</code> vào JSON yêu cầu.</li>
<li><strong>Chuyển đổi định dạng hình ảnh</strong> - Yêu cầu chuyển đổi sang định dạng khác bằng cách chỉ định loại đầu ra mong muốn trong yêu cầu (tham khảo <a href="https://reference.groupdocs.cloud/parser/">API reference</a> để biết các trường chính xác).</li>
</ul>
<p>Ví dụ về việc đặt mật khẩu (trích từ mã chính):</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="mẹo-thực-tế-để-trích-xuất-hình-ảnh-pdf-một-cách-hiệu-quả">Mẹo thực tế để trích xuất hình ảnh PDF một cách hiệu quả</h2>
<ul>
<li><strong>Xác thực sự tồn tại của tệp</strong> trước khi gửi yêu cầu để tránh các cuộc gọi API không cần thiết.</li>
<li><strong>Xử lý hình ảnh trong luồng</strong> khi làm việc với các tệp lớn để giảm tiêu thụ bộ nhớ.</li>
<li><strong>Sử dụng phân trang</strong> nếu bạn chỉ cần hình ảnh từ các trang nhất định; điều này sẽ tăng tốc phản hồi.</li>
<li><strong>Xử lý giới hạn tốc độ API</strong> bằng cách triển khai cơ chế back‑off theo cấp số nhân khi nhận phản hồi HTTP 429.</li>
<li><strong>Ghi lại tên mỗi tệp đã lưu</strong> để đơn giản hoá việc khắc phục sự cố và theo dõi audit.</li>
</ul>
<h2 id="kết-luận">Kết luận</h2>
<p>Việc trích xuất hình ảnh từ tài liệu PDF trong Java trở nên đơn giản và đáng tin cậy khi bạn tận dụng sức mạnh của <a href="https://products.groupdocs.cloud/parser/java/">GroupDocs.Parser Cloud SDK for Java</a>. SDK xử lý việc quản lý chứng thực, tương tác lưu trữ đám mây và giải mã hình ảnh, cho phép bạn tập trung vào logic ứng dụng của mình. Đối với triển khai sản xuất, hãy mua giấy phép phù hợp trên <a href="https://purchase.groupdocs.cloud/temporary-license/">trang giá</a> hoặc nhận giấy phép tạm thời để đánh giá. Với ví dụ mã, hướng dẫn cURL và các khuyến nghị thực tiễn tốt nhất trong bài viết này, bạn đã sẵn sàng tích hợp việc trích xuất hình ảnh PDF vào bất kỳ giải pháp nào dựa trên Java.</p>
<h2 id="faqs">FAQs</h2>
<ul>
<li>
<p><strong>Các định dạng nào có thể được trích xuất từ PDF?</strong><br>
SDK trích xuất các định dạng raster như PNG, JPG, BMP, GIF và TIFF, cũng như đồ họa vector khi chúng được lưu dưới dạng hình ảnh.</p>
</li>
<li>
<p><strong>Có cần tải xuống PDF trước khi trích xuất hình ảnh không?</strong><br>
Không. SDK hoạt động trực tiếp với các tệp được lưu trữ trong GroupDocs Cloud storage, loại bỏ nhu cầu tải xuống cục bộ.</p>
</li>
<li>
<p><strong>SDK xử lý các tệp PDF lớn như thế nào?</strong><br>
Việc trích xuất được thực hiện trên phía máy chủ, do đó mức sử dụng bộ nhớ trên máy của bạn vẫn thấp. Bạn cũng có thể giới hạn việc trích xuất chỉ các trang cụ thể để cải thiện hiệu suất.</p>
</li>
<li>
<p><strong>Có cách nào để kiểm tra việc trích xuất mà không cần viết mã không?</strong><br>
Có, bạn có thể sử dụng các lệnh cURL được cung cấp ở trên hoặc thử bảng điều khiển API tương tác trên trang sản phẩm.</p>
</li>
</ul>
<h2 id="read-more">Read More</h2>
<ul>
<li><a href="https://blog.groupdocs.cloud/vi/parser/extract-images-from-pdf-files-in-java-using-rest-api/">Trích xuất hình ảnh từ tệp PDF trong Java bằng REST API</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/parser/extract-images-from-word-documents-programmatically-in-java/">Trích xuất hình ảnh từ tài liệu Word một cách lập trình trong Java</a></li>
<li><a href="https://blog.groupdocs.cloud/vi/parser/extract-images-from-pdf-documents-using-python/">Trích xuất hình ảnh từ tài liệu PDF bằng Python</a></li>
</ul>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
