API referencePrinting

pdfNewCustomPrinter

pdfNewCustomPrinter creates a named alias/clone entry for

C
const char* __stdcall pdfNewCustomPrinterA(PPDF IPDF, const char* OriginalPrinterName);
int32_t __stdcall pdfNewInternalPrinterObject(PPDF IPDF, int32_t Options);
int32_t __stdcall pdfSetupPrinterA(PPDF IPDF, const char* CustomPrinterName, int32_t Setting, int32_t NewValue);
int32_t __stdcall pdfRequestPrinterStatus(PPDF IPDF, int32_t StatusCommand);
Delphi
function pdfNewCustomPrinterA(const IPDF: PPDF; OriginalPrinterName: PAnsiChar): PAnsiChar; stdcall;
function pdfNewInternalPrinterObject(const IPDF: PPDF; Options: Integer): Integer; stdcall;
function pdfSetupPrinterA(const IPDF: PPDF; CustomPrinterName: PAnsiChar; Setting, NewValue: Integer): Integer; stdcall;
function pdfRequestPrinterStatus(const IPDF: PPDF; StatusCommand: Integer): Integer; stdcall;

Purpose. pdfNewCustomPrinter creates a named alias/clone entry for an existing printer; pdfSetupPrinter stores a per-(name, setting) integer value against it (retrievable via the paired, not-in-this-volume, pdfGetSetupValue); pdfNewInternalPrinterObject and pdfRequestPrinterStatus are minimal placeholder entry points.

Description. pdfNewCustomPrinter/pdfSetupPrinter are real, self-consistent stores (FSetupVals, a TDictionary<string, Integer> keyed 'Name|Setting') — genuinely retained per-custom-printer configuration, but — following the exact same pattern as the DEVMODE pair above — this chapter found no consumer of FSetupVals anywhere in the print-execution path either; it is a real, queryable store with no confirmed automatic effect on printing. pdfNewInternalPrinterObject (PrnNewInternal) and pdfRequestPrinterStatus (PrnStatus) are both confirmed complete stubsResult := 0 unconditionally in both cases, Options/StatusCommand never read.

Parameters.

ParameterDescription
IPDFDocument handle.
OriginalPrinterName*(NewCustomPrinter only)* The real printer this custom entry is based on.
Options*(NewInternalPrinterObject only)* Accepted but never used — the function is a complete stub.
CustomPrinterName, Setting, NewValue*(SetupPrinter only)* Stored in a real dictionary; no confirmed consumer.
StatusCommand*(RequestPrinterStatus only)* Accepted but never used — the function is a complete stub.

Return value. pdfNewCustomPrinter: the new custom printer's name string. pdfSetupPrinter: 1/success indicator (the underlying store call has no failure path once a document resolves). pdfNewInternalPrinterObject/ pdfRequestPrinterStatus: always 0 (RequestPrinterStatus returns -1 only if IPDF itself is invalid, else always 0).

C# (P/Invoke)

wrappers/dotnet/LumasPdf.cs
public static extern IntPtr pdfNewCustomPrinterW(IntPtr IPDF, IntPtr OriginalPrinterName);
public static extern IntPtr pdfNewCustomPrinter(IntPtr IPDF, IntPtr OriginalPrinterName);
public static extern IntPtr pdfNewCustomPrinterA(IntPtr IPDF, IntPtr OriginalPrinterName);
Area
Printing
Category

Core

Exported names

pdfNewCustomPrinterW pdfNewCustomPrinter pdfNewCustomPrinterA

String variants

The …A form takes UTF-8, …W takes UTF-16; a bare name aliases the ANSI form.

See working code

Worked examples — complete programs in ten languages.