Kako pretvoriti Word u skenirani PDF pomoću C#

Ovaj kratki vodič će vas voditi kako pretvoriti Word u skenirani PDF pomoću C#. Dok koristite C#, pretvorite Word u skenirani PDF pomoću nekoliko redaka koda i jednostavnih API poziva. Aplikacija se može koristiti u bilo kojem od .NET Core okruženja na platformama temeljenim na Windows, macOS ili Linux.

Koraci za pretvaranje Worda u skenirani PDF pomoću C#

  1. Konfigurirajte projekt za dodavanje referenci na Aspose.Words iz upravitelja paketa NuGet i Systems.Drawing
  2. Učitajte izvornu Word datoteku s diska pomoću objekta klase Document
  3. Pretvorite raspone stranica iz Word datoteke i spremite ih kao slike u Memory Stream koristeći IPageSavingCallback
  4. Učitajte tok slika spremljene stranice riječi i dodajte je kao sliku unutar DocumentBuildera
  5. Spremite dokument kao skenirani PDF na disk

Korištenje C# skeniranja DOC-a u PDF lako je moguće uz pomoć gore navedenog niza operacija. Proces ćemo započeti učitavanjem izvorne DOCX datoteke s diska i korištenjem IPageSavingCallbacka, svaka stranica odabrana u rasponu stranica pretvara se u memorijski tok JPEG slika. Zatim ponavljamo kroz tokove JPEG memorije pojedinačnih stranica i dodajemo unutar stranica pomoću klase DocumentBuilder. Na kraju, dokument se sprema kao skenirani PDF samo za čitanje na disku.

Kod za pretvaranje Worda u skenirani PDF pomoću 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);
}
}
}

Kako bismo konvertirali Word u PDF koristeći C# i dobili skenirani PDF, usvojili smo pristup da prvo pretvorimo stranice Word dokumenta u JPEG slike i tako ih učinimo samo za čitanje. Zatim smo pomoću klase DocumentBuilder izradili novi dokument koristeći slike stvorene u prvom koraku i spremili ga kao PDF na disk.

U ovom vodiču naučili smo da se za razvoj Word pretvarača u skenirani PDF može učinkovito koristiti API temeljen na C#. Ako želite ukloniti praznu stranicu u Word datoteci koristeći C#, pogledajte članak kako ukloniti praznu stranicu u Wordu pomoću C#.

 Hrvatski