【发布时间】:2016-01-12 09:54:24
【问题描述】:
我想知道是否可以将 Java/C# 中的打印机识别为 pdf 打印机并阻止它们。
这背后的主要原因是,我有一个包含版权的图片打印软件。在网络中,我很容易使用水印等来保护这些版权,而且用户也可以打印出应用程序。
如果用户将图像打印到 pdf 打印机,他可以将图像从 pdf f.e. 中剪切出来。 . 因为在打印结果中,客户不想要水印
【问题讨论】:
我想知道是否可以将 Java/C# 中的打印机识别为 pdf 打印机并阻止它们。
这背后的主要原因是,我有一个包含版权的图片打印软件。在网络中,我很容易使用水印等来保护这些版权,而且用户也可以打印出应用程序。
如果用户将图像打印到 pdf 打印机,他可以将图像从 pdf f.e. 中剪切出来。 . 因为在打印结果中,客户不想要水印
【问题讨论】:
我认为仅通过检查属性是不可能的。你能做的就是先把所有的打印机都拿到
PrinterSettings.InstalledPrinters
for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++){
pkInstalledPrinters = PrinterSettings.InstalledPrinters[i];
}
之后,您可以使用PrintSystemObject.PropertiesCollection 写出打印机设置,或者直接使用PrintProcessorProperty Class 写出处理器名称。
然后,如果您可以使用这些属性中的任何一个指定 PDF 打印机,则需要查看该属性。
【讨论】:
您可以检查打印机的打印处理器,看看它是否是已知的 PDF 打印处理器。 https://msdn.microsoft.com/en-us/library/system.printing.printsystemobject.propertiescollection%28v=vs.110%29.aspx
【讨论】: