2011-02-08 3 views
6

PDF 문서에서 전체 페이지가되도록 이미지의 크기를 조정하려고합니다. iTextSharp를 사용하여 문서를 생성 중입니다. 이미지의 페이지 종횡비가 올바르지 만 사용 가능한 모든 영역을 채우지 않고 이미지가 왜곡되는 것이 좋습니다.iTextSharp 이미지가 전체 페이지 크기로 조정됩니다.

내가 현재 가지고 :

Dim Document As New Document(PageSize, 0, 0, 0, 0) 
... 
Dim ContentImage = '''Method call to get image' 
Dim Content = iTextSharp.text.Image.GetInstance(ContentImage, New BackgroundColor) 
Content.SetAbsolutePosition(0, 0) 
Content.ScaleToFit(Document.PageSize.Width, Document.PageSize.Height) 
Document.Add(Content) 

불행하게도,이 프린터 여백을 고려하지 않습니다 ...

가 나는 정의 할 수 있습니다 최고로으로 (인쇄 가능 영역에 맞게 이미지가 필요 PDF)

+0

@plinth 감사는, 하나 – Basic

답변

8

경험적으로 판단했다면 페이지 테두리에 맞게 코드가있는 페이지를 인쇄하여 여백의 처음 1/2 인치에 검정색으로 칠합니다. 가장자리. 각 가장자리에서 검정색까지의 거리를 인치로 측정하고 각각을 72.0으로 나눕니다.

의 그들 이름을 보자. LM, RM, TM, BM (좌우 위쪽에서 아래쪽 여백 당신은 코드 다음 사용하여 PDF 페이지에 맞게 이미지를 확장 할 수 있습니다

Dim pageWidth = document.PageSize.Width - (lm + rm); 
Dim pageHeight = document.PageSize.Height - (bm + tm); 
Content.SetAbsolutePosition(lm, bm); 
Content.ScaleToFit(pageWidth, pageHeight); 
Document.Add(Content) 
+0

의미가 있습니다. 감사합니다. – Basic

3

인쇄 가능 영역은 프린터 의존 사전에

감사합니다, PDF 파일은 그것에 대해 아무것도 몰라. PDF 페이지는 여백에서 여백까지의 내용을 가질 수 있습니다. '프린터 여백에 맞추기'옵션을 사용하여 PDF 파일을 인쇄하면 전체 PDF 페이지가 프린터의 인쇄 가능 영역에 맞게 인쇄됩니다.

+0

이해 것을 발견하지 않았다 -하지만 난 사용하여 인쇄를 자동화하고 있습니다 (처음에) :'Writer.AddJavaScript ("this.print) (false입니다", 거짓) '수동으로 크기 조정 옵션을 설정하지 않는 것을 선호합니다. 이 기능을 자동화 할 수 있습니까?이 시나리오에서는 단일 프린터로 문서를 사내에서 인쇄하기 때문에 생성시 적절한 여백을 알 필요가없고 PDF로 설정할 수 있습니다. – Basic

1

VB.

Dim img As iTextSharp.text.Image = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(resourceStream), System.Drawing.Imaging.ImageFormat.Png) 
img.SetAbsolutePosition(0, 0) 
'set the position to bottom left corner of pdf 
img.ScaleAbsolute(iTextSharp.text.PageSize.A7.Width, iTextSharp.text.PageSize.A7.Height) 
'set the height and width of image to PDF page size 

C#을

iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(System.Drawing.Image.FromStream(resourceStream, System.Drawing.Imaging.ImageFormat.Png); 
img.SetAbsolutePosition(0, 0); // set the position to bottom left corner of pdf 
img.ScaleAbsolute(iTextSharp.text.PageSize.A7.Width,iTextSharp.text.PageSize.A7.Height); // set the height and width of image to PDF page size 

전체 코드 (C#)를 원할 경우 다음 링크도 참조 할 수 있습니다. 전체 코드는 기존 PDF의 모든 페이지에 이미지를 추가합니다.

https://stackoverflow.com/a/45486484/6597375

관련 문제