How to read image height from script
Issue
We are using KTM script to bind two images into a single image.
From time to time, there is an error when copying an existing image to the new one (image.CopyRect method).
The error is thrown at this instruction:
NewImg.CopyRect(pXDoc.CDoc.Pages(0).GetImage, 0, 0, 0, 0, pXDoc.CDoc.Pages(0).Width, pXDoc.CDoc.Pages(0).Height)
I have debugged the script and it seems that there is a difference between the image dimensions on disk (height = 1188) and image dimensions read by KTM script (1204).
If I execute the exact same script, but hardcoding the image dimensions to the ones from disk (2224, 1188), the script is running fine. If I set the height to a value higher than 1188, it throws the error -> InvalidArgument(522).
Cause
When manipulating images (merge/split etc.) after they were processed in KTM Server - and when the XDocument file was created - it can happen that the actual dimensions and the ones in XDocument do not match.
Solution
As it is difficult to reload the image to get the new dimensions and retain the already extracted data, you can use external libraries to get the actual dimensions. You can use e.g. Shell.Application object, or WIA.ImageFile.
See e.g. https://social.msdn.microsoft.com/Forums/office/en-US/5f375529-a002-4312-a54b-b70d6d3eb6ae/how-to-retrieve-image-dimensions-using-vba-?forum=accessdev
or
https://myengineeringworld.net/2018/02/image-size-pixels-vba.html
Level of Complexity
Moderate
Applies to
Product | Version | Build | Environment | Hardware |
---|---|---|---|---|
Kofax Transformation Modules | All |
References
Add any references to other internal or external articles
Article # 3035735