get info DONE!

This commit is contained in:
Anthony Stirling 2023-08-02 23:03:35 +01:00
parent 96f05cd518
commit b07437dbfa
2 changed files with 15 additions and 23 deletions

View file

@ -263,22 +263,6 @@ public class GetInfoOnPDF {
PDAcroForm pdAcroForm = pdfBoxDoc.getDocumentCatalog().getAcroForm();
ArrayNode formFieldsArray2 = objectMapper.createArrayNode();
if (pdAcroForm != null) {
for (PDField field : pdAcroForm.getFields()) {
ObjectNode fieldNode = objectMapper.createObjectNode();
fieldNode.put("FieldName", field.getFullyQualifiedName());
fieldNode.put("FieldType", field.getFieldType());
// Add more attributes as needed...
formFieldsArray2.add(fieldNode);
}
}
jsonOutput.set("FormFields2", formFieldsArray2);
PDStructureTreeRoot structureTreeRoot = pdfBoxDoc.getDocumentCatalog().getStructureTreeRoot();
ArrayNode structureTreeArray;
try {

View file

@ -5,7 +5,6 @@
<body>
<th:block th:insert="~{fragments/common :: game}"></th:block>
<div id="page-container">
<div id="content-wrap">
<div th:insert="~{fragments/navbar.html :: navbar}"></div>
@ -71,14 +70,17 @@
function renderJsonSection(key, value, depth = 0) {
// Replace spaces and other non-alphanumeric characters with underscores for valid IDs
let safeKey = (typeof key === "string") ? key.replace(/[^a-zA-Z0-9]/g, '_') : key;
let output = `<div class="card mb-3">
<div class="card-header" id="${key}-heading-${depth}">
<div class="card-header" id="${safeKey}-heading-${depth}">
<h5 class="mb-0">`;
// Check if the value is an object and has children
if (value && typeof value === 'object' && Object.keys(value).length) {
if (value && typeof value === 'object' && (Object.keys(value).length || Array.isArray(value))) {
output += `
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#${key}-content-${depth}" aria-expanded="true" aria-controls="${key}-content-${depth}">
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#${safeKey}-content-${depth}" aria-expanded="true" aria-controls="${safeKey}-content-${depth}">
${key}
</button>`;
} else {
@ -89,7 +91,7 @@
output += `
</h5>
</div>
<div id="${key}-content-${depth}" class="collapse" aria-labelledby="${key}-heading-${depth}">`;
<div id="${safeKey}-content-${depth}" class="collapse" aria-labelledby="${safeKey}-heading-${depth}">`;
// Check if the value is a nested object
if (typeof value === 'object' && !Array.isArray(value)) {
@ -99,9 +101,13 @@
}
output += '</div>';
} else if (typeof value === 'object' && Array.isArray(value) && value.length) { // Array values
output += '<div class="card-body">';
value.forEach((val, index) => {
output += renderJsonSection(index, val, depth + 1);
// For arrays, we're going to make the displayed key more descriptive.
const arrayKey = `${key}[${index}]`;
output += renderJsonSection(arrayKey, val, depth + 1);
});
output += '</div>';
}
output += '</div></div>';
@ -117,6 +123,8 @@
</script>
</div>
</div>