Article View: borland.public.cppbuilder.nativeapi
Article #14862Re: How to use postscript inside BCB to print graphics ?
From: Vladimir Afanasyev
Date: Tue, 29 Jul 2003 08:29
Date: Tue, 29 Jul 2003 08:29
102 lines
4634 bytes
4634 bytes
Hi,
Your code incorrect.
This way you try send data in file with stange name "ffff".
Another problem place it is testing result of OpenPrinter Win32
API function - "else" if name of printer incorrect:
BOOL RetCode = FALSE;
HANDLE Printer = NULL;
LPTSTR aName="Xerox Phaser 8200DX";
LPCSTR Str="test me";
DWORD err;
if (OpenPrinter(aName, &Printer, NULL))
{
DWORD Jobid = 0;
DOC_INFO_1 DocInfo = {0};
DocInfo.pDocName = "The Document Name";
DocInfo.pOutputFile = NULL;
if ((Jobid = StartDocPrinter(Printer, 1, (LPBYTE) &DocInfo)) != 0)
{
DWORD Written;
DWORD NumBytes = lstrlen(Str);
WritePrinter(Printer, (void*) Str, NumBytes, &Written);
if (Written == NumBytes)
RetCode = TRUE;
}
EndDocPrinter(Printer);
ClosePrinter(Printer);
}
else
{
err=GetLastError();
if(err==ERROR_INVALID_PRINTER_NAME)ShowMessage("Invalid Printer Name");
else ShowMessage("Error:"+IntToStr(err));
}
Similar code works on my PC for LaserJet. Using next code you
can test is it printer support Postscript:
HANDLE hPrinter;
PRINTDLG pd;
DEVMODE *dv;
int nEscapeCode;
TCHAR szTechnology[MAX_PATH] = TEXT("");
ZeroMemory(&pd, sizeof(PRINTDLG));
pd.lStructSize = sizeof(PRINTDLG);
pd.hwndOwner = GetDesktopWindow();
pd.hDevMode = NULL; // Don't forget to free or store hDevMode.
pd.hDevNames = NULL; // Don't forget to free or store hDevNames.
pd.Flags = PD_RETURNDC ;
pd.nCopies = 4;
pd.nFromPage = 0xFFFF;
pd.nToPage = 0xFFFF;
pd.nMinPage = 1;
pd.nMaxPage = 0xFFFF;
if (PrintDlg(&pd)==TRUE) {
dv=(LPDEVMODE)pd.hDevMode;
char** Name=(char**)dv->dmDeviceName;
ShowMessage(AnsiString((const char*)*Name));
Edit1->Text=AnsiString((const char*)*Name);
// If it supports POSTSCRIPT_PASSTHROUGH, it must be PS.
nEscapeCode = POSTSCRIPT_PASSTHROUGH;
if( ExtEscape( pd.hDC, QUERYESCSUPPORT, sizeof(int),
(LPCSTR)&nEscapeCode, 0, NULL ) > 0 )
{ShowMessage("Escape POSTSCRIPT_PASSTHROUGH is supported" );
return;}
ShowMessage("Escape POSTSCRIPT_PASSTHROUGH is not supported" );
// If it doesn't support GETTECHNOLOGY, we won't be able to tell.
nEscapeCode = GETTECHNOLOGY;
if( ExtEscape( pd.hDC, QUERYESCSUPPORT, sizeof(int),
(LPCSTR)&nEscapeCode, 0, NULL ) <= 0 )
{ShowMessage("Escape GETTECHNOLOGY is not supported" );
return;}
ShowMessage("Escape GETTECHNOLOGY is supported" );
// Get the technology string and check to see if the word"postscript" is in it.
if( ExtEscape( pd.hDC, GETTECHNOLOGY, 0, NULL, MAX_PATH,
(LPSTR)szTechnology ) <= 0 )
return;
strupr( szTechnology );
if( strstr( szTechnology, "POSTSCRIPT" ) == NULL )
{
ShowMessage("postscript is not supported" );
ShowMessage(AnsiString("Using technology is:")+szTechnology);
return;}
ShowMessage("postscript is supported" );
ShowMessage(AnsiString("Using technology is:")+szTechnology);
}
Vladimir.
Technical Details
Message-ID:
<3f26304d$1@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-08!supernews.com!pln-w!extra.newsguy.com!lotsanews.com!news-hog.berkeley.edu!ucberkeley!nntp-relay.ihug.net!newsfeeds.ihug.co.nz!ihug.co.nz!newsgroups.borland.com!not-for-mailReferences:
<3f2554be$1@newsgroups.borland.com> <3f255bd6$1@newsgroups.borland.com> <3f257a84$1@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10cc67,434d7e072e9595a X-Google-Attributes: gid10cc67,public X-Google-ArrivalTime: 2003-07-29 01:37:14 PST From: "Vladimir Afanasyev" <avv@systema.kiev.ua> Sender: "Vladimir Afanasyev" <avv@systema.kiev.ua> Reply-To: "Vladimir Afanasyev" <avv@systema.kiev.ua> Subject: Re: How to use postscript inside BCB to print graphics ? Newsgroups: borland.public.cppbuilder.nativeapi X-User-Info: 212.82.216.226 212.82.216.226 X-Forwarded-For: 192.168.0.147 References: <3f2554be$1@newsgroups.borland.com> <3f255bd6$1@newsgroups.borland.com> <3f257a84$1@newsgroups.borland.com> NNTP-Posting-Host: 207.105.83.65 Message-ID: <3f26304d$1@newsgroups.borland.com> Date: 29 Jul 2003 01:29:01 -0700 X-Trace: newsgroups.borland.com 1059467341 207.105.83.65 (29 Jul 2003 01:29:01 -0700) Lines: 103 Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-03!sn-xit-06!sn-xit-08!supernews.com!pln-w!extra.newsguy.com!lotsanews.com!news-hog.berkeley.edu!ucberkeley!nntp-relay.ihug.net!newsfeeds.ihug.co.nz!ihug.co.nz!newsgroups.borland.com!not-for-mail