Hur man konverterar Word till skannad PDF med C#

Denna korta handledning guidar dig om hur du konverterar Word till skannad PDF med C#. När du använder C#, konvertera Word till skannat PDF med några rader kod och enkla API-anrop. Applikationen kan användas i alla .NET Core-baserade miljöer på Windows, macOS eller Linux-baserade plattformar.

Steg för att konvertera Word till skannad PDF med C#

  1. Konfigurera projektet för att lägga till referenser till Aspose.Words från NuGet-pakethanteraren och Systems.Drawing
  2. Ladda in Word-källfilen från disken med klassobjektet Document
  3. Konvertera sidintervallen från Word-filen och spara dem som bilder i Memory Stream med IPageSavingCallback
  4. Ladda den sparade bildströmmen för ordsidan och lägg till den som en bild i DocumentBuilder
  5. Spara dokumentet som en skannad PDF på disken

Att använda C# scan DOC till PDF är lätt möjligt med hjälp av den tidigare nämnda operationssekvensen. Vi kommer att starta processen genom att ladda käll DOCX-filen från disken och använda IPageSavingCallback varje sida vald i sidintervallet konverteras till en minnesström av JPEG-bilder. Sedan går vi igenom individuella JPEG-minnesströmmar och lägger till insidor med hjälp av DocumentBuilder-klassen. Slutligen sparas dokumentet som en skrivskyddad skannad PDF på disken.

Kod för att konvertera Word till skannad PDF med 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);
}
}
}

För att konvertera Word till PDF med C# och få en skannad PDF, har vi antagit metoden att konvertera Word-dokumentsidorna till JPEG-bilder först och därmed göra dem skrivskyddade. Sedan genom att använda klassen DocumentBuilder har vi skapat ett nytt dokument med bilderna som skapades i det första steget och sparat det som en PDF på disken.

I den här handledningen har vi lärt oss att för att utveckla en Word till skannad PDF-omvandlare kan C#-baserad API effektivt användas. Om du vill ta bort en tom sida i en Word-fil med C#, se artikeln hur man tar bort tom sida i Word med C#.

 Svenska