Image Issue with PDF Conversion

I have an issue with images in PDF file. When I create a Word file everything looks great, but when PDF is created the image is to large… Does something need to be done different? I’m using the save with pdf filename for pdf conversion…

Attached word output, pdf output and template…

Dear Ryan,

Thank you for your inquiry.

To provide you with details regarding the issue you are running may I ask you to attach here the code fragment you use to generate output .doc and .pdf files?

I noticed you se Aspose.Words version 9.4.0.0, right? Have you tried to reproduce issue with 9.5.0.0 version? If not yet I would suggest you to run your code with the latest Aspose.Words version
(9.5.0.0).

Thank you for cooperation.

Wasnt aware there was a newer version from what I’m currently using. I will be sure to download the latest DLL’s and apply them.

Here is my code… Below I extracted the one part that handles the image which is oversized…

Dim builder As New DocumentBuilder(args.Document)
If args.FieldName = "P1" Then
Dim P1s As String = args.FieldValue.ToString()
If P1s > "" AND System.IO.File.Exists(P1s) Then
Else
P1s = "D:\hart11dev\filecabinet\property\default.gif"
End If
Dim img As System.Drawing.Image
builder.MoveToField(args.Field, True)
img = System.Drawing.Image.FromFile(P1s)
Dim shape As Aspose.Words.Drawing.Shape = builder.InsertImage(img, 275, 125)
shape.WrapType = "5"
End If

Dim doc As New Document(DocumentString)
Dim strMap As String = ""
If rcbMap.Text = "Yes" Then
strMap = " ,‘<http://www.bing.com/local/GetMap.ashx?ppl=34,,>’ + geocodeLatitude + ‘,’ + geocodeLongitude + ‘&b=r,stl.h,mkt.en-us&rf=o&rp=n&z=12&c=’ + geocodeLatitude + ‘,’ + geocodeLongitude + ‘&w=730&h=350’ AS url, ‘Property Map’ AS urlTitle" 
Else
strMap = " , ‘No Map’ AS urlTitle" 
End If
Dim adapterTemplate1 As New SQLDataAdapter("SELECT ROW_NUMBER() OVER(ORDER BY StateCode ASC, SFInt ASC, CityTxt ASC, Custom2RefTxt ASC) AS ‘Record’, SaleTypeTxt, Custom2RefTxt, CityTxt AS CityTxt2, SellerCompanyTxt As SellerInfo, BuyerCompanyTxt AS BuyerInfo, CONVERT(varchar,ListingOffMarketDate,101) AS ListingOffMarketDate, ListingBroker1CompanyTxt AS ListingBroker1, ProcuringBroker1CompanyTxt AS ProcuringBroker1, ListingBroker2CompanyTxt AS ListingBroker2, ProcuringBroker2CompanyTxt AS ProcuringBroker2, ListingBroker3CompanyTxt AS ListingBroker3, ProcuringBroker3CompanyTxt AS ProcuringBroker3, TransListingStatusTxt, AddressCalc, CASE WHEN CityTxt > ‘’ THEN CHAR(10) + CityTxt ELSE ‘’ END AS CityTxt, StateCode, PostalCodeTxt, REPLACE(CONVERT(varchar, CAST(CASE WHEN SFInt > 0 THEN SFInt ELSE NULL END AS money), 1),’.00’,’’) AS SFInt, CASE WHEN CeilingHeightMinCalc1 > ‘0’ THEN CeilingHeightMinCalc1 ELSE NULL END AS CeilingHeightMinCalc1, CASE WHEN CeilingHeightMinCalc2 > ‘0’ THEN CeilingHeightMinCalc2 ELSE NULL END AS CeilingHeightMinCalc2, CASE WHEN CeilingHeightMaxCalc1 > ‘0’ THEN CeilingHeightMaxCalc1 ELSE NULL END AS CeilingHeightMaxCalc1, CASE WHEN CeilingHeightMaxCalc2 > ‘0’ THEN CeilingHeightMaxCalc2 ELSE NULL END AS CeilingHeightMaxCalc2, ACTxt, RailInstalledYNTxt, REPLACE(CONVERT (varchar, CAST(CASE WHEN SaleAskingPriceInt > 0 THEN SaleAskingPriceInt ELSE NULL END AS money), 1),’.00’,’’) AS SaleAskingPriceInt, CONVERT (varchar, CAST(CASE WHEN SaleActualPriceInt > 0 THEN SaleActualPriceInt ELSE NULL END AS money), 1) AS SaleActualPriceInt, CASE WHEN AskingPricePerSFCalc > ‘0.00’ THEN AskingPricePerSFCalc ELSE NULL END AS AskingPricePerSFCalc, CASE WHEN PricePerSFCalc > ‘0.00’ THEN PricePerSFCalc ELSE NULL END AS PricePerSFCalc, CASE WHEN LeaseAskingRateDec > ‘0’ THEN LeaseAskingRateDec ELSE NULL END AS LeaseAskingRateDec, LeaseAskingTypeTxt, CASE WHEN LeaseActualRateDec > ‘0’ THEN LeaseActualRateDec ELSE NULL END AS LeaseActualRateDec, LeaseActualTypeTxt, LandAcresDec, CASE WHEN ExtraLandAcresDec > ‘0’ THEN ExtraLandAcresDec ELSE NULL END AS ExtraLandAcresDec, CASE WHEN TransMOM > ‘’ THEN TransMOM ELSE NULL END AS TransMOM, TransManagerContactTxt AS Manager, FieldManagerContactTxt AS FieldManager, CASE WHEN ListingExpirationDate <> ‘01/01/2099’ AND ListingExpirationDate <> ‘01/01/1900’ THEN CONVERT(varchar,ListingExpirationDate,101) ELSE NULL END AS LeaseExp, LostBroker1CompanyTxt AS LostBroker1, LostBroker2CompanyTxt AS LostBroker2, LostBroker3CompanyTxt AS LostBroker3, CASE WHEN Trans1LostDate <> ‘01/01/2099’ AND Trans1LostDate <> ‘01/01/1900’ THEN CONVERT(varchar,Trans1LostDate,101) ELSE NULL END AS LostDate1, CASE WHEN Trans2LostDate <> ‘01/01/2099’ AND Trans2LostDate <> ‘01/01/1900’ THEN CONVERT(varchar,Trans2LostDate,101) ELSE NULL END AS LostDate2, CASE WHEN Trans3LostDate <> ‘01/01/2099’ AND Trans3LostDate <> ‘01/01/1900’ THEN CONVERT(varchar,Trans3LostDate,101) ELSE NULL END AS LostDate3, CASE WHEN PropertyNameTxt > ‘’ THEN CHAR(10) + PropertyNameTxt ELSE NULL END AS PropertyNameTxt, CASE WHEN CountyTxt > ‘’ THEN CHAR(10) + CountyTxt ELSE NULL END AS CountyTxt, LocationCrossStreetsTxt, CASE WHEN PropertyImageURL > ‘’ THEN ‘D:\hart11dev’ + REPLACE(REPLACE(PropertyImageURL,’/’,’’),‘Properties’,‘Property’) ELSE NULL END AS P1, CASE WHEN ShellBuildingYNTxt = ‘Yes’ THEN ‘Shell Building’ ELSE NULL END AS ShellBuildingInfo, YearBuiltTxt + CASE WHEN YearRefurbishedTxt > ‘’ THEN ’ / ’ + YearRefurbishedTxt ELSE ‘’ END + CASE WHEN RefurbishmentDescriptionMemo > ‘’ THEN CHAR(10) + RefurbishmentDescriptionMemo ELSE ‘’ END AS YearBuiltInfo, REPLACE(CONVERT(varchar, CAST(CASE WHEN OfficeSFInt > 0 THEN OfficeSFInt ELSE NULL END AS money), 1),’.00’,’’) AS OfficeInfo, CASE WHEN OfficeMemo > ‘’ THEN OfficeMemo ELSE ‘’ END + CASE WHEN OfficeTxt > ‘’ AND OfficeMemo = ‘’ THEN OfficeTxt ELSE ‘’ END AS OfficeSpaceInfo, TransListingStatusTxt + ’ Industrial ’ + PropertyStatusTxt AS PropertyInfo, CASE WHEN DimensionsTxt > ‘’ THEN DimensionsTxt ELSE NULL END AS DimensionsInfo, ConstructionConditionTxt AS QualityInfo, CASE WHEN CeilingMemo > ‘’ THEN CeilingMemo ELSE ‘’ END + CASE WHEN CeilingTxt > ‘’ AND CeilingMemo = ‘’ THEN CeilingTxt ELSE ‘’ END AS CeilingHeightComments, CASE WHEN ColumnLengthDec > ‘0.00’ THEN REPLACE(CONVERT(varchar,ColumnLengthDec),’.00’,’’) + ‘’’ x ’ + REPLACE(CONVERT(varchar,ColumnWidthDec),’.00’,’’) + ‘’’’ ELSE NULL END AS ColumnSpacingInfo, CASE WHEN ColumnMemo > ‘’ THEN ColumnMemo ELSE ‘’ END + CASE WHEN ColumnTxt > ‘’ AND ColumnMemo = ‘’ THEN ColumnTxt ELSE ‘’ END AS ColumnComments, CASE WHEN RoofMemo > ‘’ THEN RoofMemo ELSE ‘’ END + CASE WHEN RoofTypeTxt > ‘’ AND RoofMemo = ‘’ THEN RoofTypeTxt ELSE ‘’ END AS RoofInfo, CASE WHEN FloorMemo > ‘’ THEN FloorMemo ELSE ‘’ END + CASE WHEN FloorTxt > ‘’ AND FloorMemo = ‘’ THEN FloorTxt ELSE ‘’ END AS FloorInfo, CASE WHEN WallMemo > ‘’ THEN WallMemo ELSE ‘’ END + CASE WHEN WallTxt > ‘’ AND WallMemo = ‘’ THEN WallTxt ELSE ‘’ END AS WallInfo, LightingMemo AS LightingInfo, LoadingMemo AS LoadingInfo, CASE WHEN CraneMemo > ‘’ THEN CraneMemo ELSE ‘’ END + CASE WHEN (CraneYNTxt = ‘Yes’ OR LightCraneYNTxt = ‘Yes’) AND CraneMemo = ‘’ THEN ‘Yes’ ELSE ‘’ END AS CraneInfo, CASE WHEN RailMemo > ‘’ THEN RailMemo ELSE ‘’ END + CASE WHEN RailInstalledYNTxt > ‘’ AND RailMemo = ‘’ THEN RailInstalledYNTxt ELSE ‘’ END AS RailInfo, CASE WHEN GasMemo > ‘’ THEN GasMemo ELSE ‘’ END + CASE WHEN GasTxt > ‘’ AND GasMemo = ‘’ THEN GasTxt ELSE ‘’ END + CASE WHEN GasTxt = ‘’ AND GasMemo = ‘’ AND GasYNTxt > ‘’ THEN GasYNTxt ELSE ‘’ END AS GasInfo, CASE WHEN WaterSupplierTxt > ‘’ THEN WaterSupplierTxt ELSE ‘’ END + CASE WHEN WaterSupplierTxt > ‘’ AND (WaterTxt > ‘’ OR WaterMemo > ‘’) THEN ’ - ’ ELSE ‘’ END + CASE WHEN WaterMemo > ‘’ THEN WaterMemo ELSE CASE WHEN WaterTxt > ‘’ THEN WaterTxt ELSE ‘’ END END AS WaterInfo, CASE WHEN SewerSupplierTxt > ‘’ THEN SewerSupplierTxt ELSE ‘’ END + CASE WHEN SewerSupplierTxt > ‘’ AND (SewerTxt > ‘’ OR SewerMemo > ‘’) THEN ’ - ’ ELSE ‘’ END + CASE WHEN SewerMemo > ‘’ THEN SewerMemo ELSE CASE WHEN SewerTxt > ‘’ THEN SewerTxt ELSE ‘’ END END AS SewerInfo, CASE WHEN PowerSupplierTxt > ‘’ THEN PowerSupplierTxt ELSE ‘’ END + CASE WHEN PowerSupplierTxt > ‘’ AND (PowerTxt > ‘’ OR PowerMemo > ‘’) THEN ’ - ’ ELSE ‘’ END + CASE WHEN PowerMemo > ‘’ THEN PowerMemo ELSE CASE WHEN PowerTxt > ‘’ THEN PowerTxt ELSE ‘’ END END AS PowerInfo, CASE WHEN HeatSourceTxt > ‘’ THEN HeatSourceTxt ELSE ‘’ END + CASE WHEN HeatSourceTxt > ‘’ AND (HeatTxt > ‘’ OR HeatMemo > ‘’) THEN ’ - ’ ELSE ‘’ END + CASE WHEN HeatMemo > ‘’ THEN HeatMemo ELSE CASE WHEN HeatTxt > ‘’ THEN HeatTxt ELSE ‘’ END END AS HeatInfo, CASE WHEN ACMemo > ‘’ THEN ACMemo ELSE ‘’ END + CASE WHEN ACTxt > ‘’ AND ACMemo = ‘’ THEN ACTxt ELSE ‘’ END AS ACInfo, CASE WHEN SprinklerMemo > ‘’ THEN SprinklerMemo ELSE ‘’ END + CASE WHEN SprinklerTxt > ‘’ AND SprinklerMemo = ‘’ THEN SprinklerTxt ELSE ‘’ END AS SprinklerInfo, PropertyMemo AS MiscInfo, UseTypeMemo AS UseInfo, SpecialFeaturesMemo AS SpecialInfo, ParkingMemo AS ParkingInfo, CASE WHEN VentilationMemo > ‘’ THEN VentilationMemo ELSE ‘’ END + CASE WHEN VentilationTxt > ‘’ AND VentilationMemo = ‘’ THEN VentilationTxt ELSE ‘’ END AS VentilationInfo, AirLineMemo AS AirLineInfo, ListingMemo AS PricingInfo, PossessionAvailableMemo AS PossessionInfo, ListingCompMemo AS TransactionInfo, ForeignSellerCountryCode AS SellerCountry, ForeignBuyerCountryCode AS BuyerCountry, MarketTxt AS MarketInfo, CASE WHEN CapRateDec > ‘0’ THEN CapRateDec ELSE NULL END AS CapRateInfo, ListingBroker1CompanyTxt + CASE WHEN ListingBroker1ContactTxt > ‘’ THEN CHAR(10) + ListingBroker1ContactTxt + CASE WHEN ListingBroker1PhoneTxt > ‘’ THEN CHAR(10) + case when len(ltrim(rtrim(REPLACE(REPLACE(ListingBroker1PhoneTxt,’-’,’’),’.’,’’))))=‘10’ then ‘’+SUBSTRING(REPLACE(REPLACE(ListingBroker1PhoneTxt,’-’,’’),’.’,’’),1,3)+’.’+’’+SUBSTRING(REPLACE(REPLACE(ListingBroker1PhoneTxt,’-’,’’),’.’,’’),4,3)+’.’+SUBSTRING(REPLACE(REPLACE(ListingBroker1PhoneTxt,’-’,’’),’.’,’’),7,4)+ ‘’ else ListingBroker1PhoneTxt END ELSE ‘’ END ELSE ‘’ END AS ListingBroker1DetailedInfo, ListingBroker2CompanyTxt + CASE WHEN ListingBroker2ContactTxt > ‘’ THEN CHAR(10) + ListingBroker2ContactTxt + CASE WHEN ListingBroker2PhoneTxt > ‘’ THEN CHAR(10) + case when len(ltrim(rtrim(REPLACE(REPLACE(ListingBroker2PhoneTxt,’-’,’’),’.’,’’))))=‘10’ then ‘’+SUBSTRING(REPLACE(REPLACE(ListingBroker2PhoneTxt,’-’,’’),’.’,’’),1,3)+’.’+’’+SUBSTRING(REPLACE(REPLACE(ListingBroker2PhoneTxt,’-’,’’),’.’,’’),4,3)+’.’+SUBSTRING(REPLACE(REPLACE(ListingBroker2PhoneTxt,’-’,’’),’.’,’’),7,4)+ ‘’ else ListingBroker2PhoneTxt END ELSE ‘’ END ELSE ‘’ END AS ListingBroker2DetailedInfo, ListingBroker3CompanyTxt + CASE WHEN ListingBroker3ContactTxt > ‘’ THEN CHAR(10) + ListingBroker3ContactTxt + CASE WHEN ListingBroker3PhoneTxt > ‘’ THEN CHAR(10) + case when len(ltrim(rtrim(REPLACE(REPLACE(ListingBroker3PhoneTxt,’-’,’’),’.’,’’))))=‘10’ then ‘’+SUBSTRING(REPLACE(REPLACE(ListingBroker3PhoneTxt,’-’,’’),’.’,’’),1,3)+’.’+’’+SUBSTRING(REPLACE(REPLACE(ListingBroker3PhoneTxt,’-’,’’),’.’,’’),4,3)+’.’+SUBSTRING(REPLACE(REPLACE(ListingBroker3PhoneTxt,’-’,’’),’.’,’’),7,4)+ ‘’ else ListingBroker3PhoneTxt END ELSE ‘’ END ELSE ‘’ END AS ListingBroker3DetailedInfo, ProcuringBroker1CompanyTxt + CASE WHEN ProcuringBroker1ContactTxt > ‘’ THEN CHAR(10) + ProcuringBroker1ContactTxt + CASE WHEN ProcuringBroker1PhoneTxt > ‘’ THEN CHAR(10) + case when len(ltrim(rtrim(REPLACE(REPLACE(ProcuringBroker1PhoneTxt,’-’,’’),’.’,’’))))=‘10’ then ‘’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker1PhoneTxt,’-’,’’),’.’,’’),1,3)+’.’+’’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker1PhoneTxt,’-’,’’),’.’,’’),4,3)+’.’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker1PhoneTxt,’-’,’’),’.’,’’),7,4)+ ‘’ else ProcuringBroker1PhoneTxt END ELSE ‘’ END ELSE ‘’ END AS ProcuringBroker1DetailedInfo, ProcuringBroker2CompanyTxt + CASE WHEN ProcuringBroker2ContactTxt > ‘’ THEN CHAR(10) + ProcuringBroker2ContactTxt + CASE WHEN ProcuringBroker2PhoneTxt > ‘’ THEN CHAR(10) + case when len(ltrim(rtrim(REPLACE(REPLACE(ProcuringBroker2PhoneTxt,’-’,’’),’.’,’’))))=‘10’ then ‘’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker2PhoneTxt,’-’,’’),’.’,’’),1,3)+’.’+’’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker2PhoneTxt,’-’,’’),’.’,’’),4,3)+’.’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker2PhoneTxt,’-’,’’),’.’,’’),7,4)+ ‘’ else ProcuringBroker2PhoneTxt END ELSE ‘’ END ELSE ‘’ END AS ProcuringBroker2DetailedInfo, ProcuringBroker3CompanyTxt + CASE WHEN ProcuringBroker3ContactTxt > ‘’ THEN CHAR(10) + ProcuringBroker3ContactTxt + CASE WHEN ProcuringBroker3PhoneTxt > ‘’ THEN CHAR(10) + case when len(ltrim(rtrim(REPLACE(REPLACE(ProcuringBroker3PhoneTxt,’-’,’’),’.’,’’))))=‘10’ then ‘’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker3PhoneTxt,’-’,’’),’.’,’’),1,3)+’.’+’’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker3PhoneTxt,’-’,’’),’.’,’’),4,3)+’.’+SUBSTRING(REPLACE(REPLACE(ProcuringBroker3PhoneTxt,’-’,’’),’.’,’’),7,4)+ ‘’ else ProcuringBroker3PhoneTxt END ELSE ‘’ END ELSE ‘’ END AS ProcuringBroker3DetailedInfo, PriceHistoryMemo AS PriceHistoryInfo, ConfidentialAvailableMemo AS ConfidentialInfo, CASE WHEN TransListingStatusTxt <> ‘Available’ THEN ‘Sale Price:’ ELSE NULL END AS TitleSalePrice" & strMap & " FROM ViewListingDetailed ViewListing LEFT OUTER JOIN PropertyGeoCode ON PropertyGeoCode.PropertyID = ViewListing.PropertyID INNER JOIN ExportDetail ON ExportDetail.ExportPrimaryRecordID = ViewListing.TransID WHERE ExportDetail.ExportID=’" & Request.QueryString("ID") & "’", myConnection)
Dim dtTemplate1 As New DataTable()
adapterTemplate1.Fill(dtTemplate1)
Dim recordCount As Integer
recordCount = dtTemplate1.Rows.Count
dtTemplate1.TableName = "Summary"
If qExportTemplateID = "46" OR qExportTemplateID = "47" Then
doc.MailMerge.FieldMergingCallback = New HandleMergeFieldSummary()
Else If qExportTemplateID = "50" OR qExportTemplateID = "51" Then
doc.MailMerge.FieldMergingCallback = New HandleMergeFieldSummary2()
Else If qExportTemplateID = "48" OR qExportTemplateID = "49" Then
doc.MailMerge.FieldMergingCallback = New HandleMergeFieldSummary3()
End If
doc.MailMerge.ExecuteWithRegions(dtTemplate1)
doc.MailMerge.Execute(New String() {"Name", "RecordCount", "PreparedBy", "PreparedFor"}, New Object() {rcbExportNameTxt.Text, recordCount, rcbPreparedBy.Text, rcbPreparedFor.Text})
If rcbExportOptionsTxt.Value > "" Then
InsertWatermark(doc, rcbExportOptionsTxt.Value)
End If
doc.MailMerge.DeleteFields()

