Как да конвертирате Word в сканиран PDF с помощта на C#

Този кратък урок ще ви насочи как да конвертирате Word в сканиран PDF с помощта на C#. Докато използвате C#, конвертирайте Word в сканиран PDF с помощта на няколко реда код и прости извиквания на API. Приложението може да се използва във всяка от базираните на .NET Core среди на Windows, macOS или Linux базирани платформи.

Стъпки за конвертиране на Word в сканиран PDF с помощта на C#

  1. Конфигурирайте проекта за добавяне на препратки към Aspose.Words от мениджъра на пакети NuGet и Systems.Drawing
  2. Заредете изходния Word файл от диска, като използвате обекта от клас Document
  3. Конвертирайте диапазоните от страници от файла на Word и ги запазете като изображения в поток от памет с помощта на IPageSavingCallback
  4. Заредете потока от изображения на запазената страница с думи и го добавете като изображение в DocumentBuilder
  5. Запазете документа като сканиран PDF на диска

Използването на C# сканиране от 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 конвертор C# може да се използва ефективно. Ако искате да премахнете празна страница във файл на Word с помощта на C#, вижте статията как да премахнете празна страница в Word с помощта на C#.

 Български