Многостраничный pdf-файл может быть извлечен как текст на одном уровне, а не указывать номер страницы в качестве аргумента, используя ниже код
import PyPDF2
import collections
pdf_file = open('samples.pdf', 'rb')
read_pdf = PyPDF2.PdfFileReader(pdf_file)
number_of_pages = read_pdf.getNumPages()
c = collections.Counter(range(number_of_pages))
for i in c:
page = read_pdf.getPage(i)
page_content = page.extractText()
print page_content.encode('utf-8')
В своем ответе вы говорите, что «в Firebase Firestore тип массива не допускает список объектов».
Это не правильно: вы можете хранить объекты в массиве. В консоли Firebase сначала нужно выбрать тип данных массива, а затем для каждого элемента массива выбрать тип карты. С помощью JavaScript SDK вы можете сохранить документ, содержащий массив объектов.
Исходя из вышеизложенного, вы можете использовать следующий подход при использовании Firestore:
guide
документов guide
документа в этой коллекции: id
в качестве идентификатора документа; sources
массива типов, в котором вы храните объекты, подобные тому, который показан в вашем вопросе. Таким образом, вы можете запросить свой guides
по документу id
и получить массив следующим образом:
var docRef = db.collection("guides").doc(guideId);
docRef.get().then(doc => {
if (doc.exists) {
const sourcesArray = doc.data().sources;
sourcesArray.forEach((element) => {
console.log(element.type);
console.log(element.url);
});
} else {
// doc.data() will be undefined in this case
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});