<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GroupDocs.Cloud</title>
    <description>The latest articles on DEV Community by GroupDocs.Cloud (groupdocs-cloud).</description>
    <link>https://dev.to/groupdocs-cloud</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F13769%2F9ee577c1-de9f-4987-bc00-cc013869966a.png</url>
      <title>DEV Community: GroupDocs.Cloud</title>
      <link>https://dev.to/groupdocs-cloud</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/groupdocs-cloud"/>
    <language>en</language>
    <item>
      <title>Merge Multiple JPG Files into One in Java - Merge JPG to JPG</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Thu, 12 Nov 2026 13:29:33 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/merge-multiple-jpg-files-into-one-in-java-merge-jpg-to-jpg-ej3</link>
      <guid>https://dev.to/groupdocs-cloud/merge-multiple-jpg-files-into-one-in-java-merge-jpg-to-jpg-ej3</guid>
      <description>&lt;p&gt;&lt;em&gt;Merge Multiple JPG Files into One in Java using REST API.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Merging &lt;a href="https://docs.fileformat.com/image/jpeg/" rel="noopener noreferrer"&gt;JPG&lt;/a&gt; images can be a time-consuming and challenging task, especially when you have multiple images to merge. Fortunately, GroupDocs.Merger Cloud SDK for Java can help you to accomplish this task quickly and easily. In this article, we will demonstrate &lt;strong&gt;how to merge multiple JPG files into one in Java using REST API.&lt;/strong&gt; So, let’s get started!&lt;/p&gt;

&lt;p&gt;The following topics shall be covered in this article:&lt;/p&gt;

&lt;h2&gt;
  
  
  Java REST API to Merge JPG Images and SDK Installation
&lt;/h2&gt;

&lt;p&gt;GroupDocs.Merger Cloud SDK for Java is a powerful and versatile tool that helps Java developers to merge, extract, rotate, change the document orientation to portrait or landscape, and modify files in the cloud. It is a cloud-based document manipulation and cross-platform API that supports a &lt;a href="https://docs.groupdocs.cloud/merger/supported-document-formats/" rel="noopener noreferrer"&gt;wide variety of file formats&lt;/a&gt;, including Word, PDF, Excel, PowerPoint, HTML, and many more. The &lt;a href="https://github.com/groupdocs-merger-cloud/groupdocs-merger-cloud-java" rel="noopener noreferrer"&gt;SDK&lt;/a&gt; is easy to use and can be integrated easily into a Java-based application.&lt;/p&gt;

&lt;p&gt;You can either download the API’s JAR file or install it using Maven by adding the following repository and dependency into your project’s pom.xml file:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maven Repository:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;repository&amp;gt;
    &amp;lt;id&amp;gt;groupdocs-artifact-repository&amp;lt;/id&amp;gt;
    &amp;lt;name&amp;gt;GroupDocs Artifact Repository&amp;lt;/name&amp;gt;
    &amp;lt;url&amp;gt;https://repository.groupdocs.cloud/repo&amp;lt;/url&amp;gt;
&amp;lt;/repository&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Maven Dependency&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.groupdocs&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;groupdocs-merger-cloud&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;23.2&amp;lt;/version&amp;gt;
    &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, you need to &lt;a href="https://dashboard.groupdocs.cloud/" rel="noopener noreferrer"&gt;sign up&lt;/a&gt; for a free trial account or purchase a subscription plan on the GroupDocs website and &lt;a href="https://docs.groupdocs.cloud/total/creating-and-managing-application/" rel="noopener noreferrer"&gt;get your API key&lt;/a&gt;. Once you have the &lt;strong&gt;&lt;em&gt;Client Id&lt;/em&gt;&lt;/strong&gt; and &lt;strong&gt;&lt;em&gt;Client Secret&lt;/em&gt;&lt;/strong&gt;, add below code snippet into your Java application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="cp"&gt;# Get your client_id and client_secret from https://dashboard.groupdocs.cloud after registration.&lt;/span&gt;

&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="nc"&gt;ClientId&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="nc"&gt;ClientSecret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="nc"&gt;MyStorage&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"test-internal-storage"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nc"&gt;Configuration&lt;/span&gt; &lt;span class="n"&gt;configuration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ClientId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;ClientSecret&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to Combine JPG Files into One in Java using REST API
&lt;/h2&gt;

&lt;p&gt;Merging JPG images in Java using GroupDocs.Merger Cloud SDK is a straightforward process. Here’s how to do it:&lt;/p&gt;

&lt;h3&gt;
  
  
  Upload the Files
&lt;/h3&gt;

&lt;p&gt;Firstly, upload the JPG files to the cloud using the code example given below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="k"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocsdev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;classes&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;File&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Upload file to the Cloud Storage using Java&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;FileApi&lt;/span&gt; &lt;span class="n"&gt;apiInstance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FileApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;File&lt;/span&gt; &lt;span class="n"&gt;fileStream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;File&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"H:\\groupdocs-cloud-data\\input-sample-file-one.jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;UploadFileRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;UploadFileRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"java-testing\\input-sample-file-one.jpg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fileStream&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;MyStorage&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;FilesUploadResult&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;apiInstance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;uploadFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Expected response type is FilesUploadResult: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getUploaded&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Exception while calling FileApi:"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;printStackTrace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As a result, the uploaded JPG files will be available in the &lt;a href="https://dashboard.groupdocs.cloud/files" rel="noopener noreferrer"&gt;files section&lt;/a&gt; of your dashboard on the cloud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Combine JPG into One File in Java
&lt;/h3&gt;

&lt;p&gt;This section provides step-by-step instructions and an example code snippet for merging JPG images into one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firstly, import the required classes into your Java file.&lt;/li&gt;
&lt;li&gt;Secondly, create an instance of the &lt;strong&gt;&lt;em&gt;&lt;a href="https://apireference.groupdocs.cloud/merger/#/Document" rel="noopener noreferrer"&gt;DocumentApi&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; class.&lt;/li&gt;
&lt;li&gt;Thirdly, create an instance of the &lt;strong&gt;&lt;em&gt;&lt;a href="https://reference.groupdocs.cloud/merger/#/Info/GetInfo" rel="noopener noreferrer"&gt;FileInfo&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; class.&lt;/li&gt;
&lt;li&gt;Next, call the &lt;strong&gt;&lt;em&gt;setFilePath()&lt;/em&gt;&lt;/strong&gt; method and pass the input file path as a parameter.&lt;/li&gt;
&lt;li&gt;Then, create an instance of the &lt;strong&gt;&lt;em&gt;&lt;a href="https://reference.groupdocs.cloud/merger/#/Document/Join" rel="noopener noreferrer"&gt;JoinItem&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; class.&lt;/li&gt;
&lt;li&gt;Now, call the &lt;strong&gt;&lt;em&gt;setFileInfo()&lt;/em&gt;&lt;/strong&gt; method and pass the &lt;em&gt;fileInfo1&lt;/em&gt; parameter.&lt;/li&gt;
&lt;li&gt;Next, create a second instance of the &lt;em&gt;FileInfo&lt;/em&gt; and &lt;em&gt;JoinItem&lt;/em&gt; classes.&lt;/li&gt;
&lt;li&gt;Provide the input file path and &lt;em&gt;fileInfo2&lt;/em&gt; parameters.&lt;/li&gt;
&lt;li&gt;Then, set image join mode to &lt;em&gt;VERTICAL&lt;/em&gt; or &lt;em&gt;HORIZONTAL&lt;/em&gt; .&lt;/li&gt;
&lt;li&gt;Add more JoinItems for merging more than two documents.&lt;/li&gt;
&lt;li&gt;After that, create an instance of the &lt;strong&gt;&lt;em&gt;JoinOptions()&lt;/em&gt;&lt;/strong&gt; class.&lt;/li&gt;
&lt;li&gt;Then, add a comma-separated list of created join items.&lt;/li&gt;
&lt;li&gt;Next, set the output file path.&lt;/li&gt;
&lt;li&gt;Now, create an instance of the &lt;strong&gt;&lt;em&gt;JoinRequest()&lt;/em&gt;&lt;/strong&gt; class and pass the &lt;em&gt;JoinOptions&lt;/em&gt; in the parameter.&lt;/li&gt;
&lt;li&gt;Finally, merge JPG files by calling the &lt;strong&gt;&lt;em&gt;&lt;a href="https://reference.groupdocs.cloud/merger/#/Document/Join" rel="noopener noreferrer"&gt;join()&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt; method of the &lt;em&gt;DocumentApi&lt;/em&gt; and passing the &lt;em&gt;JoinRequest&lt;/em&gt; parameter.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The following code snippet shows &lt;strong&gt;how to merge multiple JPG files into one file in Java using REST API:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="k"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocsdev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;classes&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;util&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Arrays&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;JoinItem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ImageJoinModeEnum&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// How to Combine Multiple JPG Files in Java using REST API.&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

      &lt;span class="c1"&gt;// Create an instance of the Document API&lt;/span&gt;
      &lt;span class="nc"&gt;DocumentApi&lt;/span&gt; &lt;span class="n"&gt;apiInstance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;DocumentApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="c1"&gt;// Prepare the settings&lt;/span&gt;
    &lt;span class="nc"&gt;FileInfo&lt;/span&gt; &lt;span class="n"&gt;fileInfo1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FileInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            
    &lt;span class="n"&gt;fileInfo1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFilePath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"java-testing/input-sample-file-one.jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nc"&gt;JoinItem&lt;/span&gt; &lt;span class="n"&gt;item1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;JoinItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;item1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFileInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileInfo1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nc"&gt;FileInfo&lt;/span&gt; &lt;span class="n"&gt;fileInfo2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FileInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;            
    &lt;span class="n"&gt;fileInfo2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFilePath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"java-testing/input-sample-file-two.jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nc"&gt;JoinItem&lt;/span&gt; &lt;span class="n"&gt;item2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;JoinItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;item2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setFileInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileInfo2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;item2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setImageJoinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ImageJoinModeEnum&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="no"&gt;VERTICAL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nc"&gt;JoinOptions&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;JoinOptions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setJoinItems&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Arrays&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;asList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;item2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setOutputPath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"java-testing/output-sample-file.jpg"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nc"&gt;JoinRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;JoinRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// Get output file path.&lt;/span&gt;
    &lt;span class="nc"&gt;DocumentResult&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;apiInstance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Output file path: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getPath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Exception while calling Java API: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;printStackTrace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see the output in the image below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F64fz6pydaswrlx569fqw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F64fz6pydaswrlx569fqw.jpg" alt="How to Combine multiple JPG images into one image in Java" width="300" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Combine JPG into One File in Java.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Download the File
