Двусторонняя печать PDF с использованием Java

у меня есть принтер, подключенный к CUPS, он поддерживает двустороннюю печать, как я могу настроить его для печати в одностороннем или двустороннем порядке с помощью моей процедуры Java?

Я безуспешно пытался использовать библиотеки itext с помощью добавления ASET и addViewerPreference.

кто-нибудь может предложить несколько предложений?


person jtyreman    schedule 17.02.2014    source источник
comment
Как вы печатаете из java в первую очередь? При использовании IPP вы должны установить атрибут задания sides = two-sided-long-edge docs.oracle.com/javase/7/docs/api/javax/print/attribute/   -  person IPP Nerd    schedule 26.04.2016


Ответы (2)


Я создал небольшой пример кода ChangeViewerPreference, который добавляет настройки средства просмотра в существующий PDF-файл:

PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.addViewerPreference(PdfName.DUPLEX, PdfName.DUPLEXFLIPLONGEDGE);
stamper.close();
reader.close();

Возможные значения для этого параметра просмотра: PdfName.SIMPLEX, PdfName.DUPLEXFLIPSHORTEDGE и PdfName.DUPLEXFLIPLONGEDGE. Этот код реализует ISO-32000-1 и работает со всеми средствами просмотра, в которых реализованы настройки средства просмотра, определенные в ISO-32000-1. Это не относится ко всем средствам просмотра, которые вы найдете на рынке. Может, поэтому тебе не везет.

Какой инструмент вы используете для рендеринга PDF? (Обратите внимание, что я понятия не имею, что означает «добавление ASET», поэтому вы можете уточнить.)

person Bruno Lowagie    schedule 17.02.2014

Моя библиотека ipp-client поддерживает настройку задание печати, например двусторонняя печать:

CupsClient cupsClient = new CupsClient("localhost");
IppPrinter ippPrinter = cupsClient.getPrinter("ColorJet_HP");
ippPrinter.printJob(
  new File("my-document.pdf"),
  documentFormat("application/pdf"),
  IppSides.TwoSidedLongEdge
);
person IPP Nerd    schedule 26.04.2016