pdfs에서 prn 코드를 생성하고 프린터로 전송하여 C# 코드로 인쇄 작업을 자동화합니다. 이렇게하기 위해 다음 매개 변수와 함께 고스트 스크립트를 사용합니다.고스트 스크립트가 PRN 파일의 올바른 정보를 반영하지 않습니다.
gswin32c -dNOPAUSE -dBATCH -sDEVICE=laserjet -sOutputFile="c:/temp/out.prn" "NumberedPages.pdf"
이 명령 줄 인수 out.prn라는 PRN 파일을 생성합니다. 이 파일을 다음 C# 코드로 프린터로 보내면 pdf 파일이 성공적으로 인쇄됩니다.
public static bool SendBytesToPrinter(string szPrinterName, IntPtr pBytes, Int32 dwCount)
{
uint returnedValue = 0;
Int32 dwError = 0, dwWritten = 0;
IntPtr hPrinter = new IntPtr(0);
DOCINFOA di = new DOCINFOA();
bool bSuccess = false; // Assume failure unless you specifically succeed.
di.pDocName = "My C#.NET RAW Document";
di.pDataType = "RAW";
// Open the printer.
if (OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero))
{
// Start a document.
returnedValue = StartDocPrinter(hPrinter, 1, di);
if (0 != returnedValue)
{
// Start a page.
if (StartPagePrinter(hPrinter))
{
// Write your bytes.
bSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten);
EndPagePrinter(hPrinter);
}
EndDocPrinter(hPrinter);
}
ClosePrinter(hPrinter);
}
// If you did not succeed, GetLastError may give more information
// about why not.
if (bSuccess == false)
{
dwError = Marshal.GetLastWin32Error();
}
return bSuccess;
}
(https://stackoverflow.com/a/29564132/3079364)
나는 또한 그들이 성공적으로 프린터 여부를 인쇄하는 경우 인쇄 작업을 모니터링 할. 그러나 고스트 스크립트에 의해 생성 된 prn 파일은 정확한 페이지 수를 반영하지 않습니다. CZ 인쇄 작업 추적기 페이지의 정확한 수를 보여줍니다 내가 Word 또는 어도비을 사용하여이 문서를 인쇄 할 때 CZ 인쇄 작업 추적기
아래를 참조하십시오.
나는이 정보를 수정 유령 스크립트 명령에 추가 할 수있는 모든 매개 변수가 있습니까?