Private Shared Sub InsertWatermark(ByVal doc As Document, ByVal watermarkText As String)
Dim watermark As Aspose.Words.Drawing.Shape
Dim watermarkString As String
If watermarkText = "2" Then
watermarkString = "SOLD"
Else If watermarkText = "3" Then
watermarkString = "AVAILABLE"
Else If watermarkText = "4" Then
watermarkString = "LEASED"
Else If watermarkText = "5" Then
watermarkString = "SOLD"
End If
If watermarkText = "1" Then
watermark = New Aspose.Words.Drawing.Shape(doc, Aspose.Words.Drawing.ShapeType.Image)
watermark.ImageData.SetImage("d:\hart11dev\images\hartlogo.png")
watermark.Width = 550
watermark.Height = 750
watermark.Rotation = 0
Else
watermark = New Aspose.Words.Drawing.Shape(doc, ShapeType.TextPlainText)
watermark.TextPath.Text = watermarkString
watermark.TextPath.FontFamily = "Calibri"
watermark.TextPath.Bold = True
watermark.Width = 600
watermark.Height = 200
watermark.Rotation = -40
watermark.Fill.Color = System.Drawing.Color.LavenderBlush
watermark.StrokeColor = System.Drawing.Color.LavenderBlush
End If
watermark.RelativeHorizontalPosition = RelativeHorizontalPosition.Page
watermark.RelativeVerticalPosition = RelativeVerticalPosition.Page
watermark.WrapType = WrapType.None
watermark.VerticalAlignment = VerticalAlignment.Center
watermark.HorizontalAlignment = HorizontalAlignment.Center
Dim watermarkPara As New Aspose.Words.Paragraph(doc)
watermarkPara.AppendChild(watermark)
For Each sect As Aspose.Words.Section In doc.Sections
InsertWatermarkIntoHeader(watermarkPara, sect, Aspose.Words.HeaderFooterType.HeaderPrimary)
InsertWatermarkIntoHeader(watermarkPara, sect, Aspose.Words.HeaderFooterType.HeaderFirst)
InsertWatermarkIntoHeader(watermarkPara, sect, Aspose.Words.HeaderFooterType.HeaderEven)
Next sect
End Sub

