Perbarui Tautan dalam PDF

Perbarui Tautan dalam File PDF

Seperti dibahas dalam Menambahkan Hyperlink dalam File PDF, kelas LinkAnnotation memungkinkan penambahan tautan dalam file PDF. Ada juga kelas serupa yang digunakan untuk mendapatkan tautan yang ada dari dalam file PDF. Gunakan ini jika Anda perlu memperbarui tautan yang ada. Untuk memperbarui tautan yang ada:

  1. Muat file PDF.

  2. Pergi ke halaman tertentu dalam file PDF.

  3. Tentukan tujuan tautan menggunakan properti Destination dari objek GoToAction.

  4. Halaman tujuan ditentukan menggunakan konstruktor XYZExplicitDestination.

Setel Target Tautan ke Halaman dalam Dokumen yang Sama

Cuplikan kode berikut menunjukkan cara memperbarui tautan dalam file PDF dan menetapkan targetnya ke halaman kedua dari dokumen.

    public static void SetLinkTargetToAPageInTheSameDocument() {
        
        // Memuat file PDF
        Document document = new Document(_dataDir + "UpdateLinks.pdf");
        Page page = document.getPages().get_Item(1);
        // Mendapatkan anotasi tautan pertama dari halaman pertama dokumen
        LinkAnnotation linkAnnot = (LinkAnnotation)page.getAnnotations().get_Item(1);

        // Modifikasi tautan: ubah tujuan tautan
        GoToAction goToAction = (GoToAction)linkAnnot.getAction();
        // Menentukan tujuan untuk objek tautan
        // Mewakili tujuan eksplisit yang menampilkan halaman dengan koordinat (kiri, atas) diposisikan di sudut kiri atas 
        // jendela dan isi halaman diperbesar dengan faktor zoom.
        // Parameter pertama adalah nomor halaman tujuan.
        // Yang kedua adalah koordinat kiri
        // Yang ketiga adalah koordinat atas
        // Argumen keempat adalah faktor zoom saat menampilkan halaman yang bersangkutan. Menggunakan 2 berarti halaman akan ditampilkan dengan zoom 200%
        goToAction.setDestination(new XYZExplicitDestination(1, 1, 2, 2 ));
        
        // Menyimpan dokumen dengan tautan yang diperbarui
        document.save(_dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf");        
    }

Mengatur Tujuan Tautan ke Alamat Web

Untuk memperbarui hyperlink agar mengarah ke alamat web, buat objek GoToURIAction dan masukkan ke properti Action dari LinkAnnotation. Cuplikan kode berikut menunjukkan cara memperbarui tautan dalam file PDF dan menetapkan targetnya ke alamat web.

    public static void SetLinkDestinationToWebAddress() {        
        // Memuat file PDF
        Document document = new Document(_dataDir + "UpdateLinks.pdf");
        Page page = document.getPages().get_Item(1);
    
        // Mendapatkan anotasi tautan pertama dari halaman pertama dokumen
        LinkAnnotation linkAnnot = (LinkAnnotation)page.getAnnotations().get_Item(1);

        // Modifikasi tautan: ubah aksi tautan dan tetapkan target sebagai alamat web
        linkAnnot.setAction(new GoToURIAction("www.aspose.com"));
        
        // Simpan dokumen dengan tautan yang diperbarui
        document.save(_dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf");        
    }

Cuplikan kode berikut menunjukkan cara memperbarui tautan dalam file PDF dan mengatur targetnya ke file PDF lain.

    public static void SetLinkTargetToAnotherPDFFile() {        
        // Memuat file PDF
        Document document = new Document(_dataDir + "UpdateLinks.pdf");
        Page page = document.getPages().get_Item(1);
    
        LinkAnnotation linkAnnot = (LinkAnnotation)page.getAnnotations().get_Item(1);

        GoToRemoteAction goToR = (GoToRemoteAction)linkAnnot.getAction();
        // Baris berikut memperbarui tujuan, tidak memperbarui file
        goToR.setDestination(new XYZExplicitDestination(2, 0, 0, 1.5));
        // Baris berikut memperbarui file
        goToR.setFile (new FileSpecification(_dataDir +  "input.pdf"));

        // Menyimpan dokumen dengan tautan yang diperbarui
        document.save(_dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf");        
    }

Update LinkAnnotation Text Color

Anotasi tautan tidak mengandung teks. Sebaliknya, teks ditempatkan dalam konten halaman di bawah anotasi. Oleh karena itu, untuk mengubah warna teks, ganti warna teks halaman alih-alih mencoba mengubah warna anotasi. Potongan kode berikut menunjukkan cara memperbarui warna anotasi tautan dalam file PDF.

    public static void UpdateLinkAnnotationTextColor () {        
        // Muat file PDF
        Document document = new Document(_dataDir + "UpdateLinks.pdf");
        Page page = document.getPages().get_Item(1);
           
        for (Annotation annotation : page.getAnnotations())
        {
            if (annotation.getAnnotationType() == AnnotationType.Link)
            {
                // Cari teks di bawah anotasi
                TextFragmentAbsorber ta = new TextFragmentAbsorber();
                Rectangle rect = annotation.getRect();
                rect.setLLX(rect.getLLX()-10);
                rect.setLLY(rect.getLLY()-10);
                rect.setURX(rect.getURX()+ 10);
                rect.setURY(rect.getURY()+ 10);

                ta.setTextSearchOptions(new TextSearchOptions(rect));
                ta.visit(page);
                // Ubah warna teks.
                for (TextFragment tf : ta.getTextFragments())
                {
                    tf.getTextState().setForegroundColor(Color.getRed());
                }
            }
        
        }                       
        // Simpan dokumen dengan tautan yang diperbarui
        document.save(_dataDir + "UpdateLinkTextColor_out.pdf");        
    }