印刷ジョブを複製しようとしています (誰かがドキュメントを印刷すると、このドキュメントは別のプリンターでも自動的に印刷されます)。目的は、印刷されたすべてのドキュメントを pdf に変換してサーバーに送信することです。
を使用してすべての印刷ジョブを取得FindFirstPrinterChangeNotification
でき、 を使用してジョブの内容を取得できましたReadPrinter
。
ジョブは EMF 形式です。
しかし、このジョブを を使用して別のプリンタに書き込もうとするWritePrinter
と、ジョブがプリンタに到達したように見え、新しいプリンタのステータス ウィンドウに と書かれPrinted
ていますが、何も起こりません。ジョブがプリンターに到着しません。
ジョブを複製するコードは次のとおりです。
do{
if (!ReadPrinter(hPrinterJob, lpBytes, BUFSIZE, &dwBytesRead))
{
return FALSE;
}
else
{
if (!WritePrinter(hPrinterNew, lpBytes, dwBytesRead, &dwBytesWritten))
{
return FALSE;
}
}
}while(dwBytesRead!=0);
何が間違っていて、修正する方法を知っている人はいますか?
このようなことを行うソフトウェアの例: リンク
ありがとうございました