JavaScript-使用PDF中的数据进行异步计算
所以,我正在为一个朋友建立这个程序。它会自动从发票中取出所有金额并将其相加。我使用fileReader导入PDF,然后循环它们,然后循环字符串以获得正确的值。之后,我将所有值相加 程序运行良好。然而,由于它是一个循环中的一个循环,所以需要一段时间来汇总这些值。那样的话,当我JavaScript-使用PDF中的数据进行异步计算,javascript,html,async-await,filereader,Javascript,Html,Async Await,Filereader,所以,我正在为一个朋友建立这个程序。它会自动从发票中取出所有金额并将其相加。我使用fileReader导入PDF,然后循环它们,然后循环字符串以获得正确的值。之后,我将所有值相加 程序运行良好。然而,由于它是一个循环中的一个循环,所以需要一段时间来汇总这些值。那样的话,当我 console.log(sum) 总数是0。只有当我稍等片刻并在控制台中手动键入console.log(sum)时,才会显示正确的值 所以我猜我必须使它异步?但我已经试了一段时间了,我可以。有人能帮忙吗 //wird AP
console.log(sum)
总数是0。只有当我稍等片刻并在控制台中手动键入console.log(sum)时,才会显示正确的值
所以我猜我必须使它异步?但我已经试了一段时间了,我可以。有人能帮忙吗
//wird API von Browser unterstützt?
if (window.File && window.FileReader && window.FileList && window.Blob) {
} else {
alert('Die File API wird nicht vom Browser unterstützt. Browser aktualisieren bzw. Google Chrome verwenden')
}
let sum = 0
const input = document.getElementById('files')
input.addEventListener('change', readmultifiles, false);
function readmultifiles() {
Object.keys(input.files).forEach(i => {
const file = input.files[i]
const reader = new FileReader()
reader.onload = () => {
let PDF = reader.result
for (let i = PDF.search("Summe"); i <= PDF.search("Leistung")+3; i++) {
if(PDF[i] === ",") {
let amount = "."
let newAmount = PDF[i-1] + amount + PDF[i+1] + PDF[i+2]
if(PDF[i-2] !== " ") {
newAmount = PDF[i-2] + newAmount
}
if(PDF[i-3] !== " " && PDF[i-3] !== "(" && PDF[i-3] !== "T") {
newAmount = PDF[i-3] + newAmount
}
if(PDF[i-4] !== " " && PDF[i-4] !=="(" && PDF[i-4] !== "T") {
newAmount = PDF[i-4] + newAmount
}
if(PDF[i-5] !== " " && PDF[i-5] !== "(" && PDF[i-5] !== "T") {
newAmount = PDF[i-5] + newAmount
}
console.log(newAmount)
let newNewAmount = parseFloat(newAmount)
let newFixedAmount = newNewAmount
sum += newFixedAmount
}
}
}
reader.readAsBinaryString(file)
} )
console.log(sum)
}
//wird API von Browser unterstützt?
if(window.File&&window.FileReader&&window.FileList&&window.Blob){
}否则{
警报('Die File API wird nicht vom Browser unterstützt.Browser aktualisieren bzw.Google Chrome verwenden')
}
设和=0
常量输入=document.getElementById('文件')
input.addEventListener('change',readmultifiles,false);
函数readmultifiles(){
Object.keys(input.files).forEach(i=>{
const file=input.files[i]
const reader=new FileReader()
reader.onload=()=>{
让PDF=reader.result
for(let i=PDF.search(“Summe”);i