::: µ¨ÆÄÀÌ Tip&Trick :::

µ¨ÆÄÀÌ Tip&Trick ¼º°Ý¿¡ ¸ÂÁö ¾Ê´Â ±¤°í,ºñ¹æ,Áú¹®ÀÇ ±ÛÀº Áï½Ã »èÁ¦Çϸç
³»¿ëÀ» º¹»çÇÏ¿© »ç¿ëÇÒ °æ¿ì ¹Ýµå½Ã À̰÷(http://www.howto.pe.kr)À» Ãâó·Î ¸í½ÃÇÏ¿© ÁÖ¼¼¿ä


Category

  ±è¿µ´ë(2003-03-06 22:03:03, Hit : 5353, Vote : 1226
 ASCII printing

Jerry: >>This works fine on my system and on several others.  However, I am
getting some reports that some printers never get the output.  They may
or may not light up that they are receiving data, but they don't print.
<<

Then, it would seem you need the following code from Joe Hecht ?

    PhR

--------Joe C. Hecht --------------

Note that you have to include WinSpool in the uses clause.


procedure PrintFile(const sFileName: string);
const
  BufSize = 16384;
type
  TDoc_Info_1 = record
    pDocName: pChar;
    pOutputFile: pChar;
    pDataType: pChar;
  end;
var
  Count, BytesWritten: integer;
  hPrinter: THandle;
  Device : array[0..255] of char;
  Driver : array[0..255] of char;
  Port   : array[0..255] of char;
  hDeviceMode: THandle;
  DocInfo: TDoc_Info_1;
  f: file;
  Buffer: Pointer;
begin
  Printer.PrinterIndex := -1;
  Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
  if not WinSpool.OpenPrinter(@Device, hPrinter, nil) then
    exit;
  DocInfo.pDocName := 'MyDocument';
  DocInfo.pOutputFile := nil;
  DocInfo.pDatatype := 'RAW';
  if StartDocPrinter(hPrinter, 1, @DocInfo) = 0 then
  begin
    WinSpool.ClosePrinter(hPrinter);
    exit;
  end;
  if not StartPagePrinter(hPrinter) then
  begin
    EndDocPrinter(hPrinter);
    WinSpool.ClosePrinter(hPrinter);
    exit;
  end;

  System.Assign(f, sFileName);
  try
    Reset(f, 1);
    GetMem(Buffer, BufSize);
    while not eof(f) do
    begin
      Blockread(f, Buffer^, BufSize, Count);
      if Count > 0 then
      begin
        if not WritePrinter(hPrinter, Buffer, Count, BytesWritten) then
        begin
          EndPagePrinter(hPrinter);
          EndDocPrinter(hPrinter);
          WinSpool.ClosePrinter(hPrinter);
          FreeMem(Buffer, BufSize);
          exit;
        end;
      end;
    end;
    FreeMem(Buffer, BufSize);
    EndDocPrinter(hPrinter);
    WinSpool.ClosePrinter(hPrinter);
  finally
    System.Closefile(f);
  end;
end;

*************************************
procedure WriteRawStringToPrinter(PrinterName: String; S: String);
var
  Handle: THandle;
  N: DWORD;
  DocInfo1: TDocInfo1;
begin
  if not OpenPrinter(PChar(PrinterName), Handle, nil) then
  begin
    ShowMessage('error ' + IntToStr(GetLastError));
    Exit;
  end;

  with DocInfo do
  begin
    pDocName := PChar('test doc');
    pOutputFile := nil;
    pDataType := 'RAW';
  end;

  StartDocPrinter(Handle, 1, ocInfo);
  StartPagePrinter(Handle);
  WritePrinter(Handle, PChar(S), Length(S), N);
  EndPagePrinter(Handle);
  EndDocPrinter(Handle);
  ClosePrinter(Handle);
end;

The PrinterName parameter must be the name of the printer as it is
installed. For example, if the name of the printer
is "HP LaserJet 5MP" then that is what you should pass.





611   [µ¥ÀÌÅͺ£À̽º] DB¿¡ ÀúÀåµÈ JPEG(JPG)¸¦ DBGrid¿¡ Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/06 5266 1259
610   [µ¥ÀÌÅͺ£À̽º] µ¿ÀûÀ¸·Î À妽º ¸¸µé±â  ±è¿µ´ë 2003/03/06 4545 1140
609   [µ¥ÀÌÅͺ£À̽º] Excel ODBC¸¦ »ç¿ëÇÏ¿© xls¸¦ Å×À̺í·Î »ç¿ëÇÏ±â  ±è¿µ´ë 2003/03/06 6931 1633
608   [µ¥ÀÌÅͺ£À̽º] DB aliasÁß ORACLE alias ¸í ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4047 983
607   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] QuickReport¿¡¼­ ÇÁ¸°ÅÍ ¹Ù²Ù¾î¼­ Ãâ·ÂÇÏ±â  ±è¿µ´ë 2003/03/06 6331 1564
606   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ÀÇ ³»¿ëÀ» Bitmap À¸·Î ¸¸µé±â  ±è¿µ´ë 2003/03/06 3396 886
605   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡¼­ ¹®ÀÚ(¿­)¸¦ ã¾Æ ±ÛÀÚ¼Ó¼º ¹Ù²Ù±â  ±è¿µ´ë 2003/03/06 4793 1221
604   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] RichEdit ¿¡¼­ Ä¿¼­¸¦ óÀ½, ¸¶Áö¸·À¸·Î º¸³»±â  ±è¿µ´ë 2003/03/06 7004 1506
603   [À©µµ¿ìÁî API] ½ÇÇàÁßÀÎ ¸ðµç ÇÁ·Î±×·¥ Minimized ½ÃŰ±â  ±è¿µ´ë 2003/03/06 4698 1243
602   [½Ã½ºÅÛ] µ¨ÆÄÀÌ·Î DOS ÇÁ·Î±×·¥(Console application) ¸¸µé±â  ±è¿µ´ë 2003/03/06 18316 7552
601   [COM/OLE] Registering *.tlb files without Delphi  ±è¿µ´ë 2003/03/06 6681 1139
600   [³×Æ®¿÷/ÀÎÅͳÝ] How to bring a network down - "Win Nuke"  ±è¿µ´ë 2003/03/06 7353 2002
599   [À©µµ¿ìÁî API] Æú´õ³ª ÆÄÀÏÀÇ À©µµ¿ìÁî µî·ÏÁ¤º¸ dialog ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 5124 1483
598   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À̹ÌÁö¸¦ ¸¶¿ì½º·Î drag ÇØ¼­ zoom ÇÏ±â  ±è¿µ´ë 2003/03/06 3644 1030
597   [À©µµ¿ìÁî API] ¿ÜºÎ ÇÁ·Î±×·¥À» ÃÖ»óÀ§·Î ¼³Á¤ÇÏ±â  ±è¿µ´ë 2003/03/06 5279 1240
596   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] TObjectÀÇ ÇÁ·ÎÆÛƼ¸¦ ¹®ÀÚ¿­·Î ÂüÁ¶ÇÏ±â  ±è¿µ´ë 2003/03/06 5249 1600
595   [À©µµ¿ìÁî API] ÇÁ·Î±×·¥À¸·Î Screensaver µî·ÏÇÏ´Â µÎ°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4538 1275
594   [µ¥ÀÌÅͺ£À̽º] ƯÁ¤ ÆûÀÇ ÇöÀç ÆíÁýÁßÀÎ DB Field ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4113 1118
593   [À©µµ¿ìÁî API] KeyDownÀÇ BeepÀ½À» ¾ø¾ÖÀÚ...  ±è¿µ´ë 2003/03/06 4694 1218
592   [½Ã½ºÅÛ] How do I use SetWindowsHookEx ?  ±è¿µ´ë 2003/03/06 6961 964
591   [½Ã½ºÅÛ] Redirecting DOS Application Output  ±è¿µ´ë 2003/03/06 4743 1226
590   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] µÎ°³ÀÇ RichEdit »çÀÌ¿¡ ³»¿ë º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 5927 1379
589   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ƯÁ¤ ColorÀÇ Invert Color ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 4339 1323
588   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ¹®ÀÚ¿­ ¼ö½Ä¹®Àå(expression)ÀÇ °á°ú ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 3446 896
587   [½Ã½ºÅÛ] ¿Àµð¿À CDÀÇ º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 3670 1029
586   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] À©µµ¿ìÁî "³¯Â¥/½Ã°£" ¼³Á¤È­¸é ¶ç¿ì±â  ±è¿µ´ë 2003/03/06 6230 1828
585   [½Ã½ºÅÛ] ¸¶ÀÌÅ© º¼·ý Á¶ÀýÇÏ±â  ±è¿µ´ë 2003/03/06 4692 1291
584   [¸ÖƼ¹Ìµð¾î] JPEG, WAVE ¸¦ resource ÆÄÀÏ¿¡ ³Ö°í Àоî¿À±â  ±è¿µ´ë 2003/03/06 5377 1231
583   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] desktop ¹è°æÈ­¸éÀ» ÆûÀÇ ¹è°æÈ­¸éÀ¸·Î ±×¸®±â  ±è¿µ´ë 2003/03/06 3731 1040
582   [À©µµ¿ìÁî API] ·¹Áö½ºÆ®¸®ÀÇ º¯°æ¿©ºÎ ¾Ë¸®´Â 2°¡Áö ¹æ¹ý  ±è¿µ´ë 2003/03/06 4803 1289
581   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ³»¿ëÀ» Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4509 1063
580   [µ¥ÀÌÅͺ£À̽º] Save DBGrid To Excel  ±è¿µ´ë 2003/03/06 7147 1967
579   [COM/OLE] DelphiÀÇ OCX¸¦ InstallShield·Î ¹èÆ÷ÇÏ´Â ¹æ¹ý  ±è¿µ´ë 2003/03/06 8412 5649
  [ÀϹÝ/ÄÄÆ÷³ÍÆ®] ASCII printing  ±è¿µ´ë 2003/03/06 5353 1226
577   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] OEM conversion  ±è¿µ´ë 2003/03/06 4355 1267
576   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] MemoÀÇ ÇàÀÇ ¹®ÀÚ¼ö¸¦ Á¦ÇÑÇϰí WordWrap½ÃŰ±â  ±è¿µ´ë 2003/03/06 5273 1317
575   [À©µµ¿ìÁî API] DDE ¾²Áö ¾Ê°í IEÀÇ ÇöÀç URL °¡Á®¿À±â  ±è¿µ´ë 2003/03/06 6013 1684
574   [À©µµ¿ìÁî API] RichEdit¿¡ ÀÔ·ÂÇÑ ¹®ÀåÀÇ ½ÇÁ¦ ³ôÀÌ ±¸ÇÏ±â  ±è¿µ´ë 2003/03/06 5082 1432
573   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ÀÇ ¼±Åÿµ¿ª¸¸ Ŭ¸³º¸µå·Î º¹»çÇÏ±â  ±è¿µ´ë 2003/03/06 4922 1093
572   [ÀϹÝ/ÄÄÆ÷³ÍÆ®] StringGrid ¿¡¼­ ÇÁ·Î±×·¥À¸·Î MultiSelect ½ÃŰ±â  ±è¿µ´ë 2003/03/06 5497 1195

[1][2][3][4][5][6][7][8][9] 10 ..[25] [´ÙÀ½ 10°³]
 

Copyright 1999-2023 Zeroboard / skin by zero