2011-02-08 43 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

、1 – Basic

答えて

8

経験的に行うと決心されている場合は、余白の前半1/2インチに黒く塗りつぶすように、コードをページ境界に合わせて印刷します。エッジ。各辺から黒までの距離をインチ単位で測定し、それぞれを72.0で割ります。

のは、それらに名前を付けましょう:LM、RM、TM、BM(右上から下の余白を残し

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(偽);"、偽)スケーリングオプションを手動で設定することを避けることを好むでしょう。これは自動化することができますか?このシナリオでは、社内の文書を1台のプリンタで社内で印刷するため、生成時に適切な余白を知ってPDFに設定する必要はありません。 – Basic

1

あなたは次のコードスニペットを使用してPDFのページに合わせて画像を拡大縮小することができます

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のすべてのページにイメージを追加します。おかげ@plinth

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

関連する問題