2009-07-14 2 views
1

PDF 파일의 유효성을 검사하는 응용 프로그램을 작성하고 싶습니다. 필요한 유효성 검사는 PDF의 모든 텍스트와 이미지가 왼쪽에서 0.5 인치, 오른쪽에서 0.5 인치 여백 뒤에 시작하는지 확인하는 것입니다. 텍스트 중 하나라도이 여백 밖에 있으면 응용 프로그램은이 텍스트를 잡을 수 있어야합니다.PDF 텍스트 위치, 왼쪽 여백

나는 이것을 iText로 검색하려했지만 내 목적을 해결할 수있는 유용한 것은 얻을 수 없었다.

누군가가이 코드를 .net csharp로 작성하는 데 나를 도와 줄 수 있습니까? PDF 파일은 장치 독립적 있어야하기 때문에

덕분에, 프라 빈

답변

0

사용 SetMarginMirroring(true)

+0

당신이 당신의 대답을 자세히 설명해 수 없습니다. PDF를 작성하지 않고 PDF 파일을 읽은 다음 이미지의 텍스트가 지정된 여백을 초과하는지 확인해야합니다. – user423574

0

PDF로 표준 정말 마진의 개념이 없습니다. 미디어 박스, 자르기 상자, 블리드 상자, 아트 상자 및 트림 상자와 같이 출력을 제한하도록 설계된 다섯 개의 상자가 있습니다. 일반적으로 다른 네 개의 상자는 미디어 상자와 크기가 같거나 작습니다.

mediabox가 pdfs에 있으면 페이지를 검색하여 페이지의 양쪽면에서 0.5 "더 작은 지 확인하십시오. reader.getPageSize (pageNumber) 및 reader.getBoxSize (pageNumber)의 결과를 비교해보십시오. PAGENUMBER는 "미디어"). 매우 가능성이 그들은 동일합니다.

은 당신이 할 수있는 것은 1/2 인치 여백이 있는지 확인하기 위해 PDF 파일을 다시 작성합니다. 이것에 가장 쉬운 방법은 페이지를 축소합니다.

+0

reader.getBodSize 및 reader.getPageSize를 사용하려고했습니다. 두 함수 모두 8.5x11과 같은 페이지 크기를 반환했습니다. 그러나 어떻게하면 미디어 박스 내부에서 텍스트가 시작되는지에 대한 정보를 얻을 수 있습니다. 페이지의 왼쪽에 0.5 마진 이전에 시작하는 줄이 페이지에 포함되어 있는지 확인하고 싶습니다. PDF를 다시 쓰고 싶지 않습니다. 또한 각 페이지의 메디아 박스에있을 수있는 가능성이 있습니다 내가 이해할 수있는 것은 모든 텍스트가 5 개의 상자 중 하나에 포함될 수 있고 어떻게 든 상자 시작 위치를 얻으면 작동 할 수 있다는 것입니다. – user423574

+0

아마도 상자가 설정되지 않았다는 것을 의미합니다. pdf에 들어갈 수있는 내용은 선택 사항이므로 특정 PDF가 어떻게 작성되었는지 알지 못하면 렌더링하지 않고 여백을 탐지하는 것이 매우 어려울 것입니다. iText는 그렇게 할 수 없습니다. –

1

R Ubben의 답변 외에도 은 정확히 reader.getBoxSize(pageNumber,"media")과 같습니다.

그건 ho입니다. 그것은 iTextSharp에서 구현됩니다. source code에서 확인할 수 있습니다.

추출 :

public Rectangle GetPageSize(PdfDictionary page) { 
    PdfArray mediaBox = page.GetAsArray(PdfName.MEDIABOX); 
    return GetNormalizedRectangle(mediaBox); 
}