هذا حل احترافي للضغط PDF باستخدام C#, F#, VB.NET. استخدم PDF واجهة برمجة تطبيقات التحسين الخاصة بنا لتطوير برامج عالية المستوى مستقلة عن النظام الأساسي للأنظمة الأساسية .NET و .NET Core. جربه على الإنترنت مجانا!
توفر مكتبة C# هذه للمطورين القدرة على ضغط مستندات PDF برمجيًا بسرعة وكفاءة. احصل بسهولة على إخراج PDF محسن جاهز للطباعة أو الأرشفة أو المشاركة عبر الشبكة. إنه حل معالجة مستندات PDF مستقل لجافا سكريبت ولا يتطلب تثبيت أي برنامج تابع لجهة خارجية.
يزود منتجنا مطوري C# بواجهة برمجة تطبيقات متكاملة لتقليل حجم ملفات PDF. يتم تنفيذ ضغط ملفات PDF على مرحلتين. أثناء المرور الأول، يتم تحويل جميع صفحات PDF إلى تنسيق صورة. يستخدم منتجنا خوارزميات ضغط صور قابلة للتكيف وذات كفاءة عالية تسمح للمطورين بالحصول على مخرجات PDF مضغوطة مع الحفاظ على الجودة المثلى للمستند. في التمرير التالي، يتم ضغط تسلسل الصور ودمجها لتشكيل محتوى ملف PDF جديد ومحسّن.
أصبح ضغط ملفات PDF أمرًا سهلاً باستخدام 'Aspose.Words for .NET'. يوضح المثال التالي كيفية تقليل حجم ملف PDF في C#:
dotnet add package Aspose.Words
ينسخ
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;
using var pdfStream = File.OpenRead("Input.pdf");
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.pdf", saveOptions);
private void SetPageSize(PageSetup pageSetup, double width, double height)
{
pageSetup.PageWidth = width;
pageSetup.PageHeight = height;
}
using Aspose.Words;
var doc = new Document("Input.pdf");
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.pdf", saveOptions);
using Aspose.Words;
var doc = new Document("Input.pdf");
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.pdf");
using Aspose.Words;
var doc = new Document("Input.pdf");
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.pdf", saveOptions);
using Aspose.Words;
var doc = new Document();
var builder = new DocumentBuilder(doc);
var shape = builder.InsertImage("Input.pdf");
var saveOptions = new ImageSaveOptions(SaveFormat.Pdf)
{
};
shape.GetShapeRenderer().Save("Output.pdf", saveOptions);
using Aspose.Words;
using Aspose.Words.Pdf2Word.FixedFormats;
using var pdfStream = File.OpenRead("Input.pdf");
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.pdf", saveOptions);
private void SetPageSize(PageSetup pageSetup, double width, double height)
{
pageSetup.PageWidth = width;
pageSetup.PageHeight = height;
}
هناك ثلاثة خيارات بديلة لتثبيت "Aspose.Words for .NET" على نظامك. يرجى اختيار واحد يناسب احتياجاتك واتبع التعليمات خطوة بخطوة:
منتجنا متعدد المنصات بالكامل ويدعم جميع تطبيقات .NET الرئيسية:
بقدر ما لا يعتمد كود .NET على الأجهزة الأساسية أو نظام التشغيل، ولكن فقط على Virtual Machine، فأنت حر في تطوير أي نوع من البرامج لأنظمة Windows، وmacOS، وAndroid، وiOS، وLinux. فقط تأكد من تثبيت الإصدار المقابل من .NET Framework, .NET Core, Windows Azure, Mono أو Xamarin.
نوصي باستخدام بيئات التطوير المتكاملة Microsoft Visual Studio وXamarin وMonoDevelop لإنشاء تطبيقات C#, F#, VB.NET.
لمزيد من التفاصيل يرجى الرجوع إلى وثائق المنتج.