Ο κώδικας για συμπίεση PDF σε C#

Βιβλιοθήκη .NET υψηλής απόδοσης για βελτιστοποίηση περιεχομένου και μεγέθους PDF διατηρώντας την αρχική ποιότητα και τα βασικά δεδομένα

Αυτή είναι μια επαγγελματική λύση για τη συμπίεση του PDF χρησιμοποιώντας C#, F#, VB.NET. Χρησιμοποιήστε το API βελτιστοποίησης PDF για να αναπτύξετε λογισμικό υψηλού επιπέδου, ανεξάρτητο από πλατφόρμα για πλατφόρμες .NET και .NET Core. Δοκιμάστε το online δωρεάν!

Προβολή αποσπάσματος κώδικα

Συμπίεση PDF σε C#

Αυτή η βιβλιοθήκη C# παρέχει στους προγραμματιστές τη δυνατότητα γρήγορης και αποτελεσματικής συμπίεσης PDF εγγράφων μέσω προγραμματισμού. Αποκτήστε εύκολα βελτιστοποιημένη έξοδο PDF έτοιμη για εκτύπωση, αρχειοθέτηση ή κοινή χρήση μέσω του δικτύου. Είναι μια αυτόνομη λύση επεξεργασίας PDF εγγράφων για C# που δεν απαιτεί την εγκατάσταση λογισμικού τρίτων.

Μειώστε το μέγεθος ενός PDF χρησιμοποιώντας C#

Το προϊόν μας παρέχει στους προγραμματιστές C# ένα ενσωματωμένο API για τη μείωση του μεγέθους των PDF αρχείων. Η συμπίεση PDF πραγματοποιείται σε δύο περάσματα. Κατά το πρώτο πέρασμα, όλες οι σελίδες του PDF μετατρέπονται σε μορφή εικόνας. Το προϊόν μας χρησιμοποιεί προσαρμοστικούς και εξαιρετικά αποδοτικούς αλγόριθμους συμπίεσης εικόνας που επιτρέπουν στους προγραμματιστές να λαμβάνουν συμπαγή έξοδο PDF διατηρώντας παράλληλα τη βέλτιστη ποιότητα του εγγράφου. Στο επόμενο πέρασμα, η ακολουθία των εικόνων συμπιέζεται και συνδυάζεται για να σχηματίσει το περιεχόμενο ενός νέου, βελτιστοποιημένου PDF αρχείου.

Η συμπίεση PDF έγινε εύκολη με 'Aspose.Words for .NET'. Το ακόλουθο παράδειγμα δείχνει πώς να μειώσετε το μέγεθος ενός PDF αρχείου σε C#:

Παράδειγμα κώδικα στο C# για συμπίεση PDF αρχείων
Ανεβάστε ένα αρχείο που θέλετε να βελτιστοποιήσετε/συμπιέσετε
Εκτέλεση κώδικα
Επιλέξτε τη μορφή προορισμού από τη λίστα
50%
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 pageSetup = builder.PageSetup; pageSetup.PageWidth = shape.Width; pageSetup.PageHeight = shape.Height; pageSetup.TopMargin = 0; pageSetup.LeftMargin = 0; pageSetup.BottomMargin = 0; pageSetup.RightMargin = 0; var saveOptions = new ImageSaveOptions(SaveFormat.Pdf) { }; doc.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; }
Εκτέλεση κώδικα

Τρόπος συμπίεσης PDF

  1. Εγκαταστήστε Aspose.Words for .NET.
  2. Προσθέστε μια αναφορά βιβλιοθήκης (εισαγωγή της βιβλιοθήκης) στο έργο σας C#.
  3. Ανοίξτε το αρχείο πηγής PDF στο C#.
  4. Συμπιέστε το PDF χωρίς απώλεια ποιότητας.
  5. Καλέστε τη μέθοδο Document.Cleanup(). Ο κώδικας που προκύπτει μπορεί να διαφέρει ανάλογα με τη μορφή αρχείου εξόδου.
  6. Λάβετε το συμπιεσμένο αποτέλεσμα ως PDF αρχείο.

C# βιβλιοθήκη για βελτιστοποίηση και συμπίεση PDF αρχείων

Υπάρχουν τρεις εναλλακτικές επιλογές για να εγκαταστήσετε το "Aspose.Words για .NET" στο σύστημά σας. Επιλέξτε αυτό που μοιάζει με τις ανάγκες σας και ακολουθήστε τις οδηγίες βήμα προς βήμα:

Απαιτήσεις συστήματος

Το προϊόν μας είναι πλήρως cross-platform και υποστηρίζει όλες τις σημαντικές υλοποιήσεις .NET:

  • .NET ≥ 5.0
  • .NET Core ≥ 2.0
  • .NET Standard ≥ 2.0
  • .NET Framework ≥ 3.5
  • MonoMac
  • MonoAndroid
  • Xamarin

Όσον αφορά τον κώδικα .NET δεν εξαρτάται από το υποκείμενο υλικό ή το λειτουργικό σύστημα, αλλά μόνο από μια Εικονική Μηχανή, είστε ελεύθεροι να αναπτύξετε οποιοδήποτε είδος λογισμικού για Windows, macOS, Android, iOS και Linux. Απλώς βεβαιωθείτε ότι έχετε εγκαταστήσει την αντίστοιχη έκδοση των .NET Framework, .NET Core, Windows Azure, Mono ή Xamarin.

Συνιστούμε τη χρήση ολοκληρωμένων περιβαλλόντων ανάπτυξης Microsoft Visual Studio, Xamarin και MonoDevelop για τη δημιουργία εφαρμογών C#, F#, VB.NET.

Για περισσότερες λεπτομέρειες, ανατρέξτε στην τεκμηρίωση προϊόντος.

Άλλες υποστηριζόμενες βελτιστοποιήσεις μορφής αρχείου

Μπορείτε να βελτιστοποιήσετε αρχεία σε πολλές άλλες μορφές αρχείων:

5%

Εγγραφείτε στις ενημερώσεις προϊόντων Aspose

Λάβετε μηνιαία ενημερωτικά δελτία και προσφορές απευθείας στο γραμματοκιβώτιό σας.

© Aspose Pty Ltd 2001-2024. Ολα τα δικαιώματα διατηρούνται.