&lt;/h3&gt;

&lt;p&gt;The above code sample will save the merged JPG file on the cloud. You can download it using the following code sample:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="k"&gt;package&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocsdev&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;classes&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;java&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;io&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;File&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;groupdocs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;merger&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Download File from the Cloud Storage using Java&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

        &lt;span class="nc"&gt;FileApi&lt;/span&gt; &lt;span class="n"&gt;apiInstance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;FileApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

            &lt;span class="nc"&gt;DownloadFileRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;DownloadFileRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"java-testing\\output-sample-one.jpg"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;MyStorage&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;File&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;apiInstance&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;downloadFile&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;out&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Expected response type is downloadFile: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;length&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="nc"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;err&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"Exception while calling FileApi:"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
            &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;printStackTrace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Free Online JPG Images Merger
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How to merge JPG&lt;/strong&gt; &lt;strong&gt;files online for free?&lt;/strong&gt; Please try the free JPG Merger to combine multiple JPG files into one online. This online document merger is developed using the above-mentioned Groupdocs.Merger Cloud APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In this article, we have explored how to merge JPG images into one in Java using GroupDocs.Merger Cloud SDK. The following is what you have learned from this article:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to merge two JPG images into one in Java on the cloud;&lt;/li&gt;
&lt;li&gt;programmatically upload and download the merged file in Java;&lt;/li&gt;
&lt;li&gt;and merge JPG files for free using an online JPG file merger.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, we also provide an &lt;a href="https://reference.groupdocs.cloud/merger/" rel="noopener noreferrer"&gt;API Reference section&lt;/a&gt; that lets you visualize and communicate with our APIs directly through the browser. Java SDK’s complete source code is freely available on &lt;a href="https://github.com/groupdocs-merger-cloud/groupdocs-merger-cloud-java" rel="noopener noreferrer"&gt;Github&lt;/a&gt;. Please check the GroupDocs.Merger Cloud SDK for Java &lt;a href="https://github.com/groupdocs-merger-cloud/groupdocs-merger-cloud-java/tree/master/src/test/java/com/groupdocs/cloud/merger/api" rel="noopener noreferrer"&gt;Examples here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Moreover, we suggest you follow our &lt;a href="https://docs.groupdocs.cloud/merger/getting-started/" rel="noopener noreferrer"&gt;Getting Started guide&lt;/a&gt; for detailed steps and API usage.&lt;/p&gt;

&lt;p&gt;Finally, we keep writing new blog posts on different document operations using REST API. So, please get in touch for the latest updates.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Is the GroupDocs.Merger Cloud SDK free to use?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The GroupDocs.Merger Cloud SDK offers a free trial period, but there are subscription plans available if you want to continue using the SDK after the trial period.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I merge multiple JPG images into one in Java?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can merge and combine JPG files into one in Java using GroupDocs.Merger Cloud SDK for Java.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What file formats does the GroupDocs.Merger Cloud SDK support?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The GroupDocs.Merger Cloud SDK supports a &lt;a href="https://docs.groupdocs.cloud/merger/supported-document-formats/" rel="noopener noreferrer"&gt;wide range of file formats&lt;/a&gt;, including JPG images, Word, PDF, DOCX, XLSX, HTML, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I merge multiple JPG images into a single image using GroupDocs.Merger Cloud SDK for Java?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, GroupDocs.Merger Cloud SDK for Java allows developers to merge multiple JPG images into a single image using its merge feature.&lt;/p&gt;

</description>
      <category>java</category>
      <category>api</category>
      <category>cloud</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Convert Excel Workbook to Text in Python</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Tue, 10 Nov 2026 13:19:01 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/how-to-convert-excel-workbook-to-text-in-python-3p05</link>
      <guid>https://dev.to/groupdocs-cloud/how-to-convert-excel-workbook-to-text-in-python-3p05</guid>
      <description>&lt;p&gt;Extracting raw text from Excel workbooks is a frequent need when building data pipelines or generating simple reports. If you need to know &lt;strong&gt;how to convert Excel Workbook to text in Python&lt;/strong&gt;, the GroupDocs.Conversion Cloud SDK for Python makes it straightforward. This guide walks you through installing the SDK, uploading a workbook, configuring conversion options, and retrieving the plain &lt;a href="https://docs.fileformat.com/word-processing/txt/" rel="noopener noreferrer"&gt;TXT&lt;/a&gt; result. By the end you’ll have a reusable script and a set of cURL commands for REST‑based automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before You Start: Prerequisites and Installation
&lt;/h2&gt;

&lt;p&gt;Before you begin, ensure you have the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.7 or newer installed on your machine.&lt;/li&gt;
&lt;li&gt;An active GroupDocs Cloud account (client ID and client secret).&lt;/li&gt;
&lt;li&gt;Network access to the GroupDocs Cloud endpoints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Install the SDK via pip:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip install groupdocs-conversion-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also download the latest package from the official release page. After installation, set your credentials as environment variables or replace the placeholders in the code later. With the SDK ready, you’re prepared to start the conversion process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building It Step by Step: How to Convert Excel Workbook to Text in Python
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Configure Credentials
&lt;/h3&gt;

