Buffer builder is not the way to go
Buffer builder only creates things according to the VertexFormat that's assigned to it when it's initialized. A quick look provides
BLOCK.addElement(POSITION_3F);
BLOCK.addElement(COLOR_4UB);
BLOCK.addElement(TEX_2F);
BLOCK.addElement(TEX_2S);
So per vertex you have a 3 float component for the vertex position, a 4 unsigned byte component for the color and transparency of the vertex, a 2 float component for the texture UV of the vertex, and a 2 short component for the light map coords of the vertex, that last bit being just an assumption
Each primitive/face will have 4 vertices, so 4 sets of that info, as this is all rendered using GL_QUADS.
With all that said I think you'd want to do your .png building in game. Because getting the texture UV's to function correctly is going to be a nightmare in an external program... you could export the texture sheet, but then if you have to load more images up at a later date it'd be up to the TextureAtlas stitcher to maintain the same sprite order, which wouldn't be too bad without other mods in the mix, and granted you're using the same version of minecraft, updates will likely mess the order up
Also note things that directly manipulate the GL state, like chests, signs, and banners, either won't be included in the buffer, or will have only the static component baked into it, depending on the how they're rendered
So overall I'd say your best bet would be something like using a custom dimension with all the unnecessary bits removed, that clones itself from the target world. Then I'd look into how to capture scenes in opengl for things like in game security cameras, and use that to write the captures to a png.