PDF是使用最广泛的文档格式之一,因此,各软件厂商竭力开发支持PDF的解决方案。LEADTOOLS Document and Medical Imaging SDK可通过LEADTOOLS提供的先进PDF插件为.Net应用程序添加强大的PDF支持。除了加载和保存可检索文本和图像基础的PDF文件,LEADTOOLS还可以提取和编辑文本(无需OCR)、合并、拆分页面、阅读和更新书签、链接、跳转和源数据等。接下来,我们将以示例的方式向大家展示LEADTOOLS的高级PDF插件。
PDF Document功能:
PDF File功能:
LEADTOOLS先进的PDF功能建立在Leadtools.Pdf 命名空间的两个类中: PDFFile和PDFDocument。PDFFile类用于修改元数据、页面和转换。 PDFDocument用于解析和修改PDF文件的文档对象结构。
在下列示例中,我们使用 PDFFile和PDFDocumentProperties类来加载PDF文件,并修改元数据。
string fileName = @"C:\Document.pdf";
// Load it
PDFFile file = new PDFFile(fileName);
// Update the properties
file.DocumentProperties = new PDFDocumentProperties();
file.DocumentProperties.Author = "Me";
file.DocumentProperties.Title = "My Title";
file.DocumentProperties.Subject = "My Subject";
file.DocumentProperties.Creator = "My Application";
file.DocumentProperties.Modified = DateTime.Now;
// Save it
file.SetDocumentProperties(null);
同样,PDFFile类也提供了多种高级功能,如插入、删除、合并PDF以及转换等。下面的例子合并三个文件,并将这些文件转换为PDF / A格式。
string fileName1 = @"C:\File1.pdf";
string fileName2 = @"C:\File2.pdf";
string fileName3 = @"C:\File3.pdf";
string finalFileName = @"C:\Final.pdf";
// Load first file
PDFFile file = new PDFFile(fileName1);
// Merge with second and third files, put the result in final
file.MergeWith(new string[] { fileName2, fileName3 }, finalFileName);
// Convert final file to PDF/A
file = new PDFFile(finalFileName);
file.ConvertToPDFA(null);
PDFDocument类提供了可检索PDF功能。使用 PDFParsePagesOptions,你可以选择解析PDF对象、字体、超链接等。在下面的例子中,我们将加载一个PDF文件,并在MessageBox中显示文本。
string fileName = @"C:\Document.pdf";
// Create a PDF document
PDFDocument document = new PDFDocument(fileName);
// Parse the objects of the first page
document.ParsePages(PDFParsePagesOptions.Objects, 1, 1);
// Get the page
PDFDocumentPage page = document.Pages[0];
// Use a StringBuilder to gather the text
StringBuilder text = new StringBuilder();
// Loop through the objects
foreach (PDFObject obj in page.Objects)
{
switch (obj.ObjectType)
{
case PDFObjectType.Text:
// Add the text character code
text.Append(obj.Code);
// If this is the last object in a line, add a line terminator
if (obj.TextProperties.IsEndOfLine)
text.AppendLine();
break;
case PDFObjectType.Image:
case PDFObjectType.Rectangle:
default:
// Do nothing
break;
}
}
// Show the text
MessageBox.Show(text.ToString());