&lt;p&gt;First, create a &lt;code&gt;Configuration&lt;/code&gt; object and supply your client ID and secret. This object is used by all subsequent API calls.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;groupdocs_conversion_cloud&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;

&lt;span class="n"&gt;client_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"GROUPDOCS_CLIENT_ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"YOUR_CLIENT_ID"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;client_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"GROUPDOCS_CLIENT_SECRET"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"YOUR_CLIENT_SECRET"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client_id&lt;/span&gt;
&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client_secret&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Configuration&lt;/code&gt; class is documented in the &lt;a href="https://reference.groupdocs.cloud/conversion/" rel="noopener noreferrer"&gt;API reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Upload Excel Workbook
&lt;/h3&gt;

&lt;p&gt;Upload the local Excel file to GroupDocs Cloud storage. This step is optional if your file is already in the cloud.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;groupdocs_conversion_cloud&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nc"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;UploadFileApi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;UploadFileRequest&lt;/span&gt;

&lt;span class="n"&gt;api_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;upload_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;UploadFileApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;local_excel_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sample.xlsx"&lt;/span&gt;
&lt;span class="n"&gt;remote_excel_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sample.xlsx"&lt;/span&gt;

&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;local_excel_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"rb"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;upload_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;UploadFileRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;remote_excel_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;upload_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upload_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;upload_request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;UploadFileApi&lt;/code&gt; handles file transfers; see its documentation for more details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Define Conversion Options
&lt;/h3&gt;

&lt;p&gt;Create a &lt;code&gt;TxtConvertOptions&lt;/code&gt; object to specify any optional parameters such as page range. Then build the &lt;code&gt;ConvertSettings&lt;/code&gt; object that ties everything together.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;groupdocs_conversion_cloud&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nc"&gt;FileInfo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;TxtConvertOptions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;ConvertSettings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;file_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FileInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;file_info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;remote_excel_path&lt;/span&gt;

&lt;span class="n"&gt;txt_options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;TxtConvertOptions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;# txt_options.page_number = 1   # Uncomment to start from a specific page&lt;/span&gt;
&lt;span class="c1"&gt;# txt_options.page_count = 1    # Uncomment to limit the number of pages&lt;/span&gt;

&lt;span class="n"&gt;convert_settings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ConvertSettings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;file_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;file_info&lt;/span&gt;
&lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"txt"&lt;/span&gt;
&lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sample.txt"&lt;/span&gt;
&lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;txt_options&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;TxtConvertOptions&lt;/code&gt; class lets you fine‑tune the conversion; refer to the &lt;a href="https://docs.groupdocs.cloud/conversion/" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt; for all available fields.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Execute Conversion
&lt;/h3&gt;

&lt;p&gt;Call the &lt;code&gt;convert&lt;/code&gt; method of &lt;code&gt;ConvertApi&lt;/code&gt; with the prepared settings. The response contains a URL to download the converted file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;groupdocs_conversion_cloud&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nc"&gt;ConvertApi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;ApiException&lt;/span&gt;

&lt;span class="n"&gt;convert_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ConvertApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;conversion_result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;convert_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Conversion succeeded. Download URL: {conversion_result.url}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nc"&gt;ApiException&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Conversion failed: {e}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the call succeeds, you’ll receive a direct download link for the TXT file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Retrieve Result
&lt;/h3&gt;

&lt;p&gt;Use the URL from the previous step to download the plain text file to your local environment, or process it further in your application.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; You can automate the download with a simple &lt;code&gt;requests.get()&lt;/code&gt; call, handling authentication via the same access token used for the conversion request.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With these steps, you now have a complete workflow for &lt;strong&gt;how to convert Excel Workbook to text in Python&lt;/strong&gt; using the GroupDocs library.&lt;/p&gt;

&lt;h2&gt;
  
  
  Excel Workbook Text Conversion - Complete Code Example
&lt;/h2&gt;

&lt;p&gt;The following example demonstrates the full implementation from start to finish.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;groupdocs_conversion_cloud&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;UploadFileApi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;UploadFileRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;ConvertApi&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;ConvertSettings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;FileInfo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;TxtConvertOptions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nc"&gt;ApiException&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="c1"&gt;# 1. Configure credentials (replace placeholders or set env variables)&lt;/span&gt;
    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="n"&gt;client_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"GROUPDOCS_CLIENT_ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"YOUR_CLIENT_ID"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;client_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getenv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"GROUPDOCS_CLIENT_SECRET"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"YOUR_CLIENT_SECRET"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Configuration&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client_id&lt;/span&gt;
    &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;client_secret&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client_secret&lt;/span&gt;

    &lt;span class="n"&gt;api_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ApiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="c1"&gt;# 2. Upload local Excel workbook to GroupDocs Cloud storage (optional)&lt;/span&gt;
    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="n"&gt;local_excel_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sample.xlsx"&lt;/span&gt;          &lt;span class="c1"&gt;# path to the Excel file on your machine&lt;/span&gt;
    &lt;span class="n"&gt;remote_excel_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sample.xlsx"&lt;/span&gt;         &lt;span class="c1"&gt;# path where the file will be stored in the cloud&lt;/span&gt;

    &lt;span class="n"&gt;upload_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;UploadFileApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;local_excel_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;"rb"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;upload_request&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;UploadFileRequest&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;remote_excel_path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="n"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;upload_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upload_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;upload_request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Uploaded '{local_excel_path}' to cloud storage as '{remote_excel_path}'."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ApiException&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;IOError&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Failed to upload file: {e}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt;

    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="c1"&gt;# 3. Prepare conversion settings to transform Excel → plain text&lt;/span&gt;
    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="n"&gt;convert_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ConvertApi&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_client&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="n"&gt;file_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FileInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;file_info&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;file_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;remote_excel_path&lt;/span&gt;          &lt;span class="c1"&gt;# source file in cloud storage&lt;/span&gt;

    &lt;span class="n"&gt;txt_options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;TxtConvertOptions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="c1"&gt;# (optional) you can limit conversion to specific pages:&lt;/span&gt;
    &lt;span class="c1"&gt;# txt_options.page_number = 1&lt;/span&gt;
    &lt;span class="c1"&gt;# txt_options.page_count = 1&lt;/span&gt;

    &lt;span class="n"&gt;convert_settings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ConvertSettings&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;file_info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;file_info&lt;/span&gt;
    &lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"txt"&lt;/span&gt;                  &lt;span class="c1"&gt;# target format&lt;/span&gt;
    &lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"sample.txt"&lt;/span&gt;      &lt;span class="c1"&gt;# result file name in cloud storage&lt;/span&gt;
    &lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;txt_options&lt;/span&gt;

    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="c1"&gt;# 4. Execute conversion&lt;/span&gt;
    &lt;span class="c1"&gt;# ----------------------------------------------------------------------&lt;/span&gt;
    &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;conversion_result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;convert_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;convert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;# The result contains a URL to download the converted file&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Conversion succeeded. Download URL: {conversion_result.url}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;except&lt;/span&gt; &lt;span class="nc"&gt;ApiException&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="s2"&gt;"Conversion failed: {e}"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"__main__"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This code example demonstrates the core functionality. Before using it in your project, make sure to update any file paths and configuration values to match your actual environment, verify that all required dependencies are properly installed, and test thoroughly in your development environment. If you encounter any issues, please refer to the &lt;a href="https://docs.groupdocs.cloud/conversion/" rel="noopener noreferrer"&gt;official documentation&lt;/a&gt; or reach out to the &lt;a href="https://forum.groupdocs.cloud/c/conversion/11" rel="noopener noreferrer"&gt;support team&lt;/a&gt; for assistance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Excel to Text Conversion Using cURL and the REST API
&lt;/h2&gt;

&lt;p&gt;If you prefer a pure REST approach, the same conversion can be performed with cURL commands.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Obtain an access token&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl -X POST &lt;span class="s2"&gt;"https://api.groupdocs.cloud/v2.0/connect/token"&lt;/span&gt; \
        -H &lt;span class="s2"&gt;"Content-Type: application/x-www-form-urlencoded"&lt;/span&gt; \
        -d &lt;span class="s2"&gt;"grant_type=client_credentials&amp;amp;client_id=YOUR_CLIENT_ID&amp;amp;client_secret=YOUR_CLIENT_SECRET"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Upload the source Excel file&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl -X PUT &lt;span class="s2"&gt;"https://api.groupdocs.cloud/v2.0/storage/file/sample.xlsx"&lt;/span&gt; \
        -H &lt;span class="s2"&gt;"Authorization: Bearer YOUR_ACCESS_TOKEN"&lt;/span&gt; \
        -H &lt;span class="s2"&gt;"Content-Type: application/octet-stream"&lt;/span&gt; \
        --data-binary @sample.xlsx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start the conversion to TXT&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl -X POST &lt;span class="s2"&gt;"https://api.groupdocs.cloud/v2.0/conversion/convert"&lt;/span&gt; \
        -H &lt;span class="s2"&gt;"Authorization: Bearer YOUR_ACCESS_TOKEN"&lt;/span&gt; \
        -H &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; \
        -d &lt;span class="s1"&gt;'{
              "fileInfo": { "filePath": "sample.xlsx" },
              "format": "txt",
              "outputPath": "sample.txt",
              "options": {}
            }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Download the converted TXT file&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl -X GET &lt;span class="s2"&gt;"https://api.groupdocs.cloud/v2.0/storage/file/sample.txt"&lt;/span&gt; \
        -H &lt;span class="s2"&gt;"Authorization: Bearer YOUR_ACCESS_TOKEN"&lt;/span&gt; \
        -o sample.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These commands illustrate the full lifecycle from authentication to download. For additional parameters and error handling, consult the &lt;a href="https://reference.groupdocs.cloud/conversion/" rel="noopener noreferrer"&gt;API reference&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring Conversion Settings for Excel
&lt;/h2&gt;

