This is a professional solution to compress DOCX using Java. Use our DOCX optimization API to create portable, robust and secure software in Java. Try it online for free!
Make large DOCX files smaller without loss of quality. Delete unnecessary and unused data. Shrink the size of a DOCX file in code. The Java library provides developers with an integrated API to optimize DOCX content.
Java library is a stand-alone solution and doesn't require any third party software installed.
Lossless compression and deep content optimization made easy with 'Aspose.Words for Java'. The following example demonstrates how to optimize the content of a DOCX file in Java:
// Repository path: https://releases.aspose.com/java/repo/
// Maven, where 'ver' - Aspose.Words version number, for example, 24.4.
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-words</artifactId>
<version>ver</version>
<classifier>jdk17</classifier>
</dependency>
Copy
// Repository path: https://releases.aspose.com/java/repo/
// Gradle, where 'ver' - Aspose.Words version number, for example, 24.4.
compile(group: 'com.aspose', name: 'aspose-words', version: 'ver', classifier: 'jdk17')
Copy
// Repository path: https://releases.aspose.com/java/repo/
// Ivy, where 'ver' - Aspose.Words version number, for example, 24.4.
<dependency org="com.aspose" name="aspose-words" rev="ver">
<artifact name="aspose-words" m:classifier="jdk17" ext="jar"/>
</dependency>
Copy
// Repository path: https://releases.aspose.com/java/repo/
// Sbt, where 'ver' - Aspose.Words version number, for example, 24.4.
libraryDependencies += "com.aspose" % "aspose-words" % "ver"
Copy
import com.aspose.words.*;
Document doc = new Document("Input.docx");
doc.cleanup();
NodeCollection nodes = doc.getChildNodes(NodeType.SHAPE, true);
for (Shape shape : (Iterable<Shape>) nodes)
{
if (shape.isImage())
{
// It's up to developer to choose the library for image compression.
BufferedImage image = ImageIO.read(shape.getImageData().toStream());
// ...
// Compress image and set it back to the shape.
shape.getImageData().setImage("yourCompressedImage");
}
}
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions();
saveOptions.setCompressionLevel(CompressionLevel.MAXIMUM);
doc.save("Output.docx", saveOptions);
import com.aspose.words.*;
Document doc = new Document("Input.docx");
doc.cleanup();
NodeCollection nodes = doc.getChildNodes(NodeType.SHAPE, true);
for (Shape shape : (Iterable<Shape>) nodes)
{
if (shape.isImage())
{
// It's up to developer to choose the library for image compression.
BufferedImage image = ImageIO.read(shape.getImageData().toStream());
// ...
// Compress image and set it back to the shape.
shape.getImageData().setImage("yourCompressedImage");
}
}
OoxmlSaveOptions saveOptions = new PdfSaveOptions();
saveOptions.setCacheBackgroundGraphics(true);
doc.save("Output.docx", saveOptions);
import com.aspose.words.*;
Document doc = new Document("Input.docx");
doc.cleanup();
NodeCollection nodes = doc.getChildNodes(NodeType.SHAPE, true);
for (Shape shape : (Iterable<Shape>) nodes)
{
if (shape.isImage())
{
// It's up to developer to choose the library for image compression.
BufferedImage image = ImageIO.read(shape.getImageData().toStream());
// ...
// Compress image and set it back to the shape.
shape.getImageData().setImage("yourCompressedImage");
}
}
doc.save("Output.docx");
import com.aspose.words.*;
Document doc = new Document("Input.docx");
doc.cleanup();
NodeCollection nodes = doc.getChildNodes(NodeType.SHAPE, true);
for (Shape shape : (Iterable<Shape>) nodes)
{
if (shape.isImage())
{
// It's up to developer to choose the library for image compression.
BufferedImage image = ImageIO.read(shape.getImageData().toStream());
// ...
// Compress image and set it back to the shape.
shape.getImageData().setImage("yourCompressedImage");
}
}
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions();
saveOptions.setCompressionLevel(CompressionLevel.MAXIMUM);
doc.save("Output.docx", saveOptions);
import com.aspose.words.*;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertImage("Input.docx");
ImageSaveOptions saveOptions = new ImageSaveOptions(SaveFormat.DOCX);
shape.getShapeRenderer().save("Output.docx", saveOptions);
We host our Java packages in Maven repositories. 'Aspose.Words for Java' is a common JAR file containing byte-code. Please follow the step-by-step instructions on how to install it to your Java developer environment.
Java SE 7 and more recent Java versions are supported. We also provide a separate package for Java SE 6 in case you are obliged to use this outdated JRE.
Our Java package is cross-platform and runs on all operating systems with JVM implementation, including Microsoft Windows, Linux, macOS, Android and iOS.
For information on optional package dependencies, such as JogAmp JOGL, Harfbuzz font engine, Java Advanced Imaging JAI, please refer to Product Documentation.
You can optimize files in many other file formats: