The Attributes property can be used to modify or read the default attributes of an installed printer.
System.Int32 Attributes
long SetPrinterAttributes(HANDLE hPrinter, DWORD dwAttributes)
DWORD GetPrinterAttributes(HANDLE hPrinter)
Attributes, dwAttributes
[in, out] Printer attributes as defined by the Windows® operating system.
hPrinter
Handle to printer returned by any of the DriverInit function calls.
SetPrinterAttributes returns 1 if successful, 0 otherwise; Attributes and GetPrinterAttributes return the current attributes of the printer.
Modifying the printer attributes requires administrative rights.
The list of attributes that can be set for a printer are defined in the MSDN documentation under the PRINTER_INFO_2 structure (https://msdn.microsoft.com/en-us/library/dd162845(VS.85).aspx). The attributes are values assigned to the Attributes member of the PRINTER_INFO_2 structure.
Member of CDIntfEx.CDIntfEx.
<Flags()>
Public Enum PRINTERATTRIBUTE As Integer
PRINTER_ATTRIBUTE_QUEUED = &H1
PRINTER_ATTRIBUTE_DIRECT = &H2
PRINTER_ATTRIBUTE_DEFAULT = &H4
PRINTER_ATTRIBUTE_SHARED = &H8
PRINTER_ATTRIBUTE_NETWORK = &H10
PRINTER_ATTRIBUTE_HIDDEN = &H20
PRINTER_ATTRIBUTE_LOCAL = &H40
PRINTER_ATTRIBUTE_ENABLE_DEVQ = &H80
PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = &H100
PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = &H200
PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400
PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800
PRINTER_ATTRIBUTE_RAW_ONLY = &H1000
PRINTER_ATTRIBUTE_PUBLISHED = &H2000
End Enum
<Flags()>
Public Enum acFileNameOptions As Integer
' Please check FileNameOptions for the complete flags version
NoPrompt = &H1
UseFileName = &H2
Concatenate = &H4
DisableCompression = &H8
EmbedFonts = &H10
BroadcastMessages = &H20
PrintWatermark = &H40
MultilingualSupport = &H80
EncryptDocument = &H100
FullEmbed = &H200
End Enum
Private Sub Sample()
' Constants for Activation codes
Const strLicenseTo As String = "Amyuni PDF Converter Evaluation"
Const strActivationCode As String = "07EFCDAB0100010025AFF1801CB9441306C5739F7D452154D8833B9CECBA2ADE79E3762A69FFC354528A5F4A5811BE3204A0A439F5BA"
Const AMYUNIPRINTERNAME As String = "Amyuni PDF Converter"
' Declare a new cdintfex object if it does not exist in the form.
Dim PDF As New CDIntfEx.CDIntfEx
' Get a reference to the installed printer.
' This will fail if the printer name passed to the DriverInit method is
' not found in the printer’s folder
PDF.DriverInit(AMYUNIPRINTERNAME)
' The SetDefaultPrinter function sets the system default printer to the one
' initialized by the DriverInit functions.
PDF.SetDefaultPrinter()
' The EnablePrinter() method needs to be called right before each print job.
' and before the configuration
' Calling the EnablePrinter() method will start a 20 second time-out value
PDF.EnablePrinter(strLicenseTo, strActivationCode)
' Resulting PDF document stored here
PDF.DefaultDirectory = "C:\Temp"
' Set Printer options
PDF.FileNameOptionsEx = acFileNameOptions.NoPrompt
' Set an Attribute
PDF.Attributes = PRINTERATTRIBUTE.PRINTER_ATTRIBUTE_DEFAULT
' The BatchConvert method converts a number of files to PDF.
PDF.BatchConvert("C:\Temp\*.docx")
' Get an Attribute
MsgBox(PDF.Attributes)
' The RestoreDefaultPrinter function resets the system default printer
' to the printer that was the default before the call to SetDefaultPrinter.
PDF.RestoreDefaultPrinter()
' This function will simply detach from an existing printer because the handle was created using DriverInit
PDF.DriverEnd()
' Destroy PDF object
PDF = Nothing
End Sub
[Flags]
public enum PRINTERATTRIBUTE
{
PRINTER_ATTRIBUTE_QUEUED = 0x00000001,
PRINTER_ATTRIBUTE_DIRECT = 0x00000002,
PRINTER_ATTRIBUTE_DEFAULT = 0x00000004,
PRINTER_ATTRIBUTE_SHARED = 0x00000008,
PRINTER_ATTRIBUTE_NETWORK = 0x00000010,
PRINTER_ATTRIBUTE_HIDDEN = 0x00000020,
PRINTER_ATTRIBUTE_LOCAL = 0x00000040,
PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080,
PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100,
PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200,
PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400,
PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800,
PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000,
PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000
}
[Flags]
public enum acFileNameOptions
{
// Please check FileNameOptions for the complete flags version
NoPrompt = 0x00000001,
UseFileName = 0x00000002,
Concatenate = 0x00000004,
DisableCompression = 0x00000008,
EmbedFonts = 0x00000010,
BroadcastMessages = 0x00000020,
PrintWatermark = 0x00000040,
MultilingualSupport = 0x00000080,
EncryptDocument = 0x00000100,
FullEmbed = 0x00000200
}
private void Sample()
{
// Constants for Activation codes
const string strLicenseTo = "Amyuni PDF Converter Evaluation";
const string strActivationCode = "07EFCDAB0100010025AFF1801CB9441306C5739F7D452154D8833B9CECBA2ADE79E3762A69FFC354528A5F4A5811BE3204A0A439F5BA";
const string AMYUNIPRINTERNAME = "Amyuni PDF Converter";
// Declare a new cdintfex object if it doesn' t exist in the form.
CDIntfEx.CDIntfEx PDF = new CDIntfEx.CDIntfEx();
// Get a reference to the installed printer.
// This will fail if the printer name passed to the DriverInit method is
// not found in the printer’s folder
PDF.DriverInit(AMYUNIPRINTERNAME);
// The SetDefaultPrinter function sets the system default printer to the one
// initialized by the DriverInit functions.
PDF.SetDefaultPrinter();
// The EnablePrinter() method needs to be called right before each print job.
// and before the configuration
// Calling the EnablePrinter() method will start a 20 second time-out value
PDF.EnablePrinter(strLicenseTo, strActivationCode);
// Resulting PDF document stored here
PDF.DefaultDirectory = @"C:\Temp";
// Set Printer options
PDF.FileNameOptionsEx = (int)acFileNameOptions.NoPrompt;
// Set an Attribute
PDF.Attributes = (int)PRINTERATTRIBUTE.PRINTER_ATTRIBUTE_DEFAULT;
// The BatchConvert method converts a number of files to PDF.
PDF.BatchConvert(@"C:\Temp\*.docx");
// Get an Attribute
MessageBox.Show(PDF.Attributes.ToString());
// The RestoreDefaultPrinter function resets the system default printer
// to the printer that was the default before the call to SetDefaultPrinter.
PDF.RestoreDefaultPrinter();
// This function will simply detach from an existing printer because the handle was created using DriverInit
PDF.DriverEnd();
// Destroy PDF object
PDF = null;
}
// PDF Converter Cpp.cpp : Defines the entry point for the console application.
//
#include <Windows.h>
#include <string>
#include <iostream>
#include "CdIntf.h"
#pragma comment (lib, "CDIntf.lib")
using namespace std;
int main()
{
// Constants for Activation codes
#define strLicenseTo "Amyuni PDF Converter Evaluation"
#define strActivationCode "07EFCDAB0100010025AFF1801CB9441306C5739F7D452154D8833B9CECBA2ADE79E3762A69FFC354528A5F4A5811BE3204A0A439F5BA"
#define AMYUNIPRINTERNAME "Amyuni PDF Converter"
// Get a reference to the installed printer.
// This will fail if the printer name passed to the DriverInit method is
// not found in the printer’s folder
HANDLE PDF = DriverInit(AMYUNIPRINTERNAME);
// The CDISetDefaultPrinter function sets the system default printer to the one
// initialized by the DriverInit functions.
CDISetDefaultPrinter(PDF);
// The EnablePrinter() method needs to be called right before each print job.
// and before the configuration
// Calling the EnablePrinter() method will start a 20 second time-out value
EnablePrinter(PDF, strLicenseTo, strActivationCode);
// Resulting PDF document stored here
SetDefaultDirectory(PDF, "C:\\Temp");
// Set Printer options
SetFileNameOptions(PDF, NoPrompt);
// Set an Attribute
SetPrinterAttributes(PDF, PRINTER_ATTRIBUTE_DEFAULT);
// The BatchConvert method converts a number of files to PDF.
BatchConvertEx(PDF, "C:\\Temp\\*.docx");
// Get an Attribute
cout << GetPrinterAttributes(PDF);
// The RestoreDefaultPrinter function resets the system default printer
// to the printer that was the default before the call to SetDefaultPrinter.
RestoreDefaultPrinter(PDF);
// This function will simply detach from an existing printer because the handle was created using DriverInit
DriverEnd(PDF);
// Destroy PDF object
PDF = nullptr;
return 0;
}
package Example;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
public class Sample {
public enum PRINTERATTRIBUTE
{
PRINTER_ATTRIBUTE_QUEUED(0x00000001),
PRINTER_ATTRIBUTE_DIRECT(0x00000002),
PRINTER_ATTRIBUTE_DEFAULT(0x00000004),
PRINTER_ATTRIBUTE_SHARED(0x00000008),
PRINTER_ATTRIBUTE_NETWORK(0x00000010),
PRINTER_ATTRIBUTE_HIDDEN(0x00000020),
PRINTER_ATTRIBUTE_LOCAL(0x00000040),
PRINTER_ATTRIBUTE_ENABLE_DEVQ(0x00000080),
PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS(0x00000100),
PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST(0x00000200),
PRINTER_ATTRIBUTE_WORK_OFFLINE(0x00000400),
PRINTER_ATTRIBUTE_ENABLE_BIDI(0x00000800),
PRINTER_ATTRIBUTE_RAW_ONLY(0x00001000),
PRINTER_ATTRIBUTE_PUBLISHED(0x00002000);
private int value;
private PRINTER_ATTRIBUTE(int value)
{
this.value = value;
}
public Object value(){
return value;
}
}
public enum acFileNameOptions
{
// Please check FileNameOptions for the complete flags version
NoPrompt(0x00000001),
UseFileName(0x00000002),
Concatenate(0x00000004),
DisableCompression(0x00000008),
EmbedFonts(0x00000010),
BroadcastMessages(0x00000020),
PrintWatermark(0x00000040),
MultilingualSupport(0x00000080),
EncryptDocument(0x00000100),
FullEmbed(0x00000200),
private int value;
private acFileNameOptions(int value)
{
this.value = value;
}
public Object value(){
return value;
}
}
public static void main(String[] args)
{
// Constants for Activation codes
String strLicenseTo = "Amyuni PDF Converter Evaluation";
String strActivationCode = "07EFCDAB0100010025AFF1801CB9441306C5739F7D452154D8833B9CECBA2ADE79E3762A69FFC354528A5F4A5811BE3204A0A439F5BA";
String AMYUNIPRINTERNAME = "Amyuni PDF Converter";
// Declare a new cdintfex object if it does not exist in the form.
ActiveXComponent pdf = new ActiveXComponent("CDIntfEx.CDIntfEx.6.5");
// Get a reference to the installed printer.
// This will fail if the printer name passed to the DriverInit method is
// not found in the printer’s folder
HANDLE PDF = DriverInit(AMYUNIPRINTERNAME);
// The SetDefaultPrinter function sets the system default printer to the one
// initialized by the DriverInit functions.
Dispatch.call(pdf,"SetDefaultPrinter");
// The EnablePrinter() method needs to be called right before each print job.
// and before the configuration
// Calling the EnablePrinter() method will start a 20 second time-out value
Dispatch.call(pdf,"EnablePrinter", strLicenseTo, strActivationCode);
// Resulting PDF document stored here
Dispatch.put(pdf,"DefaultDirectory","c:\\Temp");
// Set Printer options
Dispatch.put(pdf,"FileNameOptionsEx",acFileNameOptions.NoPrompt.value);
// Set Printer options
Dispatch.put(pdf, "Attributes", PRINTERATTRIBUTE.PRINTER_ATTRIBUTE_DEFAULT.value);
// The BatchConvert method converts a number of files to PDF.
Dispatch.call(pdf,"BatchConvert","c:\\Temp\\*.docx");
// Get an Attribute
Dispatch.call(pdf, "Attributes");
// The RestoreDefaultPrinter function resets the system default printer
// to the printer that was the default before the call to SetDefaultPrinter.
Dispatch.call(pdf,"RestoreDefaultPrinter");
// This function will simply detach from an existing printer because the handle was created using DriverInit
Dispatch.call(pdf,"DriverEnd");
// Destroy PDF object
pdf = null;
}
}
$PRINTERATTRIBUTE = @{
PRINTER_ATTRIBUTE_QUEUED = 0x00000001
PRINTER_ATTRIBUTE_DIRECT = 0x00000002
PRINTER_ATTRIBUTE_DEFAULT = 0x00000004
PRINTER_ATTRIBUTE_SHARED = 0x00000008
PRINTER_ATTRIBUTE_NETWORK = 0x00000010
PRINTER_ATTRIBUTE_HIDDEN = 0x00000020
PRINTER_ATTRIBUTE_LOCAL = 0x00000040
PRINTER_ATTRIBUTE_ENABLE_DEVQ = 0x00000080
PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = 0x00000100
PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = 0x00000200
PRINTER_ATTRIBUTE_WORK_OFFLINE = 0x00000400
PRINTER_ATTRIBUTE_ENABLE_BIDI = 0x00000800
PRINTER_ATTRIBUTE_RAW_ONLY = 0x00001000
PRINTER_ATTRIBUTE_PUBLISHED = 0x00002000
}
$acFileNameOptions = @{
NoPrompt = 0x00000001
UseFileName = 0x00000002
Concatenate = 0x00000004
DisableCompression = 0x00000008
EmbedFonts = 0x00000010
BroadcastMessages = 0x00000020
PrintWatermark = 0x00000040
MultilingualSupport = 0x00000080
EncryptDocument = 0x00000100
FullEmbed = 0x00000200
}
#Please check FileNameOptions for the complete flags version
# Constants for Activation codes
$strLicenseTo = "Amyuni PDF Converter Evaluation"
$strActivationCode = "07EFCDAB0100010025AFF1801CB9441306C5739F7D452154D8833B9CECBA2ADE79E3762A69FFC354528A5F4A5811BE3204A0A439F5BA"
$AMYUNIPRINTERNAME = "Amyuni PDF Converter"
#Declare a new cdintfex object if it does not exist in the form.
$PDF = New-Object -ComObject CDIntfEx.CDIntfEx.6.5
#Get a reference to the installed printer.
#This will fail if the printer name passed to the DriverInit method is
#not found in the printer’s folder
[System.__ComObject].InvokeMember('DriverInit', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF,$AMYUNIPRINTERNAME)
#The SetDefaultPrinter function sets the system default printer to the one
#initialized by the DriverInit functions.
[System.__ComObject].InvokeMember('SetDefaultPrinter', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF,$null)
#The EnablePrinter() method needs to be called right before each print job.
# and before the configuration
#Calling the EnablePrinter() method will start a 20 second time-out value
[System.__ComObject].InvokeMember('EnablePrinter', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF, @($strLicenseTo, $strActivationCode))
#Resulting PDF document stored here
[System.__ComObject].InvokeMember('DefaultDirectory', [System.Reflection.BindingFlags]::SetProperty,$null,$PDF,"C:\Temp")
#Set Printer options
[System.__ComObject].InvokeMember('FileNameOptionsEx', [System.Reflection.BindingFlags]::SetProperty,$null,$PDF,$acFileNameOptions::NoPrompt)
#Set an Attribute
[System.__ComObject].InvokeMember('Attributes', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF,$PRINTERATTRIBUTE::PRINTER_ATTRIBUTE_DEFAULT)
#The BatchConvert method converts a number of files to PDF.
[System.__ComObject].InvokeMember('BatchConvert', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF, "C:\Temp\*.docx")
#Get an Attribute
[System.__ComObject].InvokeMember('Attributes', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF,$nullL)
#The RestoreDefaultPrinter function resets the system default printer
#to the printer that was the default before the call to SetDefaultPrinter.
[System.__ComObject].InvokeMember('RestoreDefaultPrinter', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF,$null)
#This function will simply detach from an existing printer because the handle was created using DriverInit
[System.__ComObject].InvokeMember('DriverEnd', [System.Reflection.BindingFlags]::InvokeMethod,$null,$PDF,$null)
#Destroy PDF object
$PDF = $null
' Printer Attribute constants
Const PRINTER_ATTRIBUTE_QUEUED = &H1
Const PRINTER_ATTRIBUTE_DIRECT = &H2
Const PRINTER_ATTRIBUTE_DEFAULT = &H4
Const PRINTER_ATTRIBUTE_SHARED = &H8
Const PRINTER_ATTRIBUTE_NETWORK = &H10
Const PRINTER_ATTRIBUTE_HIDDEN = &H20
Const PRINTER_ATTRIBUTE_LOCAL = &H40
Const PRINTER_ATTRIBUTE_ENABLE_DEVQ = &H80
Const PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS = &H100
Const PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST = &H200
Const PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400
Const PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800
Const PRINTER_ATTRIBUTE_RAW_ONLY = &H1000
Const PRINTER_ATTRIBUTE_PUBLISHED = &H2000
' FileNameOptions constants
' Please check FileNameOptions for the complete flags version
Const NoPrompt = &H1
Const UseFileName = &H2
Const Concatenate = &H4
Const DisableCompression = &H8
Const EmbedFonts = &H10
Const BroadcastMessages = &H20
Const PrintWatermark = &H40
Const MultilingualSupport = &H80
Const EncryptDocument = &H100
Const FullEmbed = &H200
' Constants for Activation codes
Const strLicenseTo = "Amyuni PDF Converter Evaluation"
Const strActivationCode = "07EFCDAB0100010025AFF1801CB9441306C5739F7D452154D8833B9CECBA2ADE79E3762A69FFC354528A5F4A5811BE3204A0A439F5BA"
Const AMYUNIPRINTERNAME = "Amyuni PDF Converter"
' Declare a new cdintfex object
Dim PDF
Set PDF = CreateObject("CDIntfEx.CDIntfEx.6.5")
' Get a reference to the installed printer.
' This will fail if the printer name passed to the DriverInit method is
' not found in the printer’s folder
PDF.DriverInit AMYUNIPRINTERNAME
' The SetDefaultPrinter function sets the system default printer to the one
' initialized by the DriverInit functions.
PDF.SetDefaultPrinter
' The EnablePrinter() method needs to be called right before each print job.
' and before the configuration
' Calling the EnablePrinter() method will start a 20 second time-out value
PDF.EnablePrinter strLicenseTo, strActivationCode
' Resulting PDF document stored here
PDF.DefaultDirectory = "C:\Temp"
' Set Printer options
PDF.FileNameOptionsEx = NoPrompt
' Set an Attribute
PDF.Attributes = PRINTER_ATTRIBUTE_DEFAULT
' The BatchConvert method converts a number of files to PDF.
PDF.BatchConvert "C:\Temp\*.docx"
' Get an Attribute
WScript.Echo PDF.Attributes
' The RestoreDefaultPrinter function resets the system default printer
' to the printer that was the default before the call to SetDefaultPrinter.
PDF.RestoreDefaultPrinter
' This function will simply detach from an existing printer because the handle was created using DriverInit
PDF.DriverEnd
' Destroy PDF object
PDF = Nothing