Bài viết này hướng dẫn cách trích xuất liên kết từ PDF bằng C#. Bài viết có các thiết lập IDE, các bước và mã mẫu để phát triển trình trích xuất liên kết PDF bằng C#. Bạn sẽ học cách lấy các chú thích đã chọn từ một trang và lấy URI từ các chú thích kiểu liên kết.
Các bước trích xuất URL từ PDF bằng C#
- Đặt IDE để sử dụng Aspose.PDF for .NET để trích xuất URI từ trang PDF
- Tải tệp PDF nguồn file và lặp qua tất cả các trang trong đó
- Tạo annotation selector để tìm chú thích liên kết trên một trang
- Trích xuất tất cả các chú thích và lấy danh sách các chú thích đã chọn
- Lặp lại qua từng chú thích liên kết và tìm các hành động liên quan
- Chuyển hành động sang GoToURIAction để truy cập và hiển thị URI
Các bước này mô tả cách trích xuất siêu liên kết từ PDF bằng C#. Tạo một bộ chọn chú thích cho các chú thích liên kết và sử dụng nó để chọn danh sách các chú thích mục tiêu. Ép kiểu từng chú thích liên kết thành GoToURIAction và lấy URI từ hành động này.
Mã để trích xuất siêu liên kết từ PDF bằng C#
using System; | |
using System.Linq; | |
using Aspose.Pdf; | |
using Aspose.Pdf.Annotations; | |
class PdfLinkExtractor | |
{ | |
static void Main() | |
{ | |
// Initialize and apply the Aspose.PDF license | |
new License().SetLicense("license.lic"); | |
// Load the PDF document containing hyperlinks | |
using (var pdfDocument = new Document("PdfWithLinks.pdf")) | |
{ | |
// Loop through each page in the PDF document | |
foreach (var (pdfPage, pageNumber) in pdfDocument.Pages.Select((page, index) => (page, index + 1))) | |
{ | |
// Display the current page number | |
Console.WriteLine($"Processing Page {pageNumber}"); | |
// Create an annotation selector to find link annotations on the page | |
var linkSelector = new AnnotationSelector(new LinkAnnotation(pdfPage, Rectangle.Trivial)); | |
// Extract all annotations from the current page | |
pdfPage.Accept(linkSelector); | |
// Retrieve the list of selected link annotations | |
var linkAnnotations = linkSelector.Selected; | |
// Iterate through each link annotation | |
foreach (var annotation in linkAnnotations) | |
{ | |
// Check if the annotation has any associated actions | |
if (annotation.Actions.Any()) | |
{ | |
// Cast the action to a GoToURIAction to access the URI | |
var uriAction = (GoToURIAction)((LinkAnnotation)annotation).Action; | |
// Display the extracted URI | |
Console.WriteLine($"Found URI: {uriAction.URI}"); | |
} | |
} | |
} | |
} | |
// Indicate that the process is complete | |
Console.WriteLine("URI extraction completed."); | |
} | |
} |
Mã ở trên minh họa cách trích xuất tất cả các liên kết từ PDF bằng C#. AnnotationSelector lấy một đối tượng LinkAnnotation yêu cầu đối tượng page và hình chữ nhật. Phương thức Accept() trong lớp Page lấy đối tượng chọn liên kết và lưu các chú thích liên kết trong bộ sưu tập Selected.
Hướng dẫn nhanh này đã hướng dẫn chúng ta cách trích xuất siêu liên kết từ trang PDF. Để xóa siêu liên kết khỏi tệp PDF, hãy tham khảo bài viết Cách xóa siêu liên kết khỏi PDF trong C#.