นี่เป็นโซลูชันระดับมืออาชีพในการบีบอัด PDF โดยใช้ C#, F#, VB.NET ใช้ PDF API การเพิ่มประสิทธิภาพของเราเพื่อพัฒนาซอฟต์แวร์ระดับสูงที่ไม่ขึ้นกับแพลตฟอร์มสำหรับแพลตฟอร์ม .NET และ .NET Core ลองออนไลน์ฟรี!
ไลบรารี C# นี้ช่วยให้นักพัฒนาสามารถบีบอัดเอกสาร PDF ทางโปรแกรมได้อย่างรวดเร็วและมีประสิทธิภาพ รับเอาต์พุต PDF ที่ปรับให้เหมาะสมที่สุดอย่างง่ายดายพร้อมสำหรับการพิมพ์ เก็บถาวร หรือแชร์ผ่านเครือข่าย เป็นโซลูชันการประมวลผลเอกสาร PDF แบบสแตนด์อโลนสำหรับ C# ที่ไม่ต้องติดตั้งซอฟต์แวร์ของบุคคลที่สาม
ผลิตภัณฑ์ของเรามี API แบบบูรณาการสำหรับนักพัฒนา 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
รายละเอียดเพิ่มเติมโปรดดูที่ เอกสารประกอบผลิตภัณฑ์
คุณสามารถปรับไฟล์ให้เหมาะสมในรูปแบบไฟล์อื่นๆ ได้มากมาย: