从 LEADDocument 添加和删除页面 - C# .NET 6

从 LEADDocument 添加和删除页面 - C# .NET 6

LEADDocument本教程介绍如何使用 LEADTOOLS SDK 在 C# .NET 控制台应用程序中添加和删除页面。

从 LEADDocument 添加和删除页面 - C# .NET 6_第1张图片

概述  
概括 本教程介绍如何在 C# .NET 控制台应用程序中DocumentPages修改。LEADDocument
完成时间 30分钟
Visual Studio 项目 下载教程项目 (1 KB)
平台 C# .NET 控制台应用程序
集成开发环境 Visual Studio 2022
运行时目标 .NET 6 或更高版本
开发许可证 下载 LEADTOOLS
尝试使用其他语言
  • C#:. NET 6+(控制台)、. NET 6+(WinForms)

  • Java: Java

所需知识

在开始本教程之前,请先查看添加引用和设置许可证教程,熟悉创建项目的基本步骤。

创建项目并添加 LEADTOOLS 引用

从“添加引用”和“设置许可证”教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建它。

所需的参考文献取决于项目的目的。可以通过以下两种方法之一添加参考文献(但不能同时使用)。

如果使用 NuGet 引用,本教程需要以下 NuGet 包:

  • Leadtools.Document.Sdk

如果使用本地 DLL 引用,则需要以下 DLL。

DLL 位于\LEADTOOLS23\Bin\net

  • Leadtools.dll
  • Leadtools.Core.dll
  • Leadtools.Document.Converter.dll
  • Leadtools.Document.dll
  • Leadtools.Pdf.dll

有关您的应用程序所需的 DLL 文件的完整列表,请参阅应用程序中要包含的文件。

设置许可证文件

许可证用于解锁项目所需的功能。必须在调用任何工具包函数之前设置许可证。有关详细信息(包括不同平台的教程),请参阅设置运行时许可证。

运行时许可证有两种类型:

  • 评估许可证,在下载评估工具包时获得。它允许对工具包进行评估。
  • 部署许可证。如果需要部署许可证文件和开发者密钥,请参阅获取许可证。

创建 LEADDocument 代码

创建项目、添加参考并设置许可证后,就可以开始编码了。

解决方案资源管理器中,打开Program.cs。将以下语句添加到using顶部的块中Program.cs

C#
// Using block at the top  
using System; 
using Leadtools; 
using Leadtools.Document; 
using Leadtools.Document.Converter; 

将以下全局变量添加到Program类中。

C#
static LEADDocument document = DocumentFactory.Create(new CreateDocumentOptions() { UseCache = false }); 

使用DocumentFactory.Create()将创建一个虚拟文档,允许修改 的属性PagesLEADDocument相反,LEADDocument使用DocumentFactory.LoadFromFile()方法创建实例将导致只读实例。

在和Program.cs内添加两个方法。在下内调用这两个方法。InsertPageFromFile(string fileName, int pageNumber)RemovePageFromFile(int pageNumber)Main()InitLEAD()

添加以下代码以添加以下功能:

  • 从文件加载源文档并将这些页面添加到虚拟文档中。
  • 在pageFile字符串变量中指定的文件中插入来自不同文档的页面。
  • 从虚拟文档中删除指定的页码。
  • LEADDocument使用 将其转换为 PDF 来“完成”虚拟DocumentConverter