&lt;p&gt;The SDK offers several options to tailor the output. Below are the most useful settings for Excel‑to‑TXT conversion:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Page Number&lt;/strong&gt; - Start conversion from a specific sheet or page.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;   &lt;span class="n"&gt;txt_options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;page_number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Page Count&lt;/strong&gt; - Limit the number of sheets/pages to convert.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;   &lt;span class="n"&gt;txt_options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;page_count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Output Path&lt;/strong&gt; - Define the name and location of the resulting TXT file in cloud storage.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;   &lt;span class="n"&gt;convert_settings&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"output/sample.txt"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Other advanced options such as &lt;code&gt;encoding&lt;/code&gt; or &lt;code&gt;preserveFormatting&lt;/code&gt; are available in the API reference; explore them to match your exact requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Converting an Excel workbook to plain text in Python is now a simple, repeatable process thanks to the GroupDocs.Conversion Cloud SDK for Python. The SDK handles authentication, file storage, and conversion behind the scenes, letting you focus on business logic. Remember to review the licensing options on the pricing page and obtain a temporary license for evaluation before moving to production. With the code and cURL examples provided, you can integrate Excel‑to‑TXT conversion into any Python‑based workflow or microservice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Questions
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What is the easiest way to convert an Excel workbook to text in Python?&lt;/strong&gt; Use the GroupDocs.Conversion Cloud SDK for Python. It abstracts the REST calls and provides a clean Pythonic API for uploading, converting, and downloading files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can I convert only specific sheets or pages of an Excel workbook?&lt;/strong&gt; Yes. Set &lt;code&gt;page_number&lt;/code&gt; and &lt;code&gt;page_count&lt;/code&gt; on the &lt;code&gt;TxtConvertOptions&lt;/code&gt; object to target particular sheets. See the &lt;a href="https://reference.groupdocs.cloud/conversion/" rel="noopener noreferrer"&gt;API reference&lt;/a&gt; for full details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do I need a GroupDocs account to use the SDK?&lt;/strong&gt; A valid GroupDocs Cloud account with client ID and secret is required. You can create an account on the GroupDocs portal and obtain credentials from the dashboard.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is there a file‑size limit for Excel to TXT conversion?&lt;/strong&gt; The cloud service supports files up to 200 MB for conversion. Larger files should be split or processed in chunks before uploading.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Further Reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.groupdocs.cloud/conversion/how-to-convert-word-documents-to-html-in-python/" rel="noopener noreferrer"&gt;How to Convert Word Documents to HTML in Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.groupdocs.cloud/conversion/convert-excel-to-txt-using-csharp/" rel="noopener noreferrer"&gt;Convert Excel Workbook to Text File using .NET REST API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.groupdocs.cloud/conversion/how-to-convert-docx-to-md-in-java/" rel="noopener noreferrer"&gt;How to Convert DOCX to MD in Java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>excel</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Edit Word Documents in Java</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Tue, 29 Sep 2026 11:11:03 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/edit-word-documents-in-java-17lm</link>
      <guid>https://dev.to/groupdocs-cloud/edit-word-documents-in-java-17lm</guid>
      <description>&lt;p&gt;Tired of wrestling with Word file parsing while building Java collaboration tools? You can now edit DOCX files directly through a simple REST call.&lt;/p&gt;

&lt;p&gt;This guide walks you through installing the GroupDocs Editor Cloud SDK for Java, authenticating, swapping text, invoking the edit endpoint, and pulling the updated document back, plus performance tips and how to configure editing options for maximum speed, and ensures thread‑safe operation.&lt;/p&gt;

&lt;p&gt;All code snippets are ready‑to‑run, so you can drop them into any Maven project and start editing Word files in minutes; the article also shows a plain cURL version, and highlights key features like automatic format preservation, support for tracked changes, and the ability to edit tables and images without extra code for enterprise‑grade reliability.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/editor/edit-word-documents-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/editor/edit-word-documents-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>api</category>
      <category>cloud</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>將 HTML 轉換為 PowerPoint 的 Java 程式 - 將網頁嵌入 PPT</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Thu, 24 Sep 2026 09:38:51 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/jiang-html-zhuan-huan-wei-powerpoint-de-java-cheng-shi-jiang-wang-ye-qian-ru-ppt-4c99</link>
      <guid>https://dev.to/groupdocs-cloud/jiang-html-zhuan-huan-wei-powerpoint-de-java-cheng-shi-jiang-wang-ye-qian-ru-ppt-4c99</guid>
      <description>&lt;p&gt;Tired of manually copying web pages into slides? This guide shows how to turn any HTML page into a fully editable PowerPoint deck using Java. You’ll learn to set up the &lt;strong&gt;GroupDocs Conversion Cloud SDK for Java&lt;/strong&gt;, add the Maven repository, and call the &lt;strong&gt;HTML‑to‑PowerPoint conversion API&lt;/strong&gt;. The article walks through inserting the generated PPTX into a presentation, handling styles and images, and even automating the workflow with cURL.&lt;/p&gt;

&lt;p&gt;By the end you’ll be able to embed live web content into reports, create dynamic presentations on the fly, and streamline collaboration without hand‑crafting each slide. The code snippets are ready to drop into your project, so you can start converting instantly. Give it a try and see how quickly your dashboards become presentation‑ready.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/zh-hant/conversion/convert-html-to-powerpoint-online/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/zh-hant/conversion/convert-html-to-powerpoint-online/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>powerpoint</category>
      <category>conversion</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Extract Text from PDF in Node.JS</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Tue, 22 Sep 2026 09:40:05 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/extract-text-from-pdf-in-nodejs-4ef4</link>
      <guid>https://dev.to/groupdocs-cloud/extract-text-from-pdf-in-nodejs-4ef4</guid>
      <description>&lt;p&gt;Need to pull raw text from PDFs in your Node JS app without writing a parser from scratch? This guide walks you through using the GroupDocs Parser Cloud SDK for Node JS to extract text effortlessly, whether the file is plain or password‑protected.&lt;/p&gt;

