Αυτό το σύντομο σεμινάριο θα σας καθοδηγήσει σχετικά με τον τρόπο μετατροπής του Word σε σαρωμένο PDF χρησιμοποιώντας C#. Κατά τη χρήση του C#, μετατρέψτε το Word σε σαρωμένο PDF χρησιμοποιώντας μερικές γραμμές κώδικα και απλές κλήσεις API. Η εφαρμογή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε από τα περιβάλλοντα που βασίζονται σε .NET Core σε πλατφόρμες Windows, macOS ή Linux.
Βήματα για τη μετατροπή του Word σε σαρωμένο PDF χρησιμοποιώντας C#
- Διαμορφώστε το έργο για να προσθέσετε αναφορές στο Aspose.Words από τον διαχειριστή πακέτων NuGet και το Systems.Drawing
- Φορτώστε το αρχείο προέλευσης του Word από το δίσκο χρησιμοποιώντας το αντικείμενο κλάσης Document
- Μετατρέψτε το εύρος σελίδων από το αρχείο Word και αποθηκεύστε τις ως Εικόνες στη ροή μνήμης χρησιμοποιώντας το IPageSavingCallback
- Φορτώστε την αποθηκευμένη ροή εικόνας σελίδας λέξης και προσθέστε την ως εικόνα στο DocumentBuilder
- Αποθηκεύστε το Έγγραφο ως σαρωμένο PDF στο δίσκο
Η χρήση του C# scan DOC σε PDF είναι εύκολα δυνατή με τη βοήθεια της προαναφερθείσας ακολουθίας λειτουργιών. Θα ξεκινήσουμε τη διαδικασία φορτώνοντας το αρχείο προέλευσης DOCX από το δίσκο και χρησιμοποιώντας το IPageSavingCallback κάθε σελίδα που επιλέγεται στην περιοχή σελίδων μετατρέπεται σε ροή μνήμης εικόνων JPEG. Στη συνέχεια επαναλαμβάνουμε μεμονωμένες ροές μνήμης JPEG σελίδων και προσαρτούμε εσωτερικές σελίδες χρησιμοποιώντας την κλάση DocumentBuilder. Τέλος, το έγγραφο αποθηκεύεται ως σαρωμένο PDF μόνο για ανάγνωση στο δίσκο.
Κώδικας για τη μετατροπή του Word σε σαρωμένο PDF χρησιμοποιώντας C#
using System; | |
using System.Collections; | |
using System.IO; | |
using Aspose.Words; | |
using Aspose.Words.Drawing; | |
using Aspose.Words.Saving; | |
using SkiaSharp; | |
namespace WordKB | |
{ | |
public class WordToPDFScanned | |
{ | |
public static void ConvertWordToPDF() | |
{ | |
// Applying product license to read the Barcodes from image | |
License WordToPdf = new License(); | |
WordToPdf.SetLicense("Aspose.Total.lic"); | |
string WordFilePath = "AsposeTest.docx"; | |
string ScannedPdfFilePath = "ScannedOutput.pdf"; | |
WordToPDFScanner(WordFilePath, ScannedPdfFilePath); | |
} | |
public static void WordToPDFScanner(string WordFile, string ScannedPDFFile) | |
{ | |
// Load Word document from file on disk | |
Document TempDoc = new Document(WordFile); | |
ImageSaveOptions jpeg_Opts = new ImageSaveOptions(SaveFormat.Jpeg); | |
PageRange pageRange = new PageRange(0, TempDoc.PageCount - 1); | |
jpeg_Opts.PageSet = new PageSet(pageRange); | |
WordToJpegImages JpegHandler = new WordToJpegImages(); | |
jpeg_Opts.PageSavingCallback = JpegHandler; | |
MemoryStream memoryStream = new MemoryStream(); | |
TempDoc.Save(memoryStream, jpeg_Opts); | |
Document ScannedPdf = new Document(); | |
ScannedPdf.RemoveAllChildren(); | |
foreach (MemoryStream JpegStream in JpegHandler.JpegStreams) | |
{ | |
JpegStream.Position = 0; | |
using (SKBitmap jpg_image = SKBitmap.Decode(JpegStream)) | |
{ | |
Document image_Doc = new Document(); | |
DocumentBuilder pdf_builder = new DocumentBuilder(image_Doc); | |
PageSetup ps = pdf_builder.PageSetup; | |
ps.PageWidth = ConvertUtil.PixelToPoint(jpg_image.Width); | |
ps.PageHeight = ConvertUtil.PixelToPoint(jpg_image.Height); | |
// Insert JPEG image inside the document and position it at the top left corner of the page | |
pdf_builder.InsertImage(jpg_image, RelativeHorizontalPosition.Page, 0, RelativeVerticalPosition.Page, | |
0, ps.PageWidth, ps.PageHeight, Aspose.Words.Drawing.WrapType.None); | |
ScannedPdf.AppendDocument(image_Doc, ImportFormatMode.KeepSourceFormatting); | |
} | |
} | |
ScannedPdf.Save(ScannedPDFFile); | |
} | |
} | |
public class WordToJpegImages : IPageSavingCallback | |
{ | |
public ArrayList JpegStreams = new ArrayList(); | |
public void PageSaving(PageSavingArgs args) | |
{ | |
args.PageStream = new MemoryStream(); | |
args.KeepPageStreamOpen = true; | |
JpegStreams.Add(args.PageStream); | |
} | |
} | |
} |
Προκειμένου να μετατρέψουμε το Word σε PDF χρησιμοποιώντας C# και να αποκτήσουμε ένα σαρωμένο PDF, έχουμε υιοθετήσει την προσέγγιση της μετατροπής των σελίδων του εγγράφου του Word σε εικόνες JPEG πρώτα και, συνεπώς, τη δημιουργία τους μόνο για ανάγνωση. Στη συνέχεια, χρησιμοποιώντας την κλάση DocumentBuilder, δημιουργήσαμε ένα νέο έγγραφο χρησιμοποιώντας τις εικόνες που δημιουργήθηκαν στο πρώτο βήμα και το αποθηκεύσαμε ως PDF στο δίσκο.
Σε αυτό το σεμινάριο, μάθαμε ότι για την ανάπτυξη ενός Word σε σαρωμένο μετατροπέα PDF API που βασίζεται σε C# μπορεί να χρησιμοποιηθεί αποτελεσματικά. Εάν θέλετε να αφαιρέσετε μια κενή σελίδα σε ένα αρχείο Word χρησιμοποιώντας C#, ανατρέξτε στο άρθρο πώς να αφαιρέσετε κενή σελίδα στο Word χρησιμοποιώντας C#.