PDF 페이지에서 단락 및/또는 텍스트 블록을 구성하는 직사각형을 검색하려고합니다.PDF 단락 또는 텍스트 블록 위치
iTextSharp와 DataLogics를 살펴 보았습니다.
제가 할 수 있었던 최선은 개별 단어를 찾는 것입니다. 그러나 단어가 동일한 텍스트 블록에 있는지 알아야합니다.
저는 C#을 사용하고 있습니다. 아무도 아이디어가 있니?
PDF 페이지에서 단락 및/또는 텍스트 블록을 구성하는 직사각형을 검색하려고합니다.PDF 단락 또는 텍스트 블록 위치
iTextSharp와 DataLogics를 살펴 보았습니다.
제가 할 수 있었던 최선은 개별 단어를 찾는 것입니다. 그러나 단어가 동일한 텍스트 블록에 있는지 알아야합니다.
저는 C#을 사용하고 있습니다. 아무도 아이디어가 있니?
이것은 Java이지만 PDF에서 내용을 가져 와서 내용의 색인에서 값을 가져 오는 것을 다룹니다.
잘 모르겠습니다 만 C#에서 비슷한 것을 얻을 수 있습니다. 콘텐츠를 가져 와서 인쇄하십시오.
//create a new reader from the source file
PdfReader reader = new PdfReader(fileName);
//create the file array
RandomAccessFileOrArray raf = new RandomAccessFileOrArray(fileName);
//get the content of the pdf reader (which is the source file)
byte bContent [] = reader.getPageContent(1,raf);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
bs.write(bContent);
//create a string of the contents of the page in order to get the data needed
String contentOf1099 = bs.toString();
if(debug)
{
System.err.println("contentOf1099 = "+contentOf1099);
}
//get the value based off an index
String value = contentOf1099.substring(contentOf1099.indexOf((",contentOf1099.indexOf("155 664 Td"))+1,contentOf1099.indexOf("(",contentOf1099.indexOf("155 664 Td "))+12);
구조화 된 PDF가 없으면 이것은 존재하지 않을 것입니다. PDF는 위치에 drawString 명령 세트입니다. 단락이나 공백 마커가 없습니다. 텍스트 위치에서이 작업을해야합니다.
페이지의 각 단어의 모든 좌표를 추출한 다음 함께 그룹화하십시오.
먼저 할 일은 줄로 묶는 것입니다. 이렇게하려면 모든 순서 단어로 모든 단어를 반복하고 y0가 다른 단어의 y1보다 작은 단어를 그룹화하려면, y1은 다른 단어의 y0보다 큽니다. 이들은 라인입니다.
그런 다음 단락으로 줄을 그룹화해야합니다. 선의 x 위치는 다른 페이지 너비의 1/25 이내에 있어야합니다. 그리고 선의 y 좌표 사이의 거리는 선의 높이보다 작아야합니다. 이것들은 단락들입니다.
birdlips, 그 마지막 줄 정말 내게 문제가되고있다. 나 한테 그걸 깰 수있어? – Dave
확실히, 기본적으로 내가 말하는 것은 "155 664 Td의 색인에서 다음 12자를 구하십시오"입니다. PDF의 모든 항목에는 정의 된 정렬 주소가있는 "위치"가 있습니다. pdf의 내용을 인쇄하면 사각형 안에 무엇이 있는지 확인할 수 있습니다. – northpole