&lt;p&gt;You’ll get a complete, ready‑to‑run code sample, a cURL command that hits the REST API directly, and step‑by‑step instructions for installing the SDK, configuring credentials, and handling encrypted documents. The examples show how to stream the result back for indexing or analysis. The snippet also demonstrates asynchronous handling and streaming large PDFs without loading the entire file into memory.&lt;/p&gt;

&lt;p&gt;By the end, you’ll be able to integrate PDF text extraction into any processing pipeline with just a few lines of code. You’ll also see best practices for error handling and how to plug the output into search indexes or AI models.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/parser/extract-text-from-pdf-in-nodejs/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/parser/extract-text-from-pdf-in-nodejs/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>pdf</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Merge and Combine PowerPoint PPT/PPTX Presentations in C#</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Thu, 17 Sep 2026 09:45:36 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/merge-and-combine-powerpoint-pptpptx-presentations-in-c-4k37</link>
      <guid>https://dev.to/groupdocs-cloud/merge-and-combine-powerpoint-pptpptx-presentations-in-c-4k37</guid>
      <description>&lt;p&gt;Tired of manually stitching together dozens of PowerPoint decks? In C# you can automate the whole process and output a single, polished presentation in seconds. This guide walks you through calling the &lt;strong&gt;GroupDocs Cloud REST API&lt;/strong&gt; from a .NET app, covering setup, authentication, and the exact request payload needed to merge whole files or selected slides.&lt;/p&gt;

&lt;p&gt;You’ll see step‑by‑step code snippets that download, combine, and save PPT or PPTX files, plus tips for handling slide ordering and preserving formatting. Whether you need to merge full presentations or cherry‑pick specific slides, the example projects give you a reusable pattern for any automation pipeline.&lt;/p&gt;

&lt;p&gt;Integrate this solution into your CI/CD workflow and keep your decks up to date automatically.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/merger/merge-powerpoint-pptpptx-files-online-using-rest-api-in-csharp/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/merger/merge-powerpoint-pptpptx-files-online-using-rest-api-in-csharp/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Combine Multiple Word Documents in Java</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Tue, 15 Sep 2026 09:49:17 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/how-to-combine-multiple-word-documents-in-java-19hk</link>
      <guid>https://dev.to/groupdocs-cloud/how-to-combine-multiple-word-documents-in-java-19hk</guid>
      <description>&lt;p&gt;Tired of juggling dozens of DOCX files when generating reports?&lt;br&gt;&lt;br&gt;
In this guide we walk through merging multiple Word documents in Java using the &lt;strong&gt;GroupDocs Merger Cloud SDK&lt;/strong&gt;. You’ll see a full, ready‑to‑run code sample, the equivalent cURL request, and a step‑by‑step setup of the required API keys and Maven dependencies. The article also covers how to merge documents stored on cloud storage providers, making it ideal for SaaS platforms.  &lt;/p&gt;

&lt;p&gt;By the end you’ll be able to programmatically combine any number of DOCX files, handle streams without temporary files, and integrate the merge operation into your existing services with just a few lines of Java. Performance tips and common pitfalls are highlighted so you can avoid surprises in production.  &lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/merger/how-to-combine-multiple-word-documents-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/merger/how-to-combine-multiple-word-documents-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>cloud</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Convert ZIP or RAR to PDF using a File Converter</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Thu, 10 Sep 2026 09:18:39 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/convert-zip-or-rar-to-pdf-using-a-file-converter-138a</link>
      <guid>https://dev.to/groupdocs-cloud/convert-zip-or-rar-to-pdf-using-a-file-converter-138a</guid>
      <description>&lt;p&gt;Stuck converting archived ZIP or RAR bundles into clean PDFs? With a simple drag‑and‑drop you can get a PDF in seconds, but when you need to automate the workflow, a programmatic approach is essential. This guide walks you through using the GroupDocs Conversion Cloud REST API and its Node.js SDK to turn any ZIP or RAR file into a searchable PDF, all from within your own application.&lt;/p&gt;

&lt;p&gt;You’ll learn how to set up the SDK, authenticate to the cloud service, upload an archive, invoke the conversion endpoint, and download the resulting document. Sample code snippets illustrate each step, and tips are included for handling large archives and preserving folder structures.&lt;/p&gt;

&lt;p&gt;By the end, you’ll be able to embed reliable archive‑to‑PDF conversion directly into your Node.js projects, saving time and eliminating manual steps.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/conversion/convert-zip-or-rar-to-pdf-using-a-file-converter/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/conversion/convert-zip-or-rar-to-pdf-using-a-file-converter/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>pdf</category>
      <category>fileconversion</category>
      <category>api</category>
    </item>
    <item>
      <title>Remove Image Watermark from PDF in Java</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Tue, 08 Sep 2026 09:25:04 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/remove-image-watermark-from-pdf-in-java-opc</link>
      <guid>https://dev.to/groupdocs-cloud/remove-image-watermark-from-pdf-in-java-opc</guid>
      <description>&lt;p&gt;Stubborn image watermarks can make a PDF look unprofessional and break downstream automation.&lt;/p&gt;