Private Shared Sub InsertWatermarkIntoHeader(ByVal watermarkPara As Aspose.Words.Paragraph, ByVal sect As Aspose.Words.Section, ByVal headerType As Aspose.Words.HeaderFooterType)
Dim header As Aspose.Words.HeaderFooter = sect.HeadersFooters(headerType)
If header Is Nothing Then
header = New Aspose.Words.HeaderFooter(sect.Document, headerType)
sect.HeadersFooters.Add(header)
End If
header.AppendChild(watermarkPara.Clone(True))
End Sub

Private Class HandleMergeFieldSummary2
Implements IFieldMergingCallback

Dim mIsMergeImage As Boolean = False

Private Sub FieldMerging(args As FieldMergingArgs) Implements IFieldMergingCallback.FieldMerging 

If args.FieldName = "SaleTypeTxt" Then
If args.FieldValue = "Hart Exclusive Agency" Then
mIsMergeImage = True
Else
mIsMergeImage = False
End If
End If

Dim builder As New DocumentBuilder(args.Document)
If args.FieldName = "P1" Then
Dim P1s As String = args.FieldValue.ToString()
If P1s > "" AND System.IO.File.Exists(P1s) Then
Else
P1s = "D:\hart11dev\filecabinet\property\default.gif"
End If
Dim img As System.Drawing.Image
builder.MoveToField(args.Field, True)
img = System.Drawing.Image.FromFile(P1s)
Dim shape As Aspose.Words.Drawing.Shape = builder.InsertImage(img, 275, 125)
shape.WrapType = "5"
End If

