Як перетворити 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 можна ефективно використовувати API на основі C#. Якщо ви хочете видалити порожню сторінку у файлі Word за допомогою C#, зверніться до статті як видалити порожню сторінку в Word за допомогою C#.

 Українська