Como converter Word para PDF digitalizado usando C#

Este breve tutorial orientará você sobre como converter Word em PDF digitalizado usando C#. Ao usar C# converter Word para digitalizado PDF usando algumas linhas de código e chamadas de API simples. O aplicativo pode ser usado em qualquer um dos ambientes baseados em .NET Core em plataformas baseadas em Windows, macOS ou Linux.

Etapas para converter Word em PDF digitalizado usando C#

  1. Configure o projeto para adicionar referências a Aspose.Words do gerenciador de pacotes NuGet e Systems.Drawing
  2. Carregue o arquivo do Word de origem do disco usando o objeto de classe Document
  3. Converta os intervalos de página do arquivo do Word e salve-os como imagens no fluxo de memória usando IPageSavingCallback
  4. Carregue o fluxo de imagem da página de palavras salva e adicione-o como uma imagem dentro do DocumentBuilder
  5. Salve o documento como um PDF digitalizado no disco

Usar C# scan DOC to PDF é facilmente possível com a ajuda da sequência de operações acima mencionada. Iniciaremos o processo carregando o arquivo DOCX de origem do disco e usando IPageSavingCallback cada página selecionada no intervalo de páginas é convertida em um fluxo de memória de imagens JPEG. Em seguida, iteramos por meio de fluxos de memória JPEG de página individual e anexamos páginas internas usando a classe DocumentBuilder. Finalmente, o documento é salvo como um PDF digitalizado somente leitura no disco.

Código para converter Word em PDF digitalizado 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);
}
}
}

Para converter Word para PDF usando C# e obter um PDF digitalizado, adotamos a abordagem de converter as páginas do documento Word em imagens JPEG primeiro e, assim, torná-las somente leitura. Então, usando a classe DocumentBuilder, criamos um novo documento usando as imagens criadas na primeira etapa e salvamos como PDF no disco.

Neste tutorial, aprendemos que, para desenvolver uma API baseada em C#* do conversor *Word para PDF digitalizado, pode ser usada de maneira eficaz. Se você deseja remover uma página em branco em um arquivo do Word usando C#, consulte o artigo como remover a página em branco no Word usando C#.

 Português