Den här artikeln visar hur du extraherar länkar från PDF med C#. Den har IDE-inställningar, steg och en exempelkod för att utveckla en PDF-länkextraktor med C#. Du kommer att lära dig att hämta valda kommentarer från en sida och hämta URI från kommentarer av länktyp.
Steg för att extrahera URL från PDF med C#
- Ställ in IDE att använda Aspose.PDF for .NET för att extrahera URI från en PDF-sida
- Ladda käll-PDF-filen file och gå igenom alla sidor i den
- Skapa en annotation selector för att hitta länkkommentarer på en sida
- Extrahera alla kommentarer och hämta listan över valda kommentarer
- Iterera genom varje länkkommentar och hitta associerade åtgärder
- Kasta action till en GoToURIAction för att komma åt och visa URI
Dessa steg beskriver hur man extraherar hyperlänkar från PDF med C#. Skapa en anteckningsväljare för länkkommentarerna och använd den för att välja en lista med målkommentarer. Skriv varje länkanteckning till GoToURIAction och hämta URI:n från denna åtgärd.
Kod för att extrahera hyperlänk från PDF med 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."); | |
} | |
} |
Koden ovan visar hur man extraherar alla länkar från PDF med C#. AnnotationSelector tar ett LinkAnnotation-objekt som kräver sidan och rektangelobjektet. Accept()-metoden i klassen Page tar länkväljarobjektet och sparar länkanteckningarna i Selected-samlingen.
Denna snabba handledning har lärt oss processen att extrahera hyperlänkar från en PDF-sida. För att ta bort hyperlänkar från PDF-filen, se artikeln Hur man tar bort hyperlänk från PDF i C#.