const fs = require('fs'); const hwp = require('./libs/hwp.js'); function run() { console.log("Parsing downloaded_test.hwpx..."); try { const fileBuffer = fs.readFileSync('downloaded_test.hwpx'); const doc = hwp.parse(fileBuffer, { type: 'buffer' }); console.log("\nDocument parsed successfully."); console.log(`Number of sections: ${doc.sections.length}`); doc.sections.forEach((section, sIdx) => { console.log(`\nSection ${sIdx}:`); console.log(` Page width: ${section.width} (${section.width / 7200} in)`); console.log(` Page height: ${section.height} (${section.height / 7200} in)`); console.log(` PaddingTop: ${section.paddingTop}`); console.log(` HeaderPadding: ${section.headerPadding}`); console.log(` PaddingLeft: ${section.paddingLeft}`); let shapeCount = 0; section.content.forEach((para, pIdx) => { para.controls.forEach((ctrl, cIdx) => { // Check if it's a shape (Rectangle, Ellipse, Line, etc.) // Check properties const isShape = ctrl.type !== 1347570004; // Not table if (isShape) { shapeCount++; console.log(`\n --- Shape #${shapeCount} inside Paragraph ${pIdx} ---`); console.log(` Control ID: ${ctrl.id} / Type: ${ctrl.type}`); console.log(` Width: ${ctrl.width} (${ctrl.width / 100} pt)`); console.log(` Height: ${ctrl.height} (${ctrl.height / 100} pt)`); console.log(` vertRelTo: ${ctrl.attribute ? ctrl.attribute.vertRelTo : 'N/A'}`); console.log(` verticalOffset: ${ctrl.verticalOffset} (${ctrl.verticalOffset / 100} pt)`); console.log(` horizontalOffset: ${ctrl.horizontalOffset} (${ctrl.horizontalOffset / 100} pt)`); console.log(` zIndex: ${ctrl.zIndex}`); } }); }); console.log(`\nTotal shapes in section ${sIdx}: ${shapeCount}`); }); } catch (err) { console.error("Error parsing HWP:", err); } } run();