Come convertire Word in PDF scansionato usando C#

Questo breve tutorial ti guiderà su come convertire Word in PDF scansionati utilizzando C#. Durante l’utilizzo di C# converti Word in PDF scansionato utilizzando poche righe di codice e semplici chiamate API. L’applicazione può essere utilizzata in qualsiasi ambiente basato su .NET Core su piattaforme basate su Windows, macOS o Linux.

Passaggi per convertire Word in PDF scansionato utilizzando C#

  1. Configura il progetto per aggiungere riferimenti a Aspose.Words dal gestore pacchetti NuGet e Systems.Drawing
  2. Carica il file Word di origine dal disco utilizzando l’oggetto classe Document
  3. Converti gli intervalli di pagine dal file di Word e salvali come immagini nel flusso di memoria utilizzando IPageSavingCallback
  4. Carica il flusso di immagini della pagina di parole salvate e aggiungilo come immagine all’interno di DocumentBuilder
  5. Salva il documento come PDF scansionato sul disco

L’uso di C# scan DOC to PDF è facilmente possibile con l’aiuto della suddetta sequenza di operazioni. Inizieremo il processo caricando il file DOCX di origine dal disco e utilizzando IPageSavingCallback ogni pagina selezionata nell’intervallo di pagine viene convertita in un flusso di memoria di immagini JPEG. Quindi ripetiamo i flussi di memoria JPEG delle singole pagine e aggiungiamo le pagine interne utilizzando la classe DocumentBuilder. Infine, il documento viene salvato come PDF scansionato di sola lettura sul disco.

Codice per convertire Word in PDF scansionato usando 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);
}
}
}

Per convertire Word in PDF utilizzando C# e ottenere un PDF scansionato, abbiamo adottato l’approccio di convertire prima le pagine del documento Word in immagini JPEG e quindi renderle di sola lettura. Quindi, utilizzando la classe DocumentBuilder, abbiamo creato un nuovo documento utilizzando le immagini create nel primo passaggio e salvato come PDF sul disco.

In questo tutorial, abbiamo appreso che per sviluppare un convertitore da Word a PDF scansionato è possibile utilizzare efficacemente un’API basata su C#. Se desideri rimuovere una pagina vuota in un file Word utilizzando C#, fai riferimento all’articolo come rimuovere una pagina vuota in Word usando C#.

 Italiano