Αφαιρέστε υπερσυνδέσμους μετά τη μετατροπή από το Html
Εισαγωγή
Στην ψηφιακή εποχή, η μετατροπή εγγράφων HTML σε PDF είναι μια συνηθισμένη εργασία. Ωστόσο, μερικές φορές μπορεί να θέλετε να αφαιρέσετε υπερσυνδέσμους από το PDF που έχει μετατραπεί για διάφορους λόγους, όπως η βελτίωση της αναγνωσιμότητας ή η αποτροπή της ανεπιθύμητης πλοήγησης. Σε αυτό το σεμινάριο, θα διερευνήσουμε πώς να το πετύχετε αυτό χρησιμοποιώντας το Aspose.PDF για .NET.
Προαπαιτούμενα
Πριν βουτήξετε στον κώδικα, βεβαιωθείτε ότι έχετε τις ακόλουθες προϋποθέσεις:
- Visual Studio: Βεβαιωθείτε ότι έχετε εγκαταστήσει το Visual Studio στον υπολογιστή σας. Αυτό θα είναι το περιβάλλον ανάπτυξής σας.
- Aspose.PDF για .NET: Πρέπει να έχετε τη βιβλιοθήκη Aspose.PDF. Μπορείτε να το κατεβάσετε απόεδώ.
- Βασικές γνώσεις C#: Η εξοικείωση με τον προγραμματισμό C# θα σας βοηθήσει να κατανοήσετε καλύτερα τον κώδικα.
Εισαγωγή πακέτων
Για να ξεκινήσετε, πρέπει να εισαγάγετε τα απαραίτητα πακέτα στο έργο σας C#. Δείτε πώς μπορείτε να το κάνετε:
- Ανοίξτε το έργο του Visual Studio.
- Κάντε δεξί κλικ στο έργο σας στην Εξερεύνηση λύσεων και επιλέξτε “Manage NuGet Packages”.
- Αναζήτηση για
Aspose.PDF
και εγκαταστήστε το.
using Aspose.Pdf.Annotations;
using Aspose.Pdf.Text;
using System.IO;
Τώρα που έχετε ρυθμίσει τα πάντα, ας αναλύσουμε τη διαδικασία κατάργησης υπερσυνδέσμων από ένα αρχείο HTML μετά τη μετατροπή του σε PDF.
Βήμα 1: Ρυθμίστε τον Κατάλογο Εγγράφων
Πρώτα πράγματα πρώτα, πρέπει να καθορίσετε τη διαδρομή προς τον κατάλογο των εγγράφων σας. Εδώ βρίσκεται το αρχείο HTML και όπου θα αποθηκευτεί το PDF εξόδου.
// Η διαδρομή προς τον κατάλογο εγγράφων.
string dataDir = "YOUR DOCUMENT DIRECTORY";
Αντικαθιστώ"YOUR DOCUMENT DIRECTORY"
με την πραγματική διαδρομή όπου είναι αποθηκευμένο το αρχείο HTML.
Βήμα 2: Φορτώστε το έγγραφο HTML
Στη συνέχεια, θα φορτώσετε το έγγραφο HTML χρησιμοποιώντας τοDocument
τάξη από το Aspose.PDF. Αυτή η τάξη σάς επιτρέπει να εργάζεστε εύκολα με έγγραφα PDF.
Document doc = new Document(dataDir + "SampleHtmlFile.html", new HtmlLoadOptions());
Εδώ, φορτώνουμε το αρχείο HTML με το όνομαSampleHtmlFile.html
. Βεβαιωθείτε ότι αυτό το αρχείο υπάρχει στον καθορισμένο κατάλογό σας.
Βήμα 3: Αποθηκεύστε το έγγραφο στη ροή μνήμης
Πριν ξεκινήσουμε την επεξεργασία των σχολιασμών, πρέπει να αποθηκεύσουμε το έγγραφο σε μια ροή μνήμης. Αυτό το βήμα είναι κρίσιμο καθώς προετοιμάζει το έγγραφο για περαιτέρω χειραγώγηση.
doc.Save(new MemoryStream());
Αυτή η γραμμή αποθηκεύει το έγγραφο στη μνήμη, επιτρέποντάς μας να εργαστούμε μαζί του χωρίς να το γράψουμε ακόμα στο δίσκο.
Βήμα 4: Επανάληψη μέσω σχολιασμών
Τώρα, θα επαναλάβουμε τους σχολιασμούς στο έγγραφο. Οι σχολιασμοί είναι στοιχεία όπως σύνδεσμοι, σχόλια και επισημάνσεις. Μας ενδιαφέρουν συγκεκριμένα οι σχολιασμοί συνδέσμων.
foreach (Annotation a in doc.Pages[1].Annotations)
{
if (a.AnnotationType == AnnotationType.Link)
{
// Επεξεργαστείτε τον σχολιασμό του συνδέσμου
}
}
Σε αυτόν τον βρόχο, ελέγχουμε αν ο τύπος σχολιασμού είναι σύνδεσμος. Εάν είναι, προχωράμε στα επόμενα βήματα.
Βήμα 5: Καταργήστε την ενέργεια υπερσύνδεσης
Για κάθε σχολιασμό συνδέσμου, πρέπει να ελέγξουμε αν έχει ενέργεια υπερσύνδεσης. Εάν συμβεί αυτό, θα αφαιρέσουμε την υπερσύνδεση ορίζοντας το URI της σε μια κενή συμβολοσειρά.
LinkAnnotation la = (LinkAnnotation)a;
if (la.Action is GoToURIAction)
{
GoToURIAction gta = (GoToURIAction)la.Action;
gta.URI = "";
Αυτό το απόσπασμα κώδικα διασφαλίζει ότι η ενέργεια υπερσύνδεσης καταργείται αποτελεσματικά.
Βήμα 6: Απορρόφηση τμημάτων κειμένου
Στη συνέχεια, θα απορροφήσουμε τα τμήματα κειμένου που σχετίζονται με τον σχολιασμό του συνδέσμου. Αυτό μας επιτρέπει να χειριστούμε την εμφάνιση του κειμένου.
TextFragmentAbsorber tfa = new TextFragmentAbsorber();
tfa.TextSearchOptions = new TextSearchOptions(a.Rect);
doc.Pages[a.PageIndex].Accept(tfa);
Εδώ, δημιουργούμε έναTextFragmentAbsorber
και ορίστε τις επιλογές αναζήτησής του στο ορθογώνιο του σχολιασμού. Αυτό μας βοηθά να βρούμε το κείμενο που ήταν συνδεδεμένο.
Βήμα 7: Τροποποίηση της εμφάνισης κειμένου
Μόλις έχουμε τα τμήματα κειμένου, μπορούμε να τροποποιήσουμε την εμφάνισή τους. Σε αυτήν την περίπτωση, θα αφαιρέσουμε την υπογράμμιση και θα αλλάξουμε το χρώμα του κειμένου σε μαύρο.
foreach (TextFragment tf in tfa.TextFragments)
{
tf.TextState.Underline = false;
tf.TextState.ForegroundColor = Color.Black;
}
Αυτό το βήμα βελτιώνει την αναγνωσιμότητα του κειμένου καταργώντας το στυλ υπερ-σύνδεσης.
Βήμα 8: Διαγράψτε τον σχολιασμό
Αφού τροποποιήσουμε το κείμενο, μπορούμε να διαγράψουμε με ασφάλεια τον σχολιασμό του συνδέσμου από το έγγραφο.
doc.Pages[a.PageIndex].Annotations.Delete(a);
}
Αυτή η γραμμή αφαιρεί την υπερ-σύνδεση από το PDF, διασφαλίζοντας ότι δεν υπάρχει πλέον στην τελική έξοδο.
Βήμα 9: Αποθηκεύστε το τροποποιημένο έγγραφο
Τέλος, πρέπει να αποθηκεύσουμε το τροποποιημένο έγγραφο σε ένα νέο αρχείο PDF. Αυτό είναι το τελευταίο βήμα στη διαδικασία μας.
doc.Save(dataDir + "RemoveHyperlinksFromText_out.pdf");
Αυτή η γραμμή αποθηκεύει το έγγραφο με τους υπερσυνδέσμους που έχουν αφαιρεθεί, δημιουργώντας ένα νέο αρχείο PDF με το όνομαRemoveHyperlinksFromText_out.pdf
.
Σύναψη
Και ορίστε το! Καταργήσατε με επιτυχία υπερσυνδέσμους από ένα έγγραφο HTML αφού το μετατρέψατε σε PDF χρησιμοποιώντας το Aspose.PDF για .NET. Αυτή η διαδικασία όχι μόνο βελτιώνει την αναγνωσιμότητα του PDF σας, αλλά σας δίνει επίσης τον έλεγχο του περιεχομένου που παρουσιάζετε.
Συχνές ερωτήσεις
Μπορώ να αφαιρέσω υπερσυνδέσμους από οποιοδήποτε έγγραφο PDF;
Ναι, μπορείτε να αφαιρέσετε υπερσυνδέσμους από οποιοδήποτε έγγραφο PDF χρησιμοποιώντας το Aspose.PDF για .NET.
Είναι το Aspose.PDF δωρεάν για χρήση;
Το Aspose.PDF προσφέρει μια δωρεάν δοκιμή, αλλά για πλήρεις δυνατότητες, πρέπει να αγοράσετε μια άδεια χρήσης. Ελέγξτε τοσελίδα αγοράς.
Τι γίνεται αν αντιμετωπίσω προβλήματα κατά τη χρήση του Aspose.PDF;
Μπορείτε να αναζητήσετε βοήθεια για τοφόρουμ υποστήριξης.
Μπορώ να μετατρέψω άλλες μορφές αρχείων σε PDF χρησιμοποιώντας το Aspose;
Ναι, το Aspose υποστηρίζει διάφορες μορφές αρχείων για μετατροπή σε PDF.
Πού μπορώ να κατεβάσω το Aspose.PDF για .NET;
Μπορείτε να το κατεβάσετε από τοσύνδεσμος λήψης.