Command Palette

Search for a command to run...

줄 바꿈이 무엇을 얻을지 결정하는 곳

줄 바꿈이 무엇을 얻을지 결정하는 곳

T
Toolz Team
|Oct 23, 2026|17 최소 읽기
Google 에서 Toolz.dev 를 선호합니다

PDF 도구 컬렉션의 일부입니다

PDF to Text

Pull the text out of a PDF and save it as a .txt file, in your browser. Keep the page layout or reflow it into paragraphs, with or without page markers.

PDF to Text를 사용하십시오

PDF에는 텍스트 줄이 포함되어 있지 않습니다. 그것은 좌표에 글리프를 포함하고, 당신이 볼 수있는 선은 당신의 눈이 조립하는 것입니다. 추출기도 실행당 3개의 숫자와 두 개의 임계값에서 이를 어셈블해야 하며, 추출된 텍스트의 거의 모든 이상한 점은 이러한 임계값 중 하나로 거슬러 올라가 잘못된 발생을 발생시킨 합리적인 호출을 만듭니다. 이 글을 쓰면서 내가 고친 것은 "오세이-"라는 선을 가로질러 갈라진 성을 고친 다음 "멘사"를 "오세이멘사"로 바꾸었습니다. 하이픈은 의도한 대로 유지되고, 그 뒤에는 결코 속하지 않은 공백이 있습니다.

TL;DR: 추출은 라인 재조립이며 중요한 설정은 보이지 않습니다. 서로의 1/4이내의 폰트 높이는 한 줄, 페이지의 일반적인 간격의 1.45배 이상은 단락을 시작하는 세로 간격, 글꼴 높이의 1/4 아래의 가로 간격은 단어 공간이 아닙니다. ...을 고르 다시 흐르다 편집기에 붙여넣기하고 보존하다 테이블과 코드용. 12자 미만의 PDF 평균 페이지는 스캔이며 대신 OCR이 필요합니다. 도구는 빈 파일을 건네지 않고 말합니다. PDF에서 텍스트로 브라우저에서 실행됩니다.

PDF에 "추출"이 필요한 이유는 무엇입니까?

그 안에 있는 텍스트는 그림으로 작성되었고 다시 읽는 것은 그것을 쓰는 것과 반대가 아니기 때문입니다.

콘텐츠 스트림은 "이 글꼴을 이 크기로 설정하고 여기로 이동하고, 이 글리프를 표시하십시오"라고 말합니다. 사양 그림 모델을 설명하고 텍스트 연산자는 선과 채우기 모양을 그리는 모델 옆에 있습니다. 행, 단락 또는 열을 의미하는 개체가 없습니다. 무슨 pdf.js Hands Back은 페이지가 칠해진 순서대로 각 문자열, x, y, 너비 및 글꼴 높이가 있는 위치 실행의 평면 목록입니다. 주문이 순서를 읽지 않는 테스트 페이지에서 단일 실행은 한 문자일 수 있습니다.

나머지는 모두 재건축입니다. 세 가지 임계값이 거의 모든 작업을 수행하며 실패를 설명하기 때문에 알 가치가 있습니다.

임계값 값 그것이 결정하는 것
라인 공차 0.5 x 글꼴 높이 두 번의 런이 같은 라인에 놓여 있는지 여부
단락 비율 1.45 x 페이지의 중간 간격 수직 간격이 새 단락을 시작하는지 여부
공간 비율 0.25 x 글꼴 높이 수평 간격이 단어 공간인지 여부

각각은 고정된 점 수가 아니라 텍스트 자체 크기의 일부이므로 같은 페이지의 각주와 제목이 다른 공차를 가지며 9점으로 설정된 문서는 14의 한 세트처럼 작동합니다.

단어 공간 임계값이 필요한 이유는 무엇입니까?

그것 없이는 모든 단어가 분리되기 때문입니다.

PDF 파서는 종종 커닝이나 글꼴 변경 중간 단어 사이에 간격이 없는 여러 실행에 걸쳐 한 단어를 분할합니다. 공간에서 조인이 무조건 회전합니다. filename 안으로 f i l e n a m e. 아무것도 없는 상태로 가입하면 별도의 단어가 함께 실행됩니다.

따라서 규칙은 글꼴 높이의 1/4보다 넓은 간격으로 공백으로 계산되며, 이는 대부분의 서체에서 실제 단어 공간의 대략 너비입니다. 그 아래에서 실행은 한 단어의 일부입니다.

이것은 작동하지 않는 임계값이며 일반적으로 모든 문자가 단어처럼 보일 만큼 충분히 떨어져 있는 넓은 문자 간격이 있는 제목 세트에서 실패를 즉시 알아차릴 것입니다.

리플로우와 보존의 차이점은 무엇입니까?

리플로우는 당신에게 산문을 제공합니다. 보존 페이지를 제공합니다.

다음은 세 줄에 걸쳐 배치된 한 단락이고 다른 단락은 두 가지 모드를 모두 실행합니다.

--- preserve ---
The committee reviewed the figures and agreed that the
revised protocol should be circulated before the end of
the month.
A second paragraph begins here after a larger gap.

--- reflow ---
The committee reviewed the figures and agreed that the revised protocol should be circulated before the end of the month.

A second paragraph begins here after a larger gap.

리플로우는 세 줄을 하나의 문장으로 연결하고 단락 사이에 빈 줄을 넣습니다. Preserve는 문장 중간에 있는 페이지를 포함하여 페이지가 배치된 모든 줄 바꿈을 유지했습니다.

리플로우 사용 보존 사용
문서 또는 편집기에 붙여넣기 열이 내용인 테이블
구절 인용 줄 바꿈이 구문인 코드 목록
스크립트 또는 모델에 텍스트 제공 주소 블록 또는 양식
어쨌든 다시 포맷할 모든 것 레이아웃이 의미를 지닌 모든 것

리플로우는 대부분의 경우 기본값이며 올바른 것입니다. 사람들이 저지르는 실수는 테이블에서 그것을 사용하는 것입니다. 여기서 행을 산문에 결합하면 테이블이 가진 유일한 구조가 파괴됩니다.

단락의 끝 부분을 어떻게 결정합니까?

각 수직 간격을 페이지의 고유한 격차와 비교합니다.

연속된 라인 사이의 모든 간격이 측정되고 중앙값이 취해지며 중앙값이 새 단락을 시작하는 것보다 1.45배 이상 간격이 있습니다. 따라서 단일 간격 페이지는 한 줄에 한 단락으로 돌아오지 않으며 이중 간격 페이지는 단일 블록으로 돌아오지 않습니다.

고정된 숫자가 아닌 중앙값을 사용하면 다른 선행을 가진 문서에서 이 작업을 수행할 수 있습니다. 또한 실패하는 곳이기도 합니다. 행이 거의 없는 페이지에는 신뢰할 수 있는 중앙값이 없습니다. 제목 페이지, 짧은 메모 또는 표지가 종종 하나의 실행 단락으로 돌아옵니다. 이는 동일한 약점입니다. 단어 변환 같은 이유로 있습니다.

수정은 수동이며 빠릅니다. 문단에 대한 단락 나누기는 문턱에 도달하지 않는 방식으로 독자에게 분명합니다.

선을 가로질러 깨진 단어는 어떻게 되었습니까?

그것들은 다시 연결되며 하이픈을 떨어뜨릴 규칙은 추측이 아닌 경우가 더 많습니다.

한 줄이 하이픈으로 끝나면 문제는 조판자가 단어를 깨기 위해 그것을 넣었는지 아니면 단어에 속하는지 여부입니다. 여기서 사용된 규칙은 대소문자입니다. 다음 줄이 소문자로 시작하면 하이픈은 조판기이고 대문자나 숫자로 시작하는 경우 하이픈은 텍스트의 일부가 되고 유지됩니다.

선을 가로질러 부서진 결과 그렇지?
self- + contained selfcontained 예
re- + encode reencode 예
client- + Side client-Side 예
Osei- + Mensah Osei-Mensah 예
COVID- + 19 COVID-19 예
2026- + 03 2026-03 예
well- + known wellknown ...이 아닌

마지막 행은 어떤 규칙에도 고정할 수 없습니다. "잘 알려진"은 자체 하이픈으로 깨지고 "잘 알려진"이 정당화로 깨졌고 동일한 줄의 쌍을 생성하고, 그것들을 구분하는 것은 임계값이 아닌 사전이 필요합니다. 위의 "re-" 및 "encode"에도 동일하게 적용되며, 이는 "reencode"가 누군가가 쓰는 단어가 아니기 때문에 옳습니다.

이 가이드를 작성하는 동안 중간에 있는 행이 변경되었습니다. 보관된 하이픈과 함께 공백을 추가하는 데 사용되는 비중단 케이스 Osei- Mensah 그리고 2026- 03. 하이픈은 어느 쪽이든 단어에 속하므로 그 뒤에 공백은 결코 정확하지 않으며 이전 출력을 주장한 테스트는 동작과 함께 수정되었습니다.

