2016-08-26 13 views
0

私がここでやろうとしているのは、空のpdfに画像を追加することです。今まで私はそれをしてきましたが、イメージを中心にしたいと思います。これどうやってするの?pdf itextsharpを使ったpdfの中心画像

はここに私のC#のコードです:

using (MemoryStream ms = new MemoryStream()) 
{ 
    Document doc = new Document(PageSize.A4); 
    PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(System.IO.Path.Combine(filepath, strFilename), FileMode.Create)); 
    doc.AddTitle("Document Title"); 
    doc.Open(); 
    iTextSharp.text.Image image1 = iTextSharp.text.Image.GetInstance(@"C:\Users\Desktop\Winniethepooh.png"); 
    image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER; 
    if (image1.Height > image1.Width) 
    { 
     //Maximum height is 800 pixels. 
     float percentage = 0.0f; 
     percentage = 700/image1.Height; 
     image1.ScalePercent(percentage * 100); 
    } 
    else 
    { 
     //Maximum width is 600 pixels. 
     float percentage = 0.0f; 
     percentage = 540/image1.Width; 
     image1.ScalePercent(percentage * 100); 
    } 
    //image1.Alignment = iTextSharp.text.Image.ALIGN_CENTER; 
    doc.Add(image1); 
    doc.Close(); 
} 

そして、これが出力されます。

https://drive.google.com/open?id=0BzaejXGgqBOAMzd0UlY2QWFXNms

私が欲しいのは、画像がページの中央に配置されていることです。現在、画像はページの上部に表示されています。

私はイメージアライメントを設定しますが、イメージをページの中央に表示しないのはなぜですか?

答えて

6

イメージを中央に配置するには、SetAbsolutePosition()を使用する必要があります。

... 
... 

image1.SetAbsolutePosition((PageSize.A4.Width - image1.ScaledWidth)/2, (PageSize.A4.Height - image1.ScaledHeight)/2); 

doc.Add(image1); 

... 
... 

・ホープ、このことができます:あなたがdoc.Add(image1);を呼び出す前に

はちょうどあなたのコードに以下を追加します。

+0

ありがとうございます。それはうまくいった。 – codequery18

+0

その喜び:) – Riaan

関連する問題