LEADDocument
本教程介绍如何使用 LEADTOOLS SDK 在 C# .NET 控制台应用程序中添加和删除页面。
概述 | |
---|---|
概括 | 本教程介绍如何在 C# .NET 控制台应用程序中DocumentPages 修改。LEADDocument |
完成时间 | 30分钟 |
Visual Studio 项目 | 下载教程项目 (1 KB) |
平台 | C# .NET 控制台应用程序 |
集成开发环境 | Visual Studio 2022 |
运行时目标 | .NET 6 或更高版本 |
开发许可证 | 下载 LEADTOOLS |
尝试使用其他语言 |
|
在开始本教程之前,请先查看添加引用和设置许可证教程,熟悉创建项目的基本步骤。
从“添加引用”和“设置许可证”教程中创建的项目副本开始。如果您没有该项目,请按照该教程中的步骤创建它。
所需的参考文献取决于项目的目的。可以通过以下两种方法之一添加参考文献(但不能同时使用)。
如果使用 NuGet 引用,本教程需要以下 NuGet 包:
Leadtools.Document.Sdk
如果使用本地 DLL 引用,则需要以下 DLL。
DLL 位于
:
Leadtools.dll
Leadtools.Core.dll
Leadtools.Document.Converter.dll
Leadtools.Document.dll
Leadtools.Pdf.dll
有关您的应用程序所需的 DLL 文件的完整列表,请参阅应用程序中要包含的文件。
许可证用于解锁项目所需的功能。必须在调用任何工具包函数之前设置许可证。有关详细信息(包括不同平台的教程),请参阅设置运行时许可证。
运行时许可证有两种类型:
创建项目、添加参考并设置许可证后,就可以开始编码了。
在解决方案资源管理器中,打开Program.cs
。将以下语句添加到using
顶部的块中Program.cs
。
// Using block at the top
using System;
using Leadtools;
using Leadtools.Document;
using Leadtools.Document.Converter;
将以下全局变量添加到Program
类中。
static LEADDocument document = DocumentFactory.Create(new CreateDocumentOptions() { UseCache = false });
使用DocumentFactory.Create()
将创建一个虚拟文档,允许修改 的属性Pages
。LEADDocument
相反,LEADDocument
使用DocumentFactory.LoadFromFile()
方法创建实例将导致只读实例。
在和Program.cs
内添加两个方法。在下内调用这两个方法。InsertPageFromFile(string fileName, int pageNumber)
RemovePageFromFile(int pageNumber)
Main()InitLEAD()
添加以下代码以添加以下功能:
LEADDocument
使用 将其转换为 PDF 来“完成”虚拟DocumentConverter
。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()
,添加下面的代码来加载“子”文档并将第一页添加到虚拟文档的指定位置。
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()
方法中,以删除虚拟文档中指定位置的页面。
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));
}
如果您的项目需要通过内存流读取和写入文档,那么可以按如下方式进行:
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
。还介绍了如何使用LEADDocument
和DocumentConverter
类。