在不损失质量的情况下使大文件变小。删除不必要和未使用的数据。在 C# 中缩小 Word 和 HTML 文件的大小。我们的 C# 库为开发人员提供了一个集成的 API 来优化各种格式的文档。
这个 C# 库是一个独立的解决方案,不需要安装任何第三方软件。
通过优化高分辨率图像以及包含此类图像的文档,可以获得最大的效果。我们的 C# 库将帮助您压缩 HTML、DOCX、DOC、RTF、ODT、EPUB、HTML、JPG、PNG 文件。
使用 'Aspose.Words for .NET' 可以轻松优化文档而不降低质量。以下示例显示了如何在 C# 中缩小 Word 文档的大小:
dotnet add package Aspose.Words
复制
using Aspose.Words;
var doc = new Document("Input.docx");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 由开发人员选择用于图像压缩的库。
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// 压缩图像并将其设置回形状。
shape.ImageData.SetImage("yourCompressedImage");
}
}
var saveOptions = new OoxmlSaveOptions
{
CompressionLevel = CompressionLevel.Maximum
};
doc.Save("Output.docx", saveOptions);
using Aspose.Words;
var doc = new Document("Input.docx");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 由开发人员选择用于图像压缩的库。
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// 压缩图像并将其设置回形状。
shape.ImageData.SetImage("yourCompressedImage");
}
}
var saveOptions = new PdfSaveOptions
{
CacheBackgroundGraphics = true
};
doc.Save("Output.docx", saveOptions);
using Aspose.Words;
var doc = new Document("Input.docx");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 由开发人员选择用于图像压缩的库。
using var image = Image.Fromstream(shape.ImageData.ToStream());
// ...
// 压缩图像并将其设置回形状。
shape.ImageData.SetImage("yourCompressedImage");
}
}
doc.Save("Output.docx");
using Aspose.Words;
var doc = new Document("Input.docx");
doc.Cleanup();
var nodes = doc.GetChildNodes(NodeType.Shape, true);
foreach (Shape shape in nodes)
{
if (shape.IsImage)
{
// 由开发人员选择用于图像压缩的库。
using var image = Image.FromStream(shape.ImageData.ToStream());
// ...
// 压缩图像并将其设置回形状。
shape.ImageData.SetImage("yourCompressedImage");
}
}
var saveOptions = new OoxmlSaveOptions
{
CompressionLevel = CompressionLevel.Maximum
};
doc.Save("Output.docx", saveOptions);
using Aspose.Words;
var doc = new Document();
var builder = new DocumentBuilder(doc);
var shape = builder.InsertImage("Input.docx");
var saveOptions = new ImageSaveOptions(SaveFormat.Docx)
{
};
shape.GetShapeRenderer().Save("Output.docx", saveOptions);
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;
using var pdfStream = File.OpenRead("Input.docx");
var renderer = new PdfFixedRenderer();
var pdfReadOptions = new PdfFixedOptions
{
ImageFormat = FixedImageFormat.Jpeg,
JpegQuality = 50
};
const double maxPageDimension = 1584;
var pagesStream = renderer.SavePdfAsImages(pdfStream, pdfReadOptions);
var builder = new DocumentBuilder();
for (var i = 0; i < pagesStream.Count; ++i)
{
// 设置最大页面大小以避免当前页面图像缩放。
var pageSetup = builder.PageSetup;
SetPageSize(pageSetup, maxPageDimension, maxPageDimension);
var pageImage = builder.InsertImage(pagesStream[i]);
SetPageSize(pageSetup, pageImage.Width, pageImage.Height);
pageSetup.TopMargin = 0;
pageSetup.LeftMargin = 0;
pageSetup.BottomMargin = 0;
pageSetup.RightMargin = 0;
if (i != pagesStream.Count - 1)
builder.InsertBreak(BreakType.SectionBreakNewPage);
}
var saveOptions = new PdfSaveOptions
{
CacheBackgroundGraphics = true
};
builder.Document.Save("Output.docx", saveOptions);
private void SetPageSize(PageSetup pageSetup, double width, double height)
{
pageSetup.PageWidth = width;
pageSetup.PageHeight = height;
}
在您的系统上 "Aspose.Words for .NET" 有三个备选选项。请选择符合您需求的一种,并按照分步说明进行操作:
我们的产品是完全跨平台的,并支持所有主要的 .NET 实现:
由于 .NET 代码不依赖于底层硬件或操作系统,而只依赖于虚拟机,因此您可以自由地为 Windows、macOS、Android、iOS 和 Linux 开发任何类型的软件。只需确保您已安装相应版本的.NET Framework, .NET Core, Windows Azure, Mono或Xamarin即可。
我们建议使用 Microsoft Visual Studio、Xamarin 和 MonoDevelop 集成开发环境来创建C#, F#, VB.NET应用程序。
更多详细信息请参阅产品文档。