如何使用itextsharp在现有pdf中绝对定位图像

时间:2011-10-28 02:39:46

标签: vb.net itextsharp

这是我到目前为止的代码:

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位置上对齐图像。

我有两种尺寸的图像。他们是: 图像1,宽度= 500px;高度= 910px; 图像2,宽度= 500px;高度= 400像素;

问题是,两个图像都对齐底部而不是顶部。因为图像1的顶部被切掉了。

1 个答案:

答案 0 :(得分:1)

我尝试了您的代码(经过修改)以适合wpf应用中的按钮单击事件。下面的线必须更改以使图像上升。我觉得您使用的0从下开始。

imgjImage.SetAbsolutePosition(445, 0)

要更改为

imgjImage.SetAbsolutePosition(445, 200)

200不是绝对的,必须根据图像的实际大小进行调整。