Базовое решение R с использованием merge
и aggregate
aggregate(Yesno ~ ID, merge(households, individuals), FUN = sum)
# ID Yesno
#1 1 2
#2 2 3
#3 3 0
#4 4 2
#5 5 1
Или с использованием dplyr
library(dplyr)
left_join(households, individuals) %>%
group_by(ID) %>%
summarise(Count = sum(Yesno))
#Joining, by = "ID"
## A tibble: 5 x 2
# ID Count
# <int> <int>
#1 1 2
#2 2 3
#3 3 0
#4 4 2
#5 5 1
Хорошо, я понял это. Ответ:
1. Вам нужен локальный принтер (если необходимо распечатать к сетевому принтеру, загрузите драйверы и добавьте его как локальный принтер),
2. используйте win32print, чтобы получить и установить принтер по умолчанию
3. также использование win32print, используйте следующий код:
import win32print
PRINTER_DEFAULTS = {"DesiredAccess":win32print.PRINTER_ALL_ACCESS}
pHandle = win32print.OpenPrinter('RICOH-LOCAL', PRINTER_DEFAULTS)
properties = win32print.GetPrinter(pHandle, 2) #get the properties
pDevModeObj = properties["pDevMode"] #get the devmode
automaticTray = 7
tray_one = 1
tray_two = 3
tray_three = 2
printer_tray = []
pDevModeObj.DefaultSource = tray_three #set the tray
properties["pDevMode"]=pDevModeObj #write the devmode back to properties
win32print.SetPrinter(pHandle,2,properties,0) #save the properties to the printer
печать выполняется с помощью Internet Explorer (из блога Graham King)
from win32com import client
import time
ie = client.Dispatch("InternetExplorer.Application")
def printPDFDocument(filename):
ie.Navigate(filename)
if ie.Busy:
time.sleep(1)
ie.Document.printAll()
ie.Quit()
Готово
Это не возможная использующая плоскость PDF, как Вы имеете, создают новое задание печати для какого-то конкретного мусорного ведра и комбинации лотка (и не все принтеры позволяют Вам делать, это, ксерокс 4x и Ряд DP позволяет Вам делать такие вещи).
Мой лучший выбор манипулировал бы PostScript: преобразуйте PDF в PostScript, где Вы имеете доступ к отдельным страницам, затем извлекаете страницы, Вам нужно и для каждой такой страницы (или страницы) создают новое задание печати (например, использующий Windows-программу lpr
). Для упрощения задачи я создал бы очередь печати для любой комбинации мусорного ведра и лотка, который необходимо распечатать к, затем использовать эти очереди в качестве принтеров.
Нет никакого простого способа сделать это, так как Вы указываете, что хотите выбрать определенные страницы из PDF и распечатать их к определенным мусорным ведрам с помощью Acrobat Reader
Пример: страница 1 Печати на мусорном ведре фирменного бланка 1, страница 2 на мусорном ведре запаса 2
Acrobat Reader только позволяет печатать целого документа из командной строки:
Вы могли изменить бесплатное программное обеспечение Ghostscript и сделать то, что Вы хотите.
или этот коммерческий продукт должен сделать задание. PDFPrint
Посмотрите разработчика Acrobat Reader FAQ на странице 24 для получения дополнительной информации
AcroRd32.exe/t соединяет "printername" каналом "drivername" "portname" — Запустите Adobe Reader и распечатайте файл при подавлении диалогового окна Print. Путь должен быть полностью указан.
Четыре параметра/t опции оценивают для соединения каналом, printername, drivername, и portname (все строки).
printername — Название Вашего принтера.
drivername — Имя Вашего драйвера принтера, как это появляется в свойствах Вашего принтера.
portname — порт принтера. portname не может содержать — имя Вашего драйвера принтера, как это появляется в свойствах Вашего принтера.
portname — Порт принтера. portname не может содержать