PDF가 스캔인지 어떻게 알 수 있습니까?

페이지당 문자를 계산하여 정품 스캔만으로 넘어갈 수 있을 만큼 충분히 낮은 임계값으로.

스캔한 문서는 이미지로 가득 찬 PDF입니다. 텍스트 레이어가 없으므로 추출은 아무 것도 반환하지 않으며 유용한 응답은 빈 파일을 넘겨주는 것보다 말하는 것입니다.

  0 chars over 3 pages   treated as a scan
 30 chars over 3 pages   treated as a scan
 36 chars over 3 pages   has a text layer
 11 chars over 1 page    treated as a scan
 12 chars over 1 page    has a text layer

줄은 12자 페이지입니다. 그것은 의도적으로 0이 아닙니다. 스캔한 페이지는 종종 스캐너에서 약간의 부수적인 텍스트, 소프트웨어에서 스탬프가 찍힌 페이지 번호 또는 워터마크를 전달합니다. 0의 임계값은 해당 문서를 추출 가능하게 호출하고 세 개의 페이지 번호를 반환합니다.

PDF가 스캔인 경우 다음 단계는 OCR이며, OCR을 깨는 것에 대한 측정된 설명 측정된 버전이 있습니다. 3도를 초과하는 기울기는 저해상도보다 훨씬 더 많은 비용이 듭니다.

열은 어떻습니까?

그들은 인터리브하며, 이것은 추출을 신뢰하기 전에 알아야 할 가치가 있는 한계입니다.

선은 먼저 기준선별로 그룹화되므로 동일한 수직 위치에 있는 두 개의 텍스트 열이 아래가 아닌 가로로 읽힙니다. 두 열로 된 보고서 페이지의 테스트에서 결과는 왼쪽 열의 모든 줄과 바로 옆에 줄을 긋는 것입니다.

Revenue rose in the third Headcount grew by four, quarter on the back of
two all in support. The hiring large renewals signed in plan for the fourth

모든 단어가 존재합니다. 순서는 쓸모가 없으며 출력은 오류가 아니라 유창한 넌센스로 읽습니다.

열 사이의 홈통이 페이지 세분화 단계를 찾을 수 있을 만큼 넓고 규칙적이기 때문에 학술 신문과 신문이 종종 이를 견뎌냅니다. 사이드바, 풀 따옴표 또는 2열 테이블이 있는 보고서는 자주 그렇지 않습니다.

열이 있는 문서에 대한 신뢰할 수 있는 접근 방식은 각 페이지의 첫 번째 단락을 확인하는 것입니다. 문장이 접합된 경우, 잘라내어 한 번에 하나의 열을 추출하거나 산문이 아닌 단어 가방을 받고 있음을 받아들입니다.

PDF에서 테이블을 얻을 수 있습니까?

가치, 그렇습니다. 표, 아니요, 그리고 그 이유는 PDF에 거의 확실히 테이블이 포함되어 있지 않기 때문입니다.

PDF의 표는 일반적으로 좌표에 그려진 일부 선이 있는 텍스트입니다. 줄은 파일에 포함된 파일이 없는 그래픽 작업이며, 셀은 셀이 아닌 텍스트에 연결합니다. 따라서 추출기는 텍스트 행을 보고 가로질러 읽습니다.

Region Q2 Q3 EMEA 412 455 AMER 388 401 APAC 120 166

모든 인물이 살아남았습니다. 위치를 계산하고 원본의 모양을 알지 못하면 해당 줄에서 412가 속한 것을 알 수 없습니다.

Preserve Mode는 행 구조를 줄 바꿈으로 유지하기 때문에 약간 도움이 됩니다. 여전히 열 경계를 제공하지 않습니다.

두 가지가 작동합니다. 에이 태그된 PDF, 접근성 구조를 가진 Word 또는 InDesign에서 신중하게 내보내기, 실제 테이블 마크업을 전달하고 적절하게 변환합니다.이것은 소수이며 일반적으로 문서가 관심을 가진 사람이 만들었기 때문에 알 수 있습니다. 그리고 중요한 태그가 없는 테이블의 경우 손으로 스프레드시트에 복사하는 것이 도구와 싸우는 것보다 빠릅니다. 이는 개선하려는 모든 시도에서 살아남은 불만족스러운 답변입니다.

페이지 마커는 무엇을 합니까?

그들은 페이지 번호를 유지하므로 인용하거나 다시 참조할 내용보다 더 중요합니다.

마커를 켜면 각 페이지에 레이블이 지정되고 빈 페이지가 계속 계산됩니다.

--- Page 1 ---

First page text.

--- Page 2 ---

--- Page 3 ---

Third page text.

2페이지에는 추출 가능한 텍스트가 없었고 여전히 나타납니다. 그것은 의도적입니다. 두 텍스트 페이지 사이의 스캔 시트는 그렇지 않으면 사라지고 모든 이후 페이지 번호가 1씩 틀릴 것입니다.

마커를 끄면 빈 페이지에 흔적이 남지 않고 두 페이지의 텍스트가 간단히 결합됩니다. 텍스트를 어딘가에 붙여넣을 때 올바른 선택이며 페이지 매김은 문서의 일부가 아닌 PDF의 인공물입니다.

추출된 텍스트는 원본과 동일합니까?

캐릭터는. 다른 모든 것이 사라졌으며 결과에 의존하기 전에 목록을 읽을 가치가 있습니다.

굵은 글씨체, 기울임꼴, 글꼴, 크기, 색상, 표, 이미지, 머리글 및 바닥글 본문과 구별되는 표, 주석이 달린 문장과 별개로 각주, 링크로 링크, 복잡한 레이아웃의 읽기 순서. 당신이 얻는 것은 문자와 단락 나누기입니다.

대부분의 경우 그것이 정확히 맞습니다. 검색, 인용, 계산, 대본 먹이기, 편집자에 붙여넣기: 모두 단어를 원하고 다른 것은 없습니다.

물린 곳은 그 의미가 부분적으로 형식에 포함된 문서입니다. 정의된 용어가 굵게 표시된 계약, 코드 샘플이 글꼴로 구분되는 사양, 각주가 문장이 주장하는 내용을 변경하는 보고서. 추출된 텍스트는 모든 것을 평평하게 만들고 출력의 어떤 것도 그렇게 말하지 않습니다.

텍스트로 추출해야 합니까 아니면 단어로 변환해야 합니까?

텍스트 기계가 읽을 경우, 사람이 편집할 경우 Word를 읽습니다.

둘 다 동일한 재조립을 실행하므로 단어의 품질이 동일합니다. 차이점은 마지막에 쓰여지는 것입니다. A .txt 파일 또는 XML의 ZIP 안에 같은 단락.

당신은 원합니다 사용
grep, 검색 또는 스크립트 피드 PDF에서 텍스트로
단어를 세거나 내용을 분석 PDF에서 텍스트로
산문을 수정하고 보내십시오. PDF에서 단어로
레이아웃을 정확하게 유지 둘 다; 원본 파일을 가져옵니다

마지막 행은 사람들이 원하는 사람이 도착하는 것이며 추출이 당신에게 그것을 제공하지 않습니다. 단어 변환 가이드 한 줄의 값으로 돌아오는 테이블을 사용하여 이유를 자세히 설명합니다.

얼마나 큰 PDF를 처리할 수 있습니까?

크기가 크고 제한은 형식이 아닌 탭입니다.

전체 파일이 페이지 메모리로 읽고 거기에서 구문 분석되고 추출된 텍스트가 그 옆에 보관됩니다. 수백 페이지의 일반 텍스트는 눈에 띄지 않으며, 고해상도로 천 페이지 스캔은 다른 명제입니다. 이미지가 텍스트를 생성하지 않아도 이미지가 타기 위해 함께 제공되기 때문입니다.

문서가 걱정할 만큼 충분히 큰 경우 신호는 추출이 아니라 구문 분석입니다. 이미 구문 분석된 페이지에서 텍스트를 가져오는 것은 저렴하며, 파일을 파서로 가져오는 것은 시간과 메모리를 필요로 합니다.

이것이 브라우저에서 실행되는 이유는 무엇입니까?

구문 분석에는 서버가 필요하지 않고 사람들이 추출하는 PDF는 공개되지 않기 때문입니다.

파일은 디스크에서 탭으로 읽고, 웹용으로 컴파일된 pdf.js로 구문 분석되고, 텍스트로 재조립되고 다시 전달됩니다. 문서를 전달하지 않으며, 아무것도 저장되지 않으며, 읽지 않은 용어에 따라 보관할 사본이 없습니다.

문제의 문서는 계약서, 진술서, 의료 서신, 법원 서류, 금수 조치에 따른 서류, 내부 보고서입니다. 기존의 대안은 전체 파일을 서비스에 업로드하여 구문 분석과 좌표에 대한 일부 산술 작업을 교환합니다.

비용은 매우 큰 파일에 대한 탭의 메모리이며 스캔을 위한 OCR이 없습니다. 둘 다 나중에 발견되지 않고 시작하기 전에 볼 수 있습니다.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!