2014-10-20 5 views
1

PDF의 텍스트 길이를 측정하고 길이가 일정량을 초과하면 줄 바꿈을해야한다는 요구 사항이 있습니다. 나는 이미 PdfSharp 라이브러리를 사용하고있다.PdfSharp 라이브러리를 사용하여 텍스트 길이를 측정하는 방법

텍스트의 길이를 결정하기 위해 다음 코드를 이미 사용했습니다.

public static Size MeasureString(string s, Font font) 
{ 
    SizeF result; 
    using (var image = new Bitmap(1, 1)) 
    { 
      using (var g = Graphics.FromImage(image)) 
      { 
       result = g.MeasureString(s, font); 
      } 
    } 
    return result.ToSize(); 
} 

것은 내가 밀리미터하기 위해 Size 클래스의 HeightWidth 속성을 변환 해상도와 dpi로의 매우 의존적입니다 알 수있는 바와 같이. 그러나 this post의 PdfSharp 팀의 답변에 따르면 "PDF 파일은 DPI가없는 벡터 파일입니다."

그래서이 라이브러리를 사용하여 텍스트 길이를 측정하는 올바른 방법에 대해 혼란스러워합니다.

답변

4

PDF 파일에는 픽셀이없고 PDF 파일에는 DPI가 없습니다.

PDFsharp의 표준 단위는 점입니다. 1 인치당 72 포인트가 있습니다. 당신은 점, mm, cm, 인치에서 페이지의 폭을 가질 수

당신은 포인트의 텍스트, mm, cm, 인치의 길이를 가질 수 ... ...

XTextFormatter 클래스는 당신을 위해 간단한 행 즉시 작업을 수행 할 수 있습니다
http://www.pdfsharp.net/wiki/Graphics-sample.ashx#Show_how_to_get_text_metric_information_19
사용 XGraphics 객체와 올바른 MeasureString 방법과 당신이 XSize 개체를 얻을 것이다 :
http://www.pdfsharp.net/wiki/TextLayout-sample.ashx

이 샘플은 MeasureString 호출하는 방법을 보여줍니다 텍스트 크기 - 픽셀 없음, mm, cm, 인치, 점, ...

정교한 텍스트 형식의 줄 바꿈을 위해 MigraDoc을 사용하십시오.

관련 문제