PDF에서 링크 업데이트

다음 코드 조각은 Aspose.PDF.Drawing 라이브러리와 함께 작동합니다.

PDF 파일에서 링크 업데이트

PDF 파일에 하이퍼링크 추가에서 논의한 것처럼, LinkAnnotation 클래스는 PDF 파일에 링크를 추가할 수 있게 해줍니다. PDF 파일 내부에서 기존 링크를 가져오는 데 사용되는 비슷한 클래스도 있습니다. 기존 링크를 업데이트해야 할 때 이것을 사용하세요. 기존 링크를 업데이트하려면:

  1. PDF 파일을 로드하세요.
  2. PDF 파일에서 특정 페이지로 이동하세요.
  3. GoToAction 객체의 Destination 속성을 사용하여 링크 목적지를 지정하세요.
  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;
// 링크 객체에 대한 목적지를 지정합니다.
// 첫 번째 매개변수는 문서 객체, 두 번째는 목적지 페이지 번호입니다.
// 5번째 인수는 해당 페이지를 표시할 때 줌 인수입니다. 2를 사용하면 페이지가 200% 줌으로 표시됩니다.
goToAction.Destination = new Aspose.Pdf.Annotations.XYZExplicitDestination(1, 1, 2, 2);
dataDir = dataDir + "PDFLINK_Modified_UpdateLinks_out.pdf";
// 업데이트된 링크를 포함하여 문서를 저장합니다.
doc.Save(dataDir);

웹 주소로 링크 목적지 설정

하이퍼링크를 업데이트하여 웹 주소를 가리키도록 하려면 GoToURIAction 객체를 인스턴스화하고 LinkAnnotation의 Action 속성에 전달하세요. 다음 코드 스니펫은 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);

링크 주석 텍스트 색상 업데이트

링크 주석은 텍스트를 포함하지 않습니다. 링크 주석에 텍스트가 포함되어 있지 않습니다.

// 전체 예제와 데이터 파일은 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);