The upcoming 5.4 version of Cerbero Suite and 2.4 of Cerbero Engine come with improved support for Microsoft’s ITSF (also known as CHM) format.
We also exposed the format to our Python SDK.
The following sample enumerates files in a CHM. The commented out line of code extracts the file data.
from Pro.Core import * from Pro.ITSF import * def parseCHM(chm_name): c = createContainerFromFile(chm_name) obj = ITSFObject() if not obj.Load(c): return if not obj.LoadHeaders() or not obj.DecompressSections(): return n = obj.GetListingEntryCount() entry = ITSFDirectoryListingEntry() for i in range(n): if obj.GetDirectoryListingEntry(i, entry): print("name:", entry.name, "- size:", entry.size) #content = obj.GetFile(entry)