If args.FieldName.Equals("urlTitle") Then
Dim bk1 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkurl")
Dim row1 As Aspose.Words.Tables.Row = CType(bk1.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)
Dim bk2 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkurl2")
Dim row2 As Aspose.Words.Tables.Row = CType(bk2.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "No Map" Then
If row1 IsNot Nothing Then
row1.Remove()
End If
If row2 IsNot Nothing Then
row2.Remove()
End If
Else
row1.Range.Bookmarks(0).Remove()
row2.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("YearBuiltInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkYearBuiltInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("OfficeInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkOfficeInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue Is System.DBNull.Value Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("OfficeSpaceInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkOfficeSpaceInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("QualityInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkQualityInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("DimensionsInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkDimensionsInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue Is System.DBNull.Value Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("CeilingHeightMinCalc1") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkCeilingHeights")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue Is System.DBNull.Value Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("CeilingHeightComments") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkCeilingHeightComments")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("ColumnSpacingInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkColumnSpacingInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue Is System.DBNull.Value Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("ColumnComments") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkColumnComments")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("RoofInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkRoofInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("FloorInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkFloorInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("WallInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkWallInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("LightingInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkLightingInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("LoadingInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkLoadingInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("CraneInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkCraneInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("RailInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkRailInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("GasInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkGasInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("WaterInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkWaterInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("SewerInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkSewerInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("PowerInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkPowerInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("HeatInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkHeatInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("ACInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkACInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("SprinklerInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkSprinklerInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("VentilationInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkVentilationInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("AirLineInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkAirLineInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("MiscInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkMiscInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("ParkingInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkParkingInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("UseInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkUseInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

If args.FieldName.Equals("SpecialInfo") Then
Dim bk3 As Aspose.Words.Bookmark = args.Document.Range.Bookmarks("bkSpecialInfo")
Dim row As Aspose.Words.Tables.Row = CType(bk3.BookmarkStart.GetAncestor(NodeType.Row), Aspose.Words.Tables.Row)

If args.FieldValue = "" Then
If row IsNot Nothing Then
row.Remove()
End If
Else
row.Range.Bookmarks(0).Remove()
End If
End If

End Sub

Private Sub ImageFieldMerging(e As ImageFieldMergingArgs) Implements IFieldMergingCallback.ImageFieldMerging
If (mIsMergeImage) Then
e.ImageFileName = System.IO.Path.Combine("d:\hart11dev\images", "hartlogoxsmall.gif")
End If 
End Sub
End Class

Dear Ryan,

Thank you for additional information.

I reviewed your code and noticed you use shape wrap style shape.WrapType = “5”. I would recommend you to use inline wrap style. Just comment out line shape.WrapType = “5” and run your code. That should fix your problem. Otherwise we will investigate the problem further.

I noticed that this fixes the issue with the image in a PDF, but the path of the image now shows, I was using the shape wrapping which put the image overtop of the text. The text is really small font next to the image. It contains the image path. How can I hide this text and keep the wrapping off?

attached word document showing the text to the lower left of the image in size 1 font. Field I use to merge is called P1.

Dim builder As New DocumentBuilder(args.Document)
If args.FieldName = "P1" Then
Dim P1s As String = args.FieldValue.ToString()
If P1s > "" AND System.IO.File.Exists(P1s) Then
Else
P1s = "D:\hart11dev\filecabinet\property\default.gif"
End If
Dim img As System.Drawing.Image
builder.MoveToField(args.Field, True)
img = System.Drawing.Image.FromFile(P1s)
Dim shape As Aspose.Words.Drawing.Shape = builder.InsertImage(img, 275, 125)
'shape.WrapType = "5"
End If

Hi Ryan,

Thanks for your inquiry.

You can avoid merging any text into the merge field by setting the text to merge to be empty:

args.Text = string.Empty

Your logic will still work correctly but the image path will not be merged into the document.

Thanks,