extra fonts, ocr display full names, overlay fixes
This commit is contained in:
parent
4068d9530f
commit
b7d6ac2cc3
4 changed files with 184 additions and 17 deletions
BIN
src/main/resources/static/fonts/Arimo-Regular.woff2
Normal file
BIN
src/main/resources/static/fonts/Arimo-Regular.woff2
Normal file
Binary file not shown.
BIN
src/main/resources/static/fonts/Tinos-Regular.woff2
Normal file
BIN
src/main/resources/static/fonts/Tinos-Regular.woff2
Normal file
Binary file not shown.
|
@ -46,7 +46,7 @@
|
||||||
<div id="languages">
|
<div id="languages">
|
||||||
<div th:each="language, iterStat : ${languages}">
|
<div th:each="language, iterStat : ${languages}">
|
||||||
<input type="checkbox" th:name="languages" th:value="${language}" required th:id="${'language-' + language}" onchange="handleLangSelection()" />
|
<input type="checkbox" th:name="languages" th:value="${language}" required th:id="${'language-' + language}" onchange="handleLangSelection()" />
|
||||||
<label class="form-check-label" th:for="${'language-' + language}" th:text="${(language == 'eng') ? 'English' : language}"></label>
|
<label class="form-check-label" th:for="${'language-' + language}" th:text="${language}"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
|
@ -93,6 +93,154 @@
|
||||||
<br>
|
<br>
|
||||||
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{ocr.submit}"></button>
|
<button type="submit" id="submitBtn" class="btn btn-primary" th:text="#{ocr.submit}"></button>
|
||||||
</form>
|
</form>
|
||||||
|
<script>
|
||||||
|
const languageMap = {
|
||||||
|
'afr': 'Afrikaans',
|
||||||
|
'amh': 'Amharic',
|
||||||
|
'ara': 'Arabic',
|
||||||
|
'asm': 'Assamese',
|
||||||
|
'aze': 'Azerbaijani',
|
||||||
|
'aze_cyrl': 'Azerbaijani (Cyrillic)',
|
||||||
|
'bel': 'Belarusian',
|
||||||
|
'ben': 'Bengali',
|
||||||
|
'bod': 'Tibetan',
|
||||||
|
'bos': 'Bosnian',
|
||||||
|
'bre': 'Breton',
|
||||||
|
'bul': 'Bulgarian',
|
||||||
|
'cat': 'Catalan',
|
||||||
|
'ceb': 'Cebuano',
|
||||||
|
'ces': 'Czech',
|
||||||
|
'chi_sim': 'Chinese (Simplified)',
|
||||||
|
'chi_sim_vert': 'Chinese (Simplified, Vertical)',
|
||||||
|
'chi_tra': 'Chinese (Traditional)',
|
||||||
|
'chi_tra_vert': 'Chinese (Traditional, Vertical)',
|
||||||
|
'chr': 'Cherokee',
|
||||||
|
'cos': 'Corsican',
|
||||||
|
'cym': 'Welsh',
|
||||||
|
'dan': 'Danish',
|
||||||
|
'dan_frak': 'Danish (Fraktur)',
|
||||||
|
'deu': 'German',
|
||||||
|
'deu_frak': 'German (Fraktur)',
|
||||||
|
'div': 'Divehi',
|
||||||
|
'dzo': 'Dzongkha',
|
||||||
|
'ell': 'Greek',
|
||||||
|
'eng': 'English',
|
||||||
|
'enm': 'English, Middle (1100-1500)',
|
||||||
|
'epo': 'Esperanto',
|
||||||
|
'equ': 'Math / equation detection module',
|
||||||
|
'est': 'Estonian',
|
||||||
|
'eus': 'Basque',
|
||||||
|
'fao': 'Faroese',
|
||||||
|
'fas': 'Persian',
|
||||||
|
'fil': 'Filipino',
|
||||||
|
'fin': 'Finnish',
|
||||||
|
'fra': 'French',
|
||||||
|
'frk': 'Frankish',
|
||||||
|
'frm': 'French, Middle (ca.1400-1600)',
|
||||||
|
'fry': 'Western Frisian',
|
||||||
|
'gla': 'Scottish Gaelic',
|
||||||
|
'gle': 'Irish',
|
||||||
|
'glg': 'Galician',
|
||||||
|
'grc': 'Ancient Greek',
|
||||||
|
'guj': 'Gujarati',
|
||||||
|
'hat': 'Haitian, Haitian Creole',
|
||||||
|
'heb': 'Hebrew',
|
||||||
|
'hin': 'Hindi',
|
||||||
|
'hrv': 'Croatian',
|
||||||
|
'hun': 'Hungarian',
|
||||||
|
'hye': 'Armenian',
|
||||||
|
'iku': 'Inuktitut',
|
||||||
|
'ind': 'Indonesian',
|
||||||
|
'isl': 'Icelandic',
|
||||||
|
'ita': 'Italian',
|
||||||
|
'ita_old': 'Italian (Old)',
|
||||||
|
'jav': 'Javanese',
|
||||||
|
'jpn': 'Japanese',
|
||||||
|
'jpn_vert': 'Japanese (Vertical)',
|
||||||
|
'kan': 'Kannada',
|
||||||
|
'kat': 'Georgian',
|
||||||
|
'kat_old': 'Georgian (Old)',
|
||||||
|
'kaz': 'Kazakh',
|
||||||
|
'khm': 'Central Khmer',
|
||||||
|
'kir': 'Kirghiz, Kyrgyz',
|
||||||
|
'kmr': 'Northern Kurdish',
|
||||||
|
'kor': 'Korean',
|
||||||
|
'kor_vert': 'Korean (Vertical)',
|
||||||
|
'lao': 'Lao',
|
||||||
|
'lat': 'Latin',
|
||||||
|
'lav': 'Latvian',
|
||||||
|
'lit': 'Lithuanian',
|
||||||
|
'ltz': 'Luxembourgish',
|
||||||
|
'mal': 'Malayalam',
|
||||||
|
'mar': 'Marathi',
|
||||||
|
'mkd': 'Macedonian',
|
||||||
|
'mlt': 'Maltese',
|
||||||
|
'mon': 'Mongolian',
|
||||||
|
'mri': 'Maori',
|
||||||
|
'msa': 'Malay',
|
||||||
|
'mya': 'Burmese',
|
||||||
|
'nep': 'Nepali',
|
||||||
|
'nld': 'Dutch; Flemish',
|
||||||
|
'nor': 'Norwegian',
|
||||||
|
'oci': 'Occitan (post 1500)',
|
||||||
|
'ori': 'Oriya',
|
||||||
|
'osd': 'Orientation and script detection module',
|
||||||
|
'pan': 'Panjabi, Punjabi',
|
||||||
|
'pol': 'Polish',
|
||||||
|
'por': 'Portuguese',
|
||||||
|
'pus': 'Pushto, Pashto',
|
||||||
|
'que': 'Quechua',
|
||||||
|
'ron': 'Romanian, Moldavian, Moldovan',
|
||||||
|
'rus': 'Russian',
|
||||||
|
'san': 'Sanskrit',
|
||||||
|
'sin': 'Sinhala, Sinhalese',
|
||||||
|
'slk': 'Slovak',
|
||||||
|
'slk_frak': 'Slovak (Fraktur)',
|
||||||
|
'slv': 'Slovenian',
|
||||||
|
'snd': 'Sindhi',
|
||||||
|
'spa': 'Spanish',
|
||||||
|
'spa_old': 'Spanish (Old)',
|
||||||
|
'sqi': 'Albanian',
|
||||||
|
'srp': 'Serbian',
|
||||||
|
'srp_latn': 'Serbian (Latin)',
|
||||||
|
'sun': 'Sundanese',
|
||||||
|
'swa': 'Swahili',
|
||||||
|
'swe': 'Swedish',
|
||||||
|
'syr': 'Syriac',
|
||||||
|
'tam': 'Tamil',
|
||||||
|
'tat': 'Tatar',
|
||||||
|
'tel': 'Telugu',
|
||||||
|
'tgk': 'Tajik',
|
||||||
|
'tgl': 'Tagalog',
|
||||||
|
'tha': 'Thai',
|
||||||
|
'tir': 'Tigrinya',
|
||||||
|
'ton': 'Tonga (Tonga Islands)',
|
||||||
|
'tur': 'Turkish',
|
||||||
|
'uig': 'Uighur, Uyghur',
|
||||||
|
'ukr': 'Ukrainian',
|
||||||
|
'urd': 'Urdu',
|
||||||
|
'uzb': 'Uzbek',
|
||||||
|
'uzb_cyrl': 'Uzbek (Cyrillic)',
|
||||||
|
'vie': 'Vietnamese',
|
||||||
|
'yid': 'Yiddish',
|
||||||
|
'yor': 'Yoruba'
|
||||||
|
};
|
||||||
|
|
||||||
|
// Step 2: Function to get the full language name
|
||||||
|
function getFullLanguageName(shortCode) {
|
||||||
|
return languageMap[shortCode] || shortCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 3: Apply the function to your labels
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const labels = document.querySelectorAll('#languages .form-check-label');
|
||||||
|
labels.forEach(label => {
|
||||||
|
const languageCode = label.getAttribute('for').split('-')[1];
|
||||||
|
label.textContent = getFullLanguageName(languageCode);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
<p th:text="#{ocr.credit}"></p>
|
<p th:text="#{ocr.credit}"></p>
|
||||||
<p th:text="#{ocr.help}"></p>
|
<p th:text="#{ocr.help}"></p>
|
||||||
<a href="https://github.com/Frooodle/Stirling-PDF/blob/main/HowToUseOCR.md">https://github.com/Frooodle/Stirling-PDF/blob/main/HowToUseOCR.md</a>
|
<a href="https://github.com/Frooodle/Stirling-PDF/blob/main/HowToUseOCR.md">https://github.com/Frooodle/Stirling-PDF/blob/main/HowToUseOCR.md</a>
|
||||||
|
|
|
@ -45,31 +45,50 @@
|
||||||
<script>
|
<script>
|
||||||
function updateCountsInputs() {
|
function updateCountsInputs() {
|
||||||
const mode = document.getElementById('overlayMode').value;
|
const mode = document.getElementById('overlayMode').value;
|
||||||
|
console.log("mode",mode);
|
||||||
const countsContainer = document.getElementById('countsContainer');
|
const countsContainer = document.getElementById('countsContainer');
|
||||||
|
console.log("countsContainer",countsContainer);
|
||||||
countsContainer.innerHTML = ''; // Clear previous inputs
|
countsContainer.innerHTML = ''; // Clear previous inputs
|
||||||
|
|
||||||
if (mode === 'FixedRepeatOverlay') {
|
if (mode === 'FixedRepeatOverlay') {
|
||||||
const fileInput = document.getElementsByName('overlayFiles')[0];
|
const fileInput = document.getElementById('overlayFiles-input');
|
||||||
const fileCount = fileInput.files.length;
|
console.log("fileInput",fileInput);
|
||||||
|
if(fileInput){
|
||||||
for (let i = 0; i < fileCount; i++) {
|
const files = fileInput.files
|
||||||
const input = document.createElement('input');
|
console.log("files",files);
|
||||||
input.type = 'text';
|
if(files) {
|
||||||
input.name = 'counts';
|
const fileCount = files.length;
|
||||||
input.classList.add('form-control');
|
|
||||||
input.placeholder = 'Count for file ' + (i + 1);
|
for (let i = 0; i < fileCount; i++) {
|
||||||
countsContainer.appendChild(input);
|
const input = document.createElement('input');
|
||||||
|
input.type = 'text';
|
||||||
|
input.name = 'counts';
|
||||||
|
input.classList.add('form-control');
|
||||||
|
input.placeholder = 'Count for file ' + (i + 1);
|
||||||
|
countsContainer.appendChild(input);
|
||||||
|
}
|
||||||
|
countsContainer.style.display = 'block';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
countsContainer.style.display = 'block';
|
|
||||||
} else {
|
} else {
|
||||||
countsContainer.style.display = 'none';
|
countsContainer.style.display = 'none';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
document.addEventListener('DOMContentLoaded', (event) => {
|
||||||
// Update counts inputs when files are selected
|
var fileInput = document.getElementById('overlayFiles-input');
|
||||||
document.getElementsByName('overlayFiles')[0].addEventListener('change', updateCountsInputs);
|
console.log("fileInput2",fileInput);
|
||||||
</script>
|
if (fileInput) {
|
||||||
|
fileInput.addEventListener('change', updateCountsInputs);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
document.addEventListener('DOMContentLoaded', (event) => {
|
||||||
|
var overlay = document.getElementById('overlayMode');
|
||||||
|
console.log("overlay2",overlay);
|
||||||
|
if (overlay) {
|
||||||
|
overlay.addEventListener('change', updateCountsInputs);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue