CBZ Forge Get CBZ Forge
Product menu

CBZ Forge

Why your ComicInfo.xml came back different

Last updated:

You curate a library. You fix the series name, set the volume, get the reading order right. Then you run the books through a converter and the metadata comes back subtly wrong—fields reordered, custom entries gone, an encoding declaration changed.

Nothing was corrupted. The file was parsed and rebuilt.

What actually happens

ComicInfo.xml is a small XML file that sits inside the archive. When a tool wants to carry it across, it has two options.

Parse and reserialize. Read the XML into a data structure, then write a new file from that structure. This is the easy path and it is what most tools do. The problem is that the structure only holds fields the tool knows about. Anything else—a field from a newer schema, one your tagger added, one a different reader wrote—has nowhere to live, so it is silently dropped. Element order is regenerated. Attribute quoting and encoding are the serializer’s choice, not yours.

Copy the bytes. Take the file out of one archive and put it into the other without opening it. Unknown fields survive because nothing ever decided whether they were known. Order survives. Encoding survives.

CBZ Forge does the second one. The existing ComicInfo.xml never enters an XML parser, which is the same doctrine it applies to your page images, applied to your metadata.

When there is no ComicInfo.xml

Then one is written, because an archive with no metadata is worse than one with a minimal record. What goes in is deterministic: the same input produces the same file every time.

What does not go in is worth stating. No timestamp, no build number, no file path, no personal information, and nothing guessed from a PDF’s own fields—PDF metadata is frequently wrong, and a confident wrong series name is harder to fix than a missing one.

How to check your existing tooling

Keep a copy of the original archive. Extract ComicInfo.xml from both it and the converted file, and compare them directly:

diff original/ComicInfo.xml converted/ComicInfo.xml

No output means the bytes are identical. Any output at all means the file was rebuilt, and you should look closely at what went missing.