R прочитать файл PDF и преобразовать его в массив байтов для хранения на сервере sql

Используя R, я хотел бы взять файлы PDF и сохранить их в поле varbinary(max) сервера sql в виде массива байтов. Я буду использовать rodbc для вставки данных. Я застрял в том, как прочитать файл и преобразовать его в массив байтов, прежде чем передавать его в rodbc. На какие функции мне следует обратить внимание?


person John    schedule 22.11.2017    source источник
comment
Вы пытаетесь полностью очистить PDF-файлы или извлечь из них таблицы? Если вы пытаетесь извлечь таблицы, я добился успеха с пакетом tabulizer.   -  person Mako212    schedule 22.11.2017
comment
Если вы пытаетесь просто очистить все содержимое каждого документа, вы можете попробовать pdftools   -  person Mako212    schedule 22.11.2017
comment
не пытаясь очистить, мне нужно загрузить их на сервер sql, чтобы веб-сайт мог получить к ним доступ. Я пробовал метод по ссылке ниже, но получаю сообщение об ошибке «Calloc» не может выделить память (2147483648 из 1 байта) stackoverflow.com/questions/39270364/   -  person John    schedule 22.11.2017


Ответы (1)


Вероятно, существует больше, чем один способ снять шкуру с этой кошки, но я делал это в прошлом.

myPdf <- file("test.pdf", "rb")
myBinVec <- readBin(myPdf, raw(), n=1000000) #N needs to be larger than your file.
myBase64 <- rawToBase64(myBinVec)

Затем вставьте base64 в SQL-сервер и используйте X-Query для преобразования base64 в varbinary, как показано здесь: https://blog.falafel.com/t-sql-easy-base64-encoding-and-decoding/

Это обратный процесс, который мы используем для чтения PDF-файлов (и аналогичный процессу, который мы использовали для их вставки, хотя они приходят к нам уже в кодировке base64). Я хотел бы отметить, что вы можете вставить двоичный файл ?raw() непосредственно в SQL или преобразовать его в R в varbinary, однако я никогда не проверял это.

person Ian Wesley    schedule 22.11.2017