&lt;p&gt;In this quick guide we show how Java developers can strip those unwanted graphics using the GroupDocs Watermark Cloud SDK for Java. The approach leverages the cloud REST endpoint, so you don’t need native libraries or complex native bindings. Authentication is handled via simple API keys, and the response returns a clean PDF ready for further processing or storage.&lt;/p&gt;

&lt;p&gt;You’ll learn how to set up the Java environment, load a PDF, define the watermark criteria, configure removal options, and invoke the API with a simple cURL call. A full code sample is included, plus tips for fine‑tuning the operation and handling the result. By the end you’ll have a reusable snippet you can drop into any Java service that needs watermark removal at scale.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/watermark/remove-image-watermark-from-pdf-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/watermark/remove-image-watermark-from-pdf-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>pdf</category>
      <category>api</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Extract Text from PowerPoint in Node.js -Text Extraction API</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Thu, 03 Sep 2026 09:20:01 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/extract-text-from-powerpoint-in-nodejs-text-extraction-api-4mi5</link>
      <guid>https://dev.to/groupdocs-cloud/extract-text-from-powerpoint-in-nodejs-text-extraction-api-4mi5</guid>
      <description>&lt;p&gt;Tired of manually copying slide text from PowerPoint decks for analysis?&lt;/p&gt;

&lt;p&gt;This step‑by‑step tutorial shows you how to invoke a cloud‑based text extraction API from Node js, send your PPT or PPTX file, and receive a clean JSON payload with every text element. The article covers both full‑presentation extraction and selective extraction by slide range, demonstrates how to set up authentication headers, and includes error‑handling snippets so your app stays robust.&lt;/p&gt;

&lt;p&gt;By the end you’ll be able to pull text from any slide, parse the response into plain strings, and feed the data straight into downstream pipelines such as sentiment analysis, search indexing, or custom reporting. The code samples are lightweight, require only the built‑in https module, and run in any Node js environment without extra dependencies.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/parser/extract-text-from-powerpoint-pptpptx-in-node.js/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/parser/extract-text-from-powerpoint-pptpptx-in-node.js/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>api</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Add Image Watermark to PDF Documents in Java</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Tue, 01 Sep 2026 09:59:23 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/add-image-watermark-to-pdf-documents-in-java-2op</link>
      <guid>https://dev.to/groupdocs-cloud/add-image-watermark-to-pdf-documents-in-java-2op</guid>
      <description>&lt;p&gt;Protect your PDFs from unauthorized use with a single line of Java code. Adding an &lt;strong&gt;image watermark&lt;/strong&gt; gives you a visual identifier that deters copying and reinforces branding across all documents.&lt;/p&gt;

&lt;p&gt;In this tutorial we walk through five simple steps to embed an image watermark using the &lt;strong&gt;GroupDocs Watermark Cloud SDK for Java&lt;/strong&gt;. You’ll see a complete, runnable code sample, learn how to configure opacity, scale, alignment, and margins, and even discover the equivalent cURL REST calls for server‑less integration.&lt;/p&gt;

&lt;p&gt;By the end you’ll know how to install and configure the SDK, fine‑tune watermark options, and call the &lt;strong&gt;cloud API&lt;/strong&gt; directly from your Java application. Whether you’re protecting contracts, e‑books, or marketing collateral, the guide gives you everything you need to get started quickly.&lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/watermark/add-image-watermark-to-pdf-documents-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/watermark/add-image-watermark-to-pdf-documents-in-java/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>pdf</category>
      <category>api</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Split PowerPoint PPT or PPTX into Multiple Files in Node.js</title>
      <dc:creator>Aspose</dc:creator>
      <pubDate>Thu, 27 Aug 2026 16:04:27 +0000</pubDate>
      <link>https://dev.to/groupdocs-cloud/split-powerpoint-ppt-or-pptx-into-multiple-files-in-nodejs-4lcn</link>
      <guid>https://dev.to/groupdocs-cloud/split-powerpoint-ppt-or-pptx-into-multiple-files-in-nodejs-4lcn</guid>
      <description>&lt;p&gt;Manually chopping a 200‑slide deck into bite‑size files is a nightmare.  &lt;/p&gt;

&lt;p&gt;In this quick Node.js tutorial we walk through using the GroupDocs Cloud PowerPoint Splitter API and its SDK to automate the process. You’ll learn how to split a presentation by a custom slide range, break every slide into its own PPTX, and handle both PPT and PPTX formats without ever opening PowerPoint. The guide also covers error handling and how to work with the API’s async responses, so your integration stays robust.  &lt;/p&gt;

&lt;p&gt;The code snippets show setting up the client, authenticating, sending a split request, and saving the resulting files locally. By the end you’ll have a reusable script that turns massive decks into manageable pieces in seconds, freeing you to focus on content rather than file juggling.  &lt;/p&gt;

&lt;p&gt;Read the full guide → &lt;a href="https://blog.groupdocs.cloud/merger/split-powerpoint-ppt-or-pptx-into-multiple-files-in-node.js/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster" rel="noopener noreferrer"&gt;https://blog.groupdocs.cloud/merger/split-powerpoint-ppt-or-pptx-into-multiple-files-in-node.js/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=blogcaster&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>powerpoint</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
