%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%82%AC%EC%9A%A9%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
제가 가지고 있는 여러 관련 PDF 문서에 대해 검색 기능을 사용하려고 하는데 어떤 이유로 "the"와 같은 간단한 것을 검색하면 아무것도 나오지 않습니다.
이 문제를 해결하기 위해 제가 배운 몇 가지 사항은 다음과 같습니다.
PDF에서 붙여넣은 텍스트를 검색 상자에 직접 복사하면 해당 문자열을 찾을 수 있지만 키보드 입력은 검색에 작동하지 않습니다.
PDF에서 브라우저나 텍스트 조작 응용 프로그램으로 복사할 때 텍스트가 어떻게 보이는지에 대한 예로 다음과 같은 텍스트를 복사했습니다. 급여 처리 중에 발생합니다."
실제로 복사하여 붙여넣으면 다음과 같습니다.
ul 것 ν ν ν
답변1
이러한 모든 "문자"는 유니코드 "개인 사용 영역"에 있습니다. 이러한 코드 포인트에 대한 문자 모양이 포함된 글꼴과 함께 일반 텍스트로 나타납니다.
하지만 난독화는 매우 약합니다. 를 살펴보겠습니다 .
이는 아마도 입니다 . As
코드 포인트는 \uF041
및 입니다 \uF073
. 공교롭게도 "라틴 대문자 A"에는 \u0041
"라틴 소문자 S"에는 가 있습니다 \u0073
.
모든 코드 포인트를 살펴보고 0xF000
난독화된 텍스트에서/로 변환하려면 빼기/덧셈만 하면 됩니다. 이를 통해 문서에서 텍스트를 복사하거나 문서에서 텍스트를 검색할 수 있습니다.
다음은 텍스트를 디코딩할 JavaScript 코드입니다.
{
let source = " ";
let decoded = source.replace(/./g, c => {
let cc = c.codePointAt(0);
return cc > 0xF000 ? String.fromCodePoint(cc - 0xF000) : c;
});
console.log(decoded);
}
다른 방향으로 가려면 한 단어에만 해당됩니다.
{
let source = "understand";
let coded = source.replace(/./g, c => String.fromCodePoint(c.codePointAt(0) + 0xF000));
console.log(coded);
}
두 조각 모두 주어진 예를 엄격하게 기반으로 합니다. 다른 인코딩 오류가 있는 경우 코드를 추가로 조정해야 합니다.
일반적으로 를 통해 액세스할 수 있는 브라우저의 개발자 콘솔에서 이러한 스니펫을 사용할 수 있습니다 F12.