例如,您向客户发送包含发票的PDF文档,您希望他们在屏幕上以彩色查看您的徽标,但是在打印时,您希望您的徽标以其可打印的黑/白版本打印, 那可能吗?谢谢。
答案 0 :(得分:3)
有几种方法可以做到。
表单字段可以设置为“仅打印”或“仅屏幕”。 “仅图标”按钮字段可以具有任意外观。 Acrobat的UI将允许您导入任何PDF页面,并且允许您生成字段的API通常可以让您绘制自己的外观。
可选内容组(又称图层)。 OCG可以具有单独的ON和OFF状态,用于屏幕和打印。 OCG是一种相对高级的功能,只有更成熟的API支持。
我是iText的粉丝(和贡献者),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许可的,这要求任何有权访问该程序的OUTPUT的人也可以访问该来源。 AKA:商业上充满敌意。或者你可以购买商业许可证。以前的版本在MPL或LGPL下可用,但不再受支持,除非在这样的地方,即便如此,答案也越来越“获得更新的版本”。
答案 1 :(得分:0)
你可以使用图层设置在打印时出现的某些内容以及其他正在查看的内容。
答案 2 :(得分:0)
是的,PDF规范允许创建此类PDF文件。但是,您还必须使用一种工具,以便在PDF规范中利用此功能。