PDFNet 라이브러리를 사용하여 PDF 파일의 내용을 추출합니다. 우리가해야 할 일 중 하나는 PDF에서 URL을 추출하는 것입니다. 불행히도 파일의 요소를 검사 할 때 URL을 조각으로 가져오고 어떤 조각이 어느 부분으로 이동하는지 항상 명확하지는 않습니다.PDFNet을 사용하여 PDF에서 URL 가져 오기
PDFNet에서 전체 URL을 얻는 가장 좋은 방법은 무엇입니까?
PDFNet 라이브러리를 사용하여 PDF 파일의 내용을 추출합니다. 우리가해야 할 일 중 하나는 PDF에서 URL을 추출하는 것입니다. 불행히도 파일의 요소를 검사 할 때 URL을 조각으로 가져오고 어떤 조각이 어느 부분으로 이동하는지 항상 명확하지는 않습니다.PDFNet을 사용하여 PDF에서 URL 가져 오기
PDFNet에서 전체 URL을 얻는 가장 좋은 방법은 무엇입니까?
링크는 주석으로 페이지에 저장됩니다. 주석으로부터 URI를 얻기 위해 다음 코드와 같은 것을 할 수 있습니다. try/catch 블록은 값이 누락 되어도 여전히 Obj 객체를 반환하기 때문에 거기에 있습니다.하지만 던지기 전에는 아무 메소드도 호출 할 수 없기 때문에 try/catch 블록이 있습니다.
또한 링크처럼 보이는 모든 것이 동일한 것은 아니라는 점에 유의하십시오. 동일한 Word 파일에서 두 개의 PDF를 만들었습니다. 첫 번째는 PDF로 인쇄했습니다. 두 번째는 Acrobat에서 만들었습니다.
두 파일의 링크는 Acrobat Reader에서 제대로 작동하지만 두 번째 파일에는 PDFNet에서 볼 수있는 주석이 있습니다.
Page page = doc.GetPage(1);
for (int i = 1; j < page.GetNumAnnots(); j++) {
Annot annot = page.GetAnnot(i);
if (!annot.IsValid())
continue;
var sdf = annot.GetSDFObj();
string uri = ParseURI(sdf);
Console.WriteLine(uri);
}
private string ParseURI(pdftron.SDF.Obj obj) {
try {
if (obj.IsDict()) {
var aDictionary = obj.Find("A").Value();
var uri = aDictionary.Find("URI").Value();
return uri.GetAsPDFText();
}
} catch (Exception) {
return null;
}
return null;
}
전체 문서에서 텍스트 출력을 얻는 방법은 토글링입니까? – Paparazzi