Может ли один и тот же документ PDF печататься иначе, чем на экране? - PullRequest
5 голосов
/ 02 апреля 2011

Например, вы отправляете документ в формате PDF, содержащий счет-фактуру, для клиента, вы хотите, чтобы он отображал ваш логотип в цветном виде на экране, но при печати вы хотите, чтобы ваш логотип был напечатан в черно-белой версии для печати., это возможно?Спасибо.

Ответы [ 3 ]

3 голосов
/ 04 апреля 2011

Есть несколько способов сделать это.

  • Поля формы могут быть установлены на «Только печать» или «Только на экране». Кнопочные поля «Только значок» могут иметь произвольный вид. Пользовательский интерфейс Acrobat позволит вам импортировать любую PDF-страницу, а API-интерфейсы, которые позволяют создавать поля, как правило, позволяют отображать ваши собственные представления.

  • Необязательные группы содержимого (или слои). OCG может иметь отдельные состояния ВКЛ и ВЫКЛ для экрана и печати. OCG - это относительно продвинутая функция, поддерживаемая только более зрелыми API.

Я фанат (и участник) iText, библиотеки Java, которая вполне способна использовать оба метода. Было бы проще создать кнопку только для значка.

PushbuttonField iconButton = new PushbuttonField(myPdfWriter, rectangle, fieldName);
iconButton.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
iconButton.setScaleIcon(PushbuttonField.SCALE_ICON_ALWAYS);
iconButton.setVisibility(BaseField.HIDDEN_BUT_PRINTABLE);

PdfImportedPage iconAppearance = myPdfWriter.getImportedPage(pdfReader, pageNum);
iconButton.setTemplate(iconAppearance);

myPdfWriter.addAnnotation(iconButton.getField());

Предполагается, что вы знаете прямоугольник, который следует использовать при создании PDF, и у вас есть страница PDF с черно-белым логотипом.

ПРИМЕЧАНИЕ. IText распространяется по лицензии AGPL, которая требует, чтобы все, кто имеет доступ к выходу программы, также имели доступ к источнику. АКА: Коммерчески враждебно. Или вы можете купить коммерческую лицензию. Предыдущие версии были доступны в соответствии с MPL или LGPL, но больше не поддерживаются, кроме как в таких местах. Даже тогда ответом будет все более "получить более новую версию".

0 голосов
/ 04 апреля 2011

Да, спецификация PDF позволяет создавать такие файлы PDF.Но вы также должны использовать инструмент, который позволит вам воспользоваться этой функцией в спецификации PDF.

0 голосов
/ 03 апреля 2011

Вы можете использовать слои, чтобы настроить отображение определенных вещей при печати и других при просмотре.

...