So konvertieren Sie Word mit C# in gescanntes PDF

Dieses kurze Tutorial führt Sie durch das Konvertieren von Word in gescanntes PDF mit C#. Während Sie C# verwenden, konvertieren Sie Word mit ein paar Zeilen Code und einfachen API-Aufrufen in gescannte PDF. Die Anwendung kann in allen .NET Core-basierten Umgebungen auf Windows-, macOS- oder Linux-basierten Plattformen verwendet werden.

Schritte zum Konvertieren von Word in gescanntes PDF mit C#

  1. Konfigurieren Sie das Projekt, um Verweise auf Aspose.Words aus dem NuGet-Paket-Manager und Systems.Drawing hinzuzufügen
  2. Laden Sie die Word-Quelldatei mithilfe des Klassenobjekts Document von der Festplatte
  3. Konvertieren Sie die Seitenbereiche aus der Word-Datei und speichern Sie sie mit IPageSavingCallback als Bilder im Memory Stream
  4. Laden Sie den gespeicherten Wortseiten-Bildstream und fügen Sie ihn als Bild in DocumentBuilder hinzu
  5. Speichern Sie das Dokument als gescanntes PDF auf der Festplatte

Die Verwendung von C# DOC zu PDF scannen ist mit Hilfe der oben genannten Operationsfolge problemlos möglich. Wir beginnen den Vorgang, indem wir die DOCX-Quelldatei von der Festplatte laden und mit IPageSavingCallback jede im Seitenbereich ausgewählte Seite in einen Speicherstrom von JPEG-Bildern konvertieren. Dann iterieren wir durch einzelne Seiten-JPEG-Speicherströme und hängen Innenseiten mit der DocumentBuilder-Klasse an. Abschließend wird das Dokument als schreibgeschütztes gescanntes PDF auf der Festplatte gespeichert.

Code zum Konvertieren von Word in gescanntes PDF mit 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);
}
}
}

Um Word mit C# in PDF zu konvertieren* und ein gescanntes PDF zu erhalten, haben wir den Ansatz gewählt, die Seiten des Word-Dokuments zuerst in JPEG-Bilder zu konvertieren und sie somit schreibgeschützt zu machen. Dann haben wir mit der DocumentBuilder-Klasse ein neues Dokument mit den im ersten Schritt erstellten Bildern erstellt und als PDF auf der Festplatte gespeichert.

In diesem Tutorial haben wir gelernt, dass zum Entwickeln eines * Word to Scaned PDF-Konverters C# *-basierte API effektiv verwendet werden kann. Wenn Sie eine leere Seite in einer Word-Datei mit C# entfernen möchten, lesen Sie den Artikel So entfernen Sie eine leere Seite in Word mit C#.

 Deutsch