Переключение лотков принтера

Базовое решение 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
5
задан Shog9 21 June 2009 в 21:53
поделиться

3 ответа

Хорошо, я понял это. Ответ:

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
  1. вот именно лоток был изменен
  2. печать выполняется с помощью 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()
    

Готово

6
ответ дан 14 December 2019 в 04:49
поделиться

Это не возможная использующая плоскость PDF, как Вы имеете, создают новое задание печати для какого-то конкретного мусорного ведра и комбинации лотка (и не все принтеры позволяют Вам делать, это, ксерокс 4x и Ряд DP позволяет Вам делать такие вещи).

Мой лучший выбор манипулировал бы PostScript: преобразуйте PDF в PostScript, где Вы имеете доступ к отдельным страницам, затем извлекаете страницы, Вам нужно и для каждой такой страницы (или страницы) создают новое задание печати (например, использующий Windows-программу lpr). Для упрощения задачи я создал бы очередь печати для любой комбинации мусорного ведра и лотка, который необходимо распечатать к, затем использовать эти очереди в качестве принтеров.

1
ответ дан 14 December 2019 в 04:49
поделиться

Нет никакого простого способа сделать это, так как Вы указываете, что хотите выбрать определенные страницы из 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 не может содержать

1
ответ дан 14 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: