itextsharpを使って既存のpdfに画像を絶対配置する方法

ここに私がこれまで持っているコードはあります:

Imports iTextSharp.text
Imports iTextSharp.text.pdf
Imports System.IO

Module Module1

    Sub Main()
        AddjImage("C:\test.png", "c:\pdfTemplate.pdf", "C:\output.pdf")
    End Sub
    Private Function AddjImage(ByVal strImageFileName As String, ByVal pdfTemplateFile As String, ByVal outputPdf As String) As Boolean
        Try
            Dim iPdfReader As PdfReader = New PdfReader(pdfTemplateFile)
            Dim iPdfStamper As PdfStamper = New PdfStamper(iPdfReader, New FileStream(outputPdf, FileMode.Create))
            Dim imgjImage As iTextSharp.text.Image
            Dim bytContent As PdfContentByte
            'Insert Image
            imgjImage = iTextSharp.text.Image.GetInstance(strImageFileName)
            imgjImage.Alignment = iTextSharp.text.Image.ALIGN_TOP
            imgjImage.ScalePercent(78)
            imgjImage.SetAbsolutePosition(445, 0)
            bytContent = iPdfStamper.GetOverContent(1)
            bytContent.AddImage(imgjImage)
            iPdfStamper.FormFlattening = True
            iPdfStamper.Close()
            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function    
End Module

pdfはランドスケープレイアウトです。ページサイズはA4です。私はpdfページの右側に画像を挿入しようとしています。 x = 445、y = 0の位置に画像を揃えたい。

私は2つのサイズの画像のカップルを持っています。彼らです: width = 500pxの画像1;高さ= 910ピクセル。 width = 500pxの画像2;高さ= 400ピクセル。

問題は、両方の画像が上部ではなく下部に整列していることです。画像1の上部がカットされているためです。

1

1 答え

私はwpfアプリケーションで私のボタンのクリックイベントに合うようにあなたのコード(変更あり)を試しました。下の行は、イメージを上にするために変更する必要があります。あなたが使っている0が底から始まると感じます。

imgjImage.SetAbsolutePosition(445, 0)

〜に変更する

imgjImage.SetAbsolutePosition(445, 200)

200は絶対的なものではなく、イメージの実際のサイズに合わせて再調整する必要があります。

0
追加された