2010-08-12 2 views
3

하이퍼 링크가있는 두 개의 pdf 문서 (doc1 및 doc2)가 있습니다 (예 : www.somlink.com, www.somlink2.com). PDF 사양에 따라 링크 특수 효과를 통해 하이퍼 링크를 얻을 수 있습니다. 링크 주석은 "Annot"키 아래에있는 pdf 페이지 사전에서 찾을 수 있습니다. 어디서 PDF 문서 구조에서 하이퍼 링크를 얻을 수 있습니까? (페이지 사전의 "Annot"항목 제외)?

CGPDFDictionaryRef pageDictionary = CGPDFPageGetDictionary(someCGPDFPage); 
CGPDFArrayRef annots; 
CGPDFDictionaryGetArray(pageDictionary, "Annots", &annots); 

그래서 문제는 하나 개의 PDF 문서 (DOC1)에서 나는 페이지 사전에 그러한 엔트리가없는 것을 "Annots"배열 만 다른 문서 (doc2)에서 얻을 수 있다는 것입니다. 그리고 PDFKit.framework를 사용하면 페이지 사전에 "Annot"항목이 없더라도 - (NSArray *) annotations 메서드를 사용하여 PDFPage 클래스에서 해당 주석을 가져올 수 있습니다.

나는 내가 석영 프레임 워크 :

함께 일하고 아이 패드/아이폰에 PDFKit.framework을 사용할 수 없습니다

그래서 당신이 하이퍼 링크 (또는 PDF Reference의 링크 주석)을 지정할 수있는 다른 곳이 보인다 , "Annot"배열뿐만 아니라 PDFKit.framework는 어떻게 든 그것을 할 ho를 알고 있습니다.

어디서 하이퍼 링크를 얻을 수 있습니까?

답변

1

페이지에서 링크를 클릭하면 주석을 추가 할 수 있습니다. 기간. 주석이없고 링크가 없습니다.

"http://blah.com"텍스트 문자열은 반드시 링크 일 필요는 없으며 URL을 설명하는 텍스트 조각 일뿐입니다. 혼란을 일으키는 원인이 될 수 있습니다.

북마크에 링크 동작을 삽입 할 수도 있습니다. 필자는 PDFKit이나 Quartz에 익숙하지 않기 때문에 API 호출에 관해서는 독자적으로 살펴보아야합니다.

마지막으로, (귀하의 질문을 다시 읽으 셨습니다.) 주석은 부모 페이지 개체에서 상속 될 수 있다고 생각합니다. 저것 좀 봐야 겠어 ... 아니. 주석 배열은 리프 페이지 객체에 있어야하며 그렇지 않으면 유효하지 않습니다.

PDF에 대한 링크를 게시 할 수 있습니까? 뭔가 이상하지 않습니다.

1

Adobe Reader와 같은 PDF 뷰어는 하이퍼 링크로 보이는 경우 즉, http : //, https : //, ftp : //로 시작하여 일부 URL로 끝나면 일반 텍스트를 클릭하고 탐색 할 수 있습니다 공간과 같은 구분 기호. 그만큼 간단합니다.)

관련 문제