C#
static void Main(string[] args) 
{ 
   try 
   { 
      string filename = @"PATH TO PDF FILE"; 
      string pageFile = @"PATH TO PAGE TO BE ADDED"; 
      string outputFile = @"PATH TO PDF OUTPUT"; 
      int insertPageNumber = 0; 
      int removePageNumber = 1; 
 
      InitLEAD(); 
 
      LEADDocument loadedDocument = DocumentFactory.LoadFromFile(filename, new LoadDocumentOptions { UseCache = false }); 
      for (int i = 0; i < loadedDocument.Pages.Count; i++) 
      { 
         document.Pages.Add(loadedDocument.Pages[i]); 
      } 
 
      if (document != null) 
      { 
         // Insert and remove pages 
         InsertPageFromFile(pageFile, insertPageNumber); 
         RemovePageFromFile(removePageNumber); 
 
         // Save modified result 
         DocumentConverter docConverter = new DocumentConverter(); 
         docConverter.SetDocumentWriterInstance(new Leadtools.Document.Writer.DocumentWriter()); 
         var jobData = new DocumentConverterJobData 
         { 
            Document = document, 
            OutputDocumentFileName = outputFile, 
            DocumentFormat = Leadtools.Document.Writer.DocumentFormat.Pdf 
         }; 
         var job = docConverter.Jobs.CreateJob(jobData); 
         docConverter.Jobs.RunJob(job); 
         if (job.Errors.Count == 0) 
            Console.WriteLine(String.Format("Modified document saved to {0}", outputFile)); 
         else foreach (var error in job.Errors) 
               Console.WriteLine($"There was an error:{error.Error}"); 
      } 
   } 
   catch (Exception ex) 
   { 
      Console.WriteLine(ex.Message); 
   } 
} 

笔记

虚拟文档是LEADDocument存在于内存中的对象,用于构建由各种文档文件的页面组成的文档。当您准备将虚拟文档转换为物理文档文件(或“完成”它)时,您可以设置LEADDocument中的DocumentViewer,或使用DocumentConverter类。

添加插入页面代码

在该方法内部InsertPageFromFile(),添加下面的代码来加载“子”文档并将第一页添加到虚拟文档的指定位置。

C#
static void InsertPageFromFile(string fileName, int pageNumber) 
{ 
   // Check if pageNumber is valid 
   if (pageNumber < 0 || pageNumber > document.Pages.Count) 
      return; 
   LEADDocument childDocument = DocumentFactory.LoadFromFile(fileName, new LoadDocumentOptions { UseCache = false }); 
   document.Pages.Insert(pageNumber, childDocument.Pages[0]); 
 
   Console.WriteLine(String.Format("Image {0} inserted as page {1} to loaded document", fileName, pageNumber));  
} 

添加删除页面代码

将下面的代码添加到RemovePageFromFile()方法中,以删除虚拟文档中指定位置的页面。

C#
static void RemovePageFromFile(int pageNumber) 
{ 
   // Check if pageNumber is valid 
   if (document.Pages.Count < 2 || pageNumber > document.Pages.Count) 
      return; 
   document.Pages.RemoveAt(pageNumber); 
    
   Console.WriteLine(String.Format("Page {0} removed from loaded document", pageNumber)); 
} 

处理流

如果您的项目需要通过内存流读取和写入文档,那么可以按如下方式进行:

C#
public void DocumentFactoryLoadFromStreamExample() 
{ 
    // Get a stream to anything, in this case a file  
    // Note that the stream must be seekable  
    var fileName = "C:\LEADTOOLS23\Resources\Images\Leadtools.pdf"; 
    using (var stream = File.OpenRead(fileName)) 
    { 
        // We must keep the stream alive as long as the document is alive  
        var options = new LoadDocumentOptions(); 
        using (var document = DocumentFactory.LoadFromStream(stream, options)) 
        { 
            Console.WriteLine(document.DocumentId); 
        } 
    } 
} 

运行项目

按F5或选择“调试”->“开始调试”来运行项目。

如果正确遵循这些步骤,应用程序将加载文档,将来自不同文件的页面插入到指定位置,删除指定位置的页面,并将修改后的虚拟文档保存为 PDF。

包起来

本教程展示了如何在 中操作页面LEADDocument。还介绍了如何使用LEADDocumentDocumentConverter类。

参见

  • LEADTOOLS LEADDocument 文档
  • LEADTOOLS LEADDocument 页面文档
  • LEADTOOLS DocumentFactory 文档
  • LEADTOOLS DocumentConverter 文档
  • LEADTOOLS SDK下载

你可能感兴趣的:(LEADTOOLS,23,python,linux,windows,LEADTOOLS,SDK)