我正在尝试使用pdf.js,我想我发现了一个错误。我正在运行的JavaScript代码是:
<!DOCTYPE html>
<html>
<script src="pdf.js"></script>
<script src="pdf.worker.js"></script>
<body>
<script>
function renderPage(page)
{
page.getAnnotations().then(function(items)
{
for ( var i = 0; i < items.length; i++)
{
console.log(items[i].fieldName);
console.log(items[i].fieldType);
if (items[i].fieldType == 'Ch')
{
console.log(items[i].fieldValue[0]);
console.log(items[i].options.length);
for (var j = 0; j < items[i].options.length; j++)
{
console.log(items[i].options[j].displayValue);
console.log(items[i].options[j].exportValue);
}
}
}
});
}
function renderPages(pdfDoc)
{
for(var num = 1; num <= pdfDoc.numPages; num++)
pdfDoc.getPage(num).then(renderPage);
}
PDFJS.disableWorker = true;
PDFJS.getDocument('ComboBox.pdf').then(renderPages);
</script>
</body>
</html>
这段代码基本上列举了给定pdf文档中的所有AcroForms,如果AcroForm是ComboBox,则列出值。
如果任何给定的ComboBox在文档中只出现一次,则代码可以正常工作。但是,如果ComboBox重复(Acrobat允许这样做),那么«options.length»总是返回0.
我正在使用pdf.js的最新测试版(1.7.225)。
我在GitHub上提交了这个问题。