2011-04-25 2 views
3

내 서버에서 TIFF 파일을 나타내는 바이트 배열을 가져 와서 XImage로 변환 한 다음 새 PDF 문서에 추가합니다. 문제의 이미지는 1280x800 크기 (스크린 샷)이며 표준 PDF 페이지의 높이와 너비에 맞춰 길게 늘어나고 있습니다. 이 문제를 어떻게 해결할 수 있습니까?abcPDF가 내 이미지를 PDF에 추가 한 후 부정확합니다.

http://i53.tinypic.com/24qq1ch.png

+1

img is XImage 혹시 해결책을 찾았나요? 비록 mediabox를 먼저 설정하더라도 abcPDF가 내 이미지를 늘리고 있습니다. –

답변

0

당신이 특정 문제로 인해 세로로 설정된 프린터를 필요로합니다.

PDF 개체이므로 이미지 크기를 모방 한 페이지를 에뮬레이션해야 할 수 있습니다.

원본 문서를 이미지로 보내고 TIFF 파일을 추가하는 것이 좋습니다.

0

PDF 페이지 작성 방법에 따라 다릅니다. 아마도 여러분이 만들고자하는 PDF 페이지는 글자 크기의 페이지를 기본값으로 설정하는 대신 이미지와 같은 종횡비를 갖도록해야합니다.

PDF 페이지 작성 방법을 지정하지 않았으므로 특별히 도와 드릴 수 없습니다. 그러나 일반적으로 PDF 페이지는 1/72 인치의 단위입니다. 다음과 같이 올바른 크기의 페이지를 계산할 수 있습니다.

const kPdfPageUnitSize = 72f; 

float GetPdfSize(int nPixels, float dotsPerInch) { 
    return (nPixels/dotsPerInch) * kPdfPageUnitSize; 
} 


// later 
float pdfwidth = GetPdfSize(image.Width, image.Resolution.X); // or however you have this 
float pdfheight = GetPdfSize(image.Height, image.Resolution.Y); 
0

이미지 스케일 계수가 올바르지 않습니다. 이미지 너비와 이미지 너비를 1,33 (3) (즉, 96f/72f)로 나누어야합니다.

기본적으로 PDF 사용자 단위는 1/72 인치이므로 이미지 DPI는 원본과 비례해야합니다.

1

이 시도 :

doc.MediaBox.String = img.BoundingBox.String; 
    doc.Rect.String = doc.MediaBox.String; 

doc is Doc

+0

고마워요, 저에게 도움이되었습니다. –

관련 문제