تحديث الروابط في ملف PDF

يعمل الجزء التالي من الكود أيضًا مع مكتبة Aspose.PDF.Drawing.

تحديث الروابط في ملف PDF

كما نوقش في إضافة ارتباط تشعبي في ملف PDF، فإن فئة LinkAnnotation تتيح إمكانية إضافة روابط في ملف PDF. هناك أيضًا فئة مشابهة تُستخدم للحصول على الروابط الموجودة داخل ملفات PDF. استخدم هذا إذا كنت بحاجة لتحديث رابط موجود. لتحديث رابط موجود:

  1. تحميل ملف PDF.
  2. انتقل إلى صفحة معينة في ملف PDF.
  3. حدد وجهة الرابط باستخدام خاصية Destination لكائن GoToAction.
  4. يتم تحديد صفحة الوجهة باستخدام منشئ XYZExplicitDestination.

تعيين هدف الرابط إلى صفحة في نفس المستند

يظهر الجزء التالي من الكود كيفية تحديث رابط في ملف PDF وتعيين هدفه إلى الصفحة الثانية من المستند. يوضح الجزء التالي من الكود كيفية تحديث رابط في ملف PDF وتحديد هدفه إلى الصفحة الثانية من المستند.

// للحصول على أمثلة كاملة وملفات بيانات، يرجى الذهاب إلى https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// مسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// تحميل ملف PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
// الحصول على أول تعليق توضيحي للرابط من الصفحة الأولى للمستند
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// تعديل الرابط: تغيير وجهة الرابط
GoToAction goToAction = (GoToAction)linkAnnot.Action;
// تحديد وجهة لكائن الرابط
// الوسيطة الأولى هي كائن المستند، والثانية هي رقم صفحة الوجهة.
// الوسيطة الخامسة هي عامل التكبير عند عرض الصفحة المعنية. عند استخدام 2، سيتم عرض الصفحة بتكبير 200%
goToAction.Destination = new Aspose.Pdf.Annotations.XYZExplicitDestination(1, 1, 2, 2);
dataDir = dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf";
// حفظ المستند مع الرابط المحدث
doc.Save(dataDir);

تعيين وجهة الرابط إلى عنوان ويب

لتحديث الرابط الهايبرلينك بحيث يشير إلى عنوان ويب، قم بإنشاء كائن GoToURIAction ومرره إلى خاصية Action الخاصة بـ LinkAnnotation. يوضح الكود التالي كيفية تحديث رابط في ملف PDF وتعيين هدفه إلى عنوان ويب.

// للأمثلة الكاملة وملفات البيانات، يرجى زيارة https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// مسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// تحميل ملف PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");

// الحصول على أول تعليق توضيحي للرابط من أول صفحة من المستند
LinkAnnotation linkAnnot = (LinkAnnotation)doc.Pages[1].Annotations[1];
// تعديل الرابط: تغيير إجراء الرابط وتعيين الهدف كعنوان ويب
linkAnnot.Action = new GoToURIAction("www.aspose.com");

dataDir = dataDir + "SetDestinationLink_out.pdf";
// حفظ المستند بالرابط المحدث
doc.Save(dataDir);

تعيين وجهة الرابط إلى ملف PDF آخر

الكود التالي يوضح كيفية تحديث رابط في ملف PDF وتعيين وجهته إلى ملف PDF آخر.

// للحصول على أمثلة كاملة وملفات البيانات، يرجى زيارة https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// مسار إلى مجلد الوثائق.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// تحميل ملف PDF
Document document = new Document(dataDir + "UpdateLinks.pdf");

LinkAnnotation linkAnnot = (LinkAnnotation)document.Pages[1].Annotations[1];

GoToRemoteAction goToR = (GoToRemoteAction)linkAnnot.Action;
// السطر التالي يحدث الوجهة، لا يحدث الملف
goToR.Destination = new XYZExplicitDestination(2, 0, 0, 1.5);
// السطر التالي يحدث الملف
goToR.File = new FileSpecification(dataDir +  "input.pdf");

dataDir = dataDir + "SetTargetLink_out.pdf";
// حفظ المستند بالرابط المحدث
document.Save(dataDir);

تحديث لون نص LinkAnnotation

التعليق التوضيحي للرابط لا يحتوي على نص. التعليق التوضيحي للرابط لا يحتوي على نص.

// للحصول على أمثلة كاملة وملفات بيانات، يرجى زيارة https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// مسار إلى دليل المستندات.
string dataDir = RunExamples.GetDataDir_AsposePdf_LinksActions();
// تحميل ملف PDF
Document doc = new Document(dataDir + "UpdateLinks.pdf");
foreach (Annotation annotation in doc.Pages[1].Annotations)
{
    if (annotation is LinkAnnotation)
    {
        // البحث عن النص تحت التعليق التوضيحي
        TextFragmentAbsorber ta = new TextFragmentAbsorber();
        Rectangle rect = annotation.Rect;
        rect.LLX -= 10;
        rect.LLY -= 10;
        rect.URX += 10;
        rect.URY += 10;
        ta.TextSearchOptions = new TextSearchOptions(rect);
        ta.Visit(doc.Pages[1]);
        // تغيير لون النص.
        foreach (TextFragment tf in ta.TextFragments)
        {
            tf.TextState.ForegroundColor = Color.Red;
        }
    }

}
dataDir = dataDir + "UpdateLinkTextColor_out.pdf";
// حفظ المستند برابط محدث
doc.